[객체인식 & Depth Estimation 프로젝트] 1. Data Labeling

happy_quokka·2023년 12월 27일
0

자율주행 프로젝트

목록 보기
7/15

1. Dataset

  • 직접 획득
  • 이때 카메라 calibration을 통해 왜곡을 제거한 이미지를 사용한다 (camera calibration 방법)

1-1. Class 및 dataset의 수

  • 총 9개의 클래스
  • ignore의 경우 : ignore class는 가려진 경우, object가 공중에 있는 경우, 멀리 있는 경우
classtraineval
left860699
right790358
stop517356
crosswalk749350
green_light682127
yellow_light759128
red_light67175
car935311
ignore60429
total_bbox 수65672433
total image 수3366362

1-2. dataset 폴더 구조

└─ tstl_dataset
     ├── tstl_train    
     |	├── Annotations <-- 라벨링 데이터
     |	├── ImageSets   <-- 이미지 데이터 파일명 list        
     |	├── JPEGImages	<-- 이미지 데이터
     |	└── tstl.txt	<-- class 정보 
     ├── tstl_eval 
     |	├── Annotations
     |	├── ImageSets       
     |	├── JPEGImages
     |	└── tstl.txt
     └── tstl_test
     	├── ImageSets       
     	└── JPEGImages

1-3. labeling 정보

  • labeling 데이터에는 해당 object의 클래스와 bounding box 정보가 yolo 형식으로 담겨 있다
  • 이때 bounding box 정보는 normalize된 값이다
  • (class_id, bbox_x, bbox_y, bbox_width, bbox_height)
  • bbox_x : bounding box의 중심 x 좌표
  • bbox_y : bounding box의 중심 y 좌표
  • bbox_width : object의 width
  • bbox_height : object의 height

2. Labeling tool

2-1. 이미지에서 원하는 부분 labeling 수행

  • tzutalin/labelImg 또는 CVAT 사용
  • 이를 사용하여 data 이미지에서 원하는 부분을 labeling 수행
  • 그 결과 나오는 txt 파일을 Annotation 폴더로 옮기기

2-2. masking

  • masking.py을 사용
  • 이미지에서 지우고 싶은 부분을 회색 영역으로 처리해준다
  • 클래스의 개수을 맞추기 위해서 사용하였다

0개의 댓글