yolov11 for OD
2024.10.17(Thu)
목표
- YOLOv11x 를 활용해 COCO 형식의 학습 데이터를 사용해 object detection model 학습
- Pascal VOC 형식의 제출 파일을 생성
To do
Data
data는 COCO 형식으로 제공.
train data(train.json
)는 COCO 형식의 annotation을 포함하고 있다.
test data(test.json
)는 이미지 정보만 포함하고 있다.
YOLOv11x 모델을 사용하려면 COCO 형식의 데이터를 YOLO 형식으로 변환해야 한다.
COCO format
- images: id, height, width, filename
- annotations: bbox, area, category_id, image_id, is_crowd
- categories
Pascal VOC format (submission)
- PredictionString:
(label, score, xmin, ymin, xmax, ymax)
로 구성된.txt
file - 제출은
.csv
로 해야 한다. (이미지와 해당 이미지에서 탐지된 객체들에 대한 정보를 포함)
실행 순서
-
- convert.py: COCO -> YOLO 형식 변환
-
- split.py: 데이터 분할 (train/val)
-
- train.py: YOLO 모델 학습
-
- inference.py: 추론 및 CSV 변환
-
- streamlit.py: 추론 결과 시각화
Refactoring
1. convert.py
- 코드는 feature-72 브랜치의 convert.py를 참고해주세요.
COCO 형식의train.json
파일을 YOLO 형식으로 변환하기 위한 코드이다.
각 이미지에 대해 텍스트 파일을 생성하고, 이 파일에 객체의 클래스, 바운딩 박스 좌표를 저장한다.
변환된 label file들은 이미지와 동일한 이름을 가지며,.txt
확장자로 저장된다.
2. train.py
- 코드는 feature-72 브랜치의 train.py를 참고해주세요.