- 임의의 사진이 주어졌을 때, 쓰레기를 Detection 하는 모델 제작
- 바야흐로 대량 생산, 대량 소비의 시대. 우리는 많은 물건이 대량으로 생산되고, 소비되는 시대를 살고 있습니다. 하지만 이러한 문화는 '쓰레기 대란', '매립지 부족'과 같은 여러 사회 문제를 낳고 있습니다. 분리수거는 이러한 환경 부담을 줄일 수 있는 방법 중 하나입니다. 잘 분리배출 된 쓰레기는 자원으로서 가치를 인정받아 재활용되지만, 잘못 분리배출 되면 그대로 폐기물로 분류되어 매립 또는 소각되기 때문입니다. 따라서 우리는 사진에서 쓰레기를 Detection 하는 모델의 제작을 통해 이러한 문제점을 해결할 수 있습니다.
- 쓰레기가 포함된 사진 및 annoations (10 class : General trash, Paper, Paper pack, Metal, Glass, Plastic, Styrofoam, Plastic bag, Battery, Clothing)
- 해상도 : 1024, 1024
- 총 이미지 수 : 9,754장(Train 이미지 수 : 4,883장)
- MMDetection, Detectron2
- Slack, Notion, Github, Wandb
- V100(vram 32GB) 5개
- mAP50
고금강 | 김동우 | 박준일 | 임재규 | 최지욱 |
---|---|---|---|---|
Github | Github | Github | Github | Github |
twinkay@yonsei.ac.kr | dwkim8155@gmail.com | joonil2613@gmail.com | jaekyu.1998.bliz@gmail.com | guk987@naver.com |
팀원 | 역할 |
---|---|
고금강_T5011 | - MMDetection 라이브러리 실험 - Swin Transformer Large 구현 - Data Augmentation Experiments - Label Correction |
김동우_T5026 | - MMDetection 라이브러리 실험(VFNet, FocalNet, UniverseNet) - BBox EDA - Pseudo Labeling 구현 |
박준일_T5094 | - Detectron2 라이브러리 실험 - TridentNet 구현 - Label Correction - Model 선정 |
임재규_T5174 | - MMDetection와 Detectron2 라이브러리 실험 - CutOut, CutMix, MixUp 등 Detectron2 데이터 증강 기법 구현 - 데이터셋과 모델 추론 결과 Bounding Boxes 시각화 구현 - 데이터셋 라벨 조사 |
최지욱_T5219 | - MMDetection을 이용한 모델 실험(Deformable DETR, RetinaNet) + YoloV8 - Stratified Group K-fold - Weighted Boxes Fusion - Confidence score calibration |
분류 | 내용 |
---|---|
Data | Stratified Group K-fold - 하나의 이미지가 하나의 class에 할당되는 것이 아닌 여러 개의 object(class)를 포함 => object들의 class별 분포가 최대한 유사하도록 각각 5개의 Train/Valid set(8:2로 분할)을 구성 Augmentation - 각 모델에 기본적인 데이터 증강으로 Horizontal Flip과 Vertical Flip을 적용 - 그 외에도 Rotate, Sharpen, Emboss 등 다양한 augmentation 사용 - 다양한 augmentation을 적용할수록 더 높은 mAP 점수를 보임 Label Correction - train dataset의 Paper와 General Trash의 경계가 애매모호하다는 것을 확인 => 라벨링 기준을 정하여 Correction을 한 결과, mAP50 점수가 상승되었다. (0.5371->0.5420) |
Model | Cascade-RCNN - Backbone : Swin-L - Neck : FPN - Head : Cascade-RCNN ATSS - Backbone : Swin-L - Neck : FPN - Head : ATSS + Dyhead Deformable DETR - Backbone : Swin-L - Neck : Channel Mapper - Head : Deformable DETR Head |
HyperParameters | Cascade-RCNN - Batch Size : 32 - Class Loss : Cross Entropy - BoundingBox Loss : Smooth-L1 - Learning Rate : 0.0001 - Optimizer : AdamW - Epochs : 13 ATSS - Batch Size : 32 - Class Loss : Focal Loss - BoundingBox Loss : GioU Loss - Learning Rate : 0.00005 - Optimizer : AdamW - Epochs : 18 DETR - Batch Size : 32 - Class Loss : Focal Loss - BoundingBox Loss : L1-Loss - Learning Rate : 0.0002 - Optimizer : AdamW - Epochs : 21 |
Other Methods | Ensemble - Weighted Boxes Fusion - Confidence score calibration 적용 Pseudo Labeling - 주어진 Train dataset 뿐만 아니라 label이 없는 Test dataset까지 학습에 이용해서 모델 성능을 최대한 향상시키기 위함 - ATSS 1epoch 적용 (Public mAP : 0.7157 -> 0.7185) |
Method | Backbone | mAP50 | mAP75 | mAP50(LB) |
---|---|---|---|---|
Faster RCNN | ResNet101 | 0.4845 | 0.313 | 0.4683 |
DetectoRS | ResNext101 | 0.514 | 0.385 | 0.4801 |
TridentNet | Trident + ResNet101 | 0.5341 | 0.4311 | 0.5428 |
Cascade RCNN | Swin-L | 0.633 | 0.539 | 0.6257 |
Deformable DETR | Swin-L | 0.621 | 0.533 | 0.6373 |
ATSS | Swin-L | 0.689 | 0.596 | 0.6741 |
Emsemble | Calibration | mAP50(LB) |
---|---|---|
ATSS (5Fold), Deformable DETR (5Fold), Swin-L + Cascade (5Fold) | 0.7054 | |
ATSS (5Fold), Deformable DETR (5Fold), Swin-L + Cascade (5Fold) | ✔ | 0.7116 |
ATSS + Pseudo (5Fold), Deformable DETR (5Fold), Swin-L + Cascade (5Fold) | ✔ | 0.7185 |