현대 사회는 대량 생산과 대량 소비의 시대로, 이는 '쓰레기 대란' 및 '매립지 부족'과 같은 다양한 환경 문제를 초래하고 있습니다. 이러한 문제에 대응하기 위해, 분리수거는 필수적인 활동으로 자리 잡았습니다. 정확하게 분류된 쓰레기는 자원으로 재활용될 수 있는 가치를 지니지만, 잘못 분류되면 매립지나 소각장으로 향하게 됩니다.
이 대회는 사진 속 쓰레기를 정확하게 감지하고 분류할 수 있는 모델을 개발하는 것을 목표로 합니다. 참가자들에게 제공되는 데이터셋은 다양한 종류의 쓰레기(일반 쓰레기, 플라스틱, 종이, 유리 등 10종)가 담긴 사진들로 구성되어 있으며, 이를 활용하여 모델을 학습시킬 수 있습니다.
성공적으로 개발된 모델은 쓰레기장에 설치되어 정확한 분리수거를 돕거나, 어린이들의 분리수거 교육에 활용될 수 있습니다. 이를 통해 지구 환경 보호에 기여하고, 야생동물의 생계 위협과 같은 문제를 완화하는 데 도움을 줄 것입니다. 또한, 이 기술은 쓰레기를 줍는 드론, 쓰레기 배출 방지 비디오 감시, 인간의 쓰레기 분류를 돕는 AR 기술 등 다양한 분야에 응용될 수 있습니다.
- Input: 쓰레기 객체가 담긴 이미지
- Annotations: bbox 정보 (좌표, 카테고리), COCO format으로 제공
- Output: 모델은 bbox 좌표, 카테고리, score 값을 리턴해야 하며, 이를 바탕으로 submission 양식에 맞는 csv 파일을 생성하여 제출
이 대회는 지구 환경 보호에 기여할 수 있는 쓰레기 감지 및 분류 모델을 개발하는 것을 목표로 합니다. 제공되는 데이터셋을 활용해 모델을 학습시키고, 이를 통해 분리수거를 효율적으로 할 수 있는 방법을 탐색합니다. 이 기술은 쓰레기 처리 시설의 효율성을 높이고, 환경 교육에도 응용될 수 있습니다. 참가자들은 지구 환경 보호를 위한 중요한 일에 기여하는 동시에, 인공지능과 기계 학습 분야에서 실질적인 문제 해결 능력을 키울 수 있는 기회를 갖게 됩니다.
📦level2-objectdetection-cv-13
┣ 📂 eda
┃ ┣ 📜 eda.ipynb
┃ ┣ 📜 labelme_to_coco.py
┃ ┣ 📜 object_add_algorithm.ipynb
┃ ┣ 📜 show_image.ipynb
┃ ┣ 📜 show_test_image.ipynb
┣ 📂 pytorch
┣ 📂 detectron2
┣ 📂 deta
┣ 📂 efficientdet
┣ 📂 yolov8
┣ 📂 mmdetection
┃ ┣ 📂configs
┃ ┃ ┣ 📂_base_
┃ ┃ ┣ 📂_teamconfig_
┃ ┣ 📂mmdet
┃ ┗ 📜train.py
┃ ┗ 📜test.py
┣ 📜 small_box.ipynb
┣ 📜 upsampling.ipynb
┣ 📜 wbf_ensemble.ipynb
┣ 📜 Train-valid_Split.ipynb
┗ 📜 README.md
pip install -r dino_requirements.txt
python mmdetectionv3/train.py {config 폴더 경로} --work-dir {모델이 저장될 경로}
# DINO Train:
python mmdetectionv3/train.py mmdetectionv3/configs/_teamconfig_/dinonoval/config.py --work-dir results/dino
python mmdetectionv3/test.py {config 폴더 경로} {모델 체크포인트 경로} --work-dir {결과가 저장될 경로}
# DINO Test:
python mmdetectionv3/test.py mmdetectionv3/configs/_teamconfig_/dinonoval/config.py results/dino/best.pth --work-dir out/dino
pip install -r cascade_requirements.txt
python mmdetection/train.py --config {_teamconfig_안에 있는 폴더명}/{config파일명} --exp-name {실험명} --work-dir {모델을 저장할 경로} --epochs {epoch 갯수}
# Cascade Train:
python mmdetection/train.py --config cascade_rcnn/cascade_rcnn_config.py --exp-name cascade --work-dir results/cascade --epochs 15
python mmdetection/test.py --config {_teamconfig_안에 있는 폴더명}/{config파일명} --checkpoint {모델이 저장된 경로}
# Cascade Test:
python mmdetection/test.py --config cascade_rcnn/cascade_rcnn_config.py --checkpoint results/cascade/best.pth
python -m venv ./venv
source venv/bin/activate
pip install -r requirements.txt
python convert_coco_to_yolo.py
python main.py
- wbf_ensemble.ipynb 파일에서 csv파일 경로를 지정한 후 앙상블하실 수 있습니다.
Submit | LB Score | |
---|---|---|
1st | Cascade R-CNN Swin-T-Large 5fold(WBF) + DINO (All Dataset), NMS Ensemble | 0.7013 |
2nd | Cascade R-CNN Swin-T-Large 5fold(WBF) + DINO (1fold + All Dataset, WBF), NMS Ensemble | 0.6980 |
3rd | Cascade R-CNN Swin-T-Large 5fold(WBF) + DINO 1fold, NMS Ensemble | 0.6930 |
4th | Cascade R-CNN Swin-T-Large 5fold(WBF) | 0.6881 |
5th | Cascade R-CNN Swin-T-Large 5fold(WBF) + YOLOv8x 1fold | 0.6878 |
-
Swin-Large를 Backbone으로 사용한 Cascade R-CNN은 5개의 폴드로 나누어 WBF Ensemble을 진행하였습니다.
-
Swin-Large를 Backbone으로 사용한 DINO는 Train set 전체를 사용하였습니다.
-
최종적으로 위 두 모델을 NMS Ensemble하였고, 그 결과 리더보드 Public mAP_50 0.7013, Private mAP_50 0.6850을 기록하였습니다.
김영일_T6030 | 안세희_T6094 | 유한준_T6106 | 윤일호_T6110 | 이재혁_T6132 | |
---|---|---|---|---|---|
Github | |||||