[Data Augmentation] 3. Image augmentation for object detection

happy_quokka·2024년 1월 9일
0

자율주행 Perception

목록 보기
10/19

bounding box augmentation

  • albumentations에서 지원하는 bounding box augmentation
  • https://albumentations.ai/docs/getting_started/bounding_boxes_augmentation/ 에서 관련 내용을 확인할 수 있다
  • 4가지 포맷 지원
    • pascal voc : [x_min, y_min, x_max, y_max]
    • albumentations : normalize된 [x_min, y_min, x_max, y_max]
    • coco : [x_min, y_min, width, height]
    • yolo : normalize된 [x_center, y_center, width, height]

  • 이번 실습에서는 kitti data를 활용하여 coco 형태를 만들어본다

KITTI format

Values    Name      Description
----------------------------------------------------------------------------
   1    type         Describes the type of object: 'Car', 'Van', 'Truck',
                     'Pedestrian', 'Person_sitting', 'Cyclist', 'Tram',
                     'Misc' or 'DontCare'
   1    truncated    Float from 0 (non-truncated) to 1 (truncated), where
                     truncated refers to the object leaving image boundaries
   1    occluded     Integer (0,1,2,3) indicating occlusion state:
                     0 = fully visible, 1 = partly occluded
                     2 = largely occluded, 3 = unknown
   1    alpha        Observation angle of object, ranging [-pi..pi]
   4    bbox         2D bounding box of object in the image (0-based index):
                     contains left, top, right, bottom pixel coordinates
   3    dimensions   3D object dimensions: height, width, length (in meters)
   3    location     3D object location x,y,z in camera coordinates (in meters)
   1    rotation_y   Rotation ry around Y-axis in camera coordinates [-pi..pi]
   1    score        Only for results:  Float, indicating confidence in
                     detection, needed for p/r curves, higher is better.

COCO format

[x_min, y_min, width, height]


구현

1. import 및 class 지정

  • CLASS_TABLE : class와 id 값의 매칭 table
  • category_id_to_name : id 값을 다시 class 이름으로 바꾸기 위한 dictionary

2. 이미지 불러오기

opencv는 BGR 형식이기 때문에 RGB로 변환해준다

3. COCO format으로 label 변환

4. image augmentation

  • augmentation을 사용할 때 bbox에 대해서는 구현이 안된 albumentation이 있을 수 있다. 이런 경우 에러를 잘 확인하면서 구현하면 된다
  • A.BboxParams 는 bounding box의 parameter에 관한 것으로 format을 통해 변환할 data format을 지정할 수 있다
  • transformed['image'], transformed['bboxes'] 는 변환한 image와 bbox를 반환하는 부분이다

5. 시각화

  • 원본

  • augmentation 결과

0개의 댓글