- 수많은 쓰레기들이 버려지고 있는데, 이 중에서는 잘못 버려지고 있는 쓰레기들이 상당하다.
- 본 대회는, 주어진 이미지로부터 재활용의 쓰레기 종류와 위치를 검출하는 모델이다.
- 구체적으로는, 쓰레기 이미지 데이터와 COCO format으로 된 bbox 정보가 주어질 때, 쓰레기의 종류(10개 중 1개)와 그 위치를 pascal-voc 포맷으로 제출한다.
- 컴퓨팅 환경 : V100 GPU
- 협업 도구 : Notion, Slack, Wandb, GitHub
강의자료에 주어진 Workflow를 참고하여, 프로젝트 타임라인을 위와 같이 설정하였다.
전체 | 문제 정의, 계획 및 타임라인 수립, 모델 튜닝, 아이디어 제시 |
---|---|
구상모 | CV 전략 수립, wandb 연동, multi-scale training 실험, swin계열 모델 실험, 모델 디버깅 |
권규보 | EDA , YOLOv7 실험, mosaic/mixup 실험, data augmentation, background dataset 추가, TTA 도입 |
배서현 | Baseline code 성능 실험, backbone/optimizer 실험, hyperparameter tuning, model ensemble(WBF) |
오한별 | 기본적인 모델 성능 실험, custom-dataset 제작, 1-stage model 실험, YOLOv7실험, preprocessing 실험, Dataset 추가 실험, Ensemble 실험 |
이영진 | TOOD 모델 도입, Github 관리 |
- EDA결과, 다음과 같은 문제점을 확인했다.
-
극심한 data imbalance가 관찰된다. 가장 많은 Paper는 4천개, 가장 적은 Battery는 150여장 있다.
-
Approach 1. 적은 Label을 제대로 탐지하지 못한다면, 이를 본 대회의 Key problem으로 간주하자.
-
Approach 2. Model debugging의 일환으로, confusion matrix를 통해 모델의 성능을 디버깅해보자.
-
Approach 3. TIDE라는 모델 분석 프레임워크를 통해, 우리 모델이 어떤 것에 제일 취약한지 디버깅해보자.
-
Confusion matrix와 TIDE를 통해 본 결과, 우리 모델이 클래스 구분을 잘 못하고 있단 사실을 깨달았다.
-
Approach 4. backbone 실험을 하여, 좋은 backbone을 찾아 이미지의 semantic feature를 찾을 수 있도록 하자.
-
Approach 5. 다양한 data 실험을 하자.
모델 구조 | 특징 및 관찰 | LB mAP |
---|---|---|
Faster RCNN + ResNet 계열(R50 -> R101 -> R152) | backbone이 커질수록 mAP 증가(confusion matrix, TIDE 동일) | 0.411 ->0.418 -> 0.438 |
Cascade R-CNN + Swin 계열(Swin-T, Swin-L) | Swin계열의 시도 | 0.518 ->0.54 |
Cascade R-CNN + SwinL + Data aug | Brightness, geometry 계열 시도 | 0.57 |
위와 동일 + Multi-scale | multi-scale training 적용 | 0.61 |
위와 동일 + 5-fold | multi-scale training 적용 | 0.67 |
Yolo-v7 + 5-fold | 모델 다양성을 위해 1-stage 계열 이용 | 0.65 |
TOOD + 5-fold | 모델 다양성을 위해 TOOD 이용 | 0.67 |
Final ensemble | Cascade : TOOD : YOLO = 1: 1: 1 | 0.7 |