- 재활용 품목 분류를 위한 Object Detection
- 네이버 커넥트 재단 및 Upstage에서 주관하는 비공개 대회
- 이미지에서 재활용 쓰레기를 분류를 하기 위한 Object Detection 모델을 개발한다
- 문제 해결을 위한 데이터셋으로는 COCO 포맷의 Annotation 파일과 일반 쓰레기, 플라스틱, 종이, 유리 등 10 종류의 쓰레기가 찍힌 이미지가 제공된다
- 2024.10.02 ~ 2024.10.24
- 평가지표: Test set의 mAP50
- Ground Truth 박스와 Prediction 박스간 IoU(Intersection Over Union, Detector의 정확도를 평가하는 지표)가 50이 넘는 예측에 대해 True로 판단한다
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| 김예진 | 배형준 | 송재현 | 이재효 | 차성연 |
- 직접 찾은 근거, 공신력있는 근거 활용하기
- 모델을 선택하거나 하이퍼파라미터를 조정하는 데 있어서, ChatGPT에 의존하지 않고 임의로 파라미터를 바꿔가며 최적값을 찾아가지 않는다
- 이전 실험의 결과를 분석하여 활용하거나 논문을 참고하는 등, 반드시 믿을 수 있는 근거를 가지고 가설을 세우고 실험을 설계한다
- 심층적 분석
- 수행한 실험에 대해 값만 확인하는 것이 아니, 결과를 시각화하고 면밀하게 분석하여 팀원들과 의견을 나눈다
- EDA, 데이터 분석 및 유틸리티 배포 : 김예진, 이재효, 차성연
- 하이퍼파라미터 및 데이터 증강 실험 : 김예진, 배형준, 송재현
- 모델 실험 및 분석 : 이재효, 차성연
- 카테고리별 수와 BBox 면적별 수를 확인함으로써 데이터가 상당히 불균형하다는 것을 알 수 있었다
- BBox 크기는 상당히 넓은 범위에 걸쳐 분포하고 비율은 대부분 4를 넘지 않는 것을 확인하였다
- 1-stage : RetinaNet, Yolov11
- 2-stage : Faster-RCNN, Cascade-RCNN
- Vit 기반 모델 : DINO
| Model | mAP@50 (Private) |
|---|---|
| NMS_Ensemble (DINO) | 0.7142 |
| WBF_Ensemble (모든 모델) | 0.6185 |
Team name : CV_22조
- 근거 기반 실험 설계와 심층적 분석을 통해 신뢰성 있는 실험을 수행하고 팀원들과 체계적으로 협업을 하였다
- 직접 데이터 증강 코드를 구현하여 커스텀 증강 시도해보면 좋았을 것 같다
├── detectron2 # detectron2 관련 파일
├── eda # 데이터 EDA 파일
├── mmdetection # mmdetection
├── dataset # 데이터셋 파일 + K-Fold json 파일
├── mmdetection # mmdetection 라이브러리 파일 및 모델 config 추가
└── tools # 앙상블 및 csv 변환 파일
├── ultralytics # yolov11 라이브러리 및 모델 config 추가
├── utils # 성능 분석을 위한 유틸리티
└── main.py # detectron2 실행 main 파일-
현재 레포지토리를 클론한다
git clone https://github.com/boostcampaitech7/level2-objectdetection-cv-22.git
-
아래 경로에 데이터셋을 다운받는다
cd level2-objectdetection-cv-22/mmdetection/dataset
-
아래의 경로로 이동한다
cd level2-objectdetection-cv-22 -
Detectron2 라이브러리를 다운로드한다
git clone https://github.com/facebookresearch/detectron2.git
-
학습, 테스트, 성능 분석 파일 추출 등 가이드라인에 따라 실행한다
cd level2-objectdetection-cv-22/detectron2 && python main.py
-
아래의 경로에서 실행한다
cd level2-objectdetection-cv-22/mmdetection/ -
원하는 모델로 학습한다
python tools/train.py custom_configs/{사용할 모델 config.py} -
학습된 모델로 추론한 결과를 pickle 파일로 저장한다
python tools/test.py custom_configs/{사용할 모델 config.py} work_dirs/{모델.pth} --out work_dirs/{사용한 모델 이름a.pkl} -
pickle 파일을 csv 파일로 변환하여 결과를 확인한다
python pikel_to_csv.py
-
아래의 경로로 이동한다
cd level2-objectdetection-cv-22 -
Ultiralytics 라이브러리 다운로드 받는다
git clone https://github.com/ultralytics/ultralytics.git
-
원하는 모델로 학습, 추론 및 csv 파일을 추출한다
cd level2-objectdetection-cv-22/Ultiralytics && python main.py






