seungki1011 / AI-Tech5-Object-Detection-Competetion

(Competition hosted under Naver Connection Foundation - boostcamp AI Tech 5th) Object detection for recyclable waste in concern of social issues related to trash. (6/19)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

♻️ 재활용 품목 분류를 위한 Object Detection

✨ 팀 소개

Thanks goes to these wonderful people (emoji key):


김승기
💻 🔣 🚇 🚧

김준영

💻 🚇 🚧 📆

전형우

💻 🤔 👀 ⚠️

천지은

💻 🔣 💡 🔬

신우진

💻 🤔 🚇 👀

This project follows the all-contributors specification. Contributions of any kind welcome!

🎙️ 프로젝트 소개

요즘 쓰레기 관련 문제들이 항상 문제로 떠오르고 있습니다. 이러한 문제를 해결할 수 있는 방법 중 하나는 분리수거를 잘 하는 것입니다. 잘 분리 배출 된 쓰레기는 자원으로서 가치를 인정받아 재활용되지만, 잘못 분리 배출 되면 그대로 폐기물로 분류되어 매립 또는 소각 되기 때문입니다. 따라서 분리 배출을 잘 하기 위해서 이미지에서 쓰레기를 detection하는 모델을 만들어 보려고 합니다. 쓰레기를 잘 detection하는 모델을 만든다면 쓰레기장에 설치되어 정확한 분리수거를 도울 수 있고 어린 아이들의 분리수거 교육에 사용될 수도 있을 것입니다.

이번 프로젝트는 부스트캠프 AI Tech CV 트랙내에서 진행된 대회이며 mAP50으로 최종평가를 진행하게 됩니다.

📆 프로젝트 일정

프로젝트 전체 일정

  • 2023.05.01 ~ 2023.05.18

프로젝트 세부 일정

  • 2023.05.01 ~ 2023.05.05 : Object Detection에 대해 알아보기
  • 2023.05.06 ~ 2023.05.08 : EDA
  • 2023.05.09 ~ 2023.05.10 : Training Dataset과 Validation Dataset으로 분리, MMDetection 사용법 익히기
  • 2023.05.11 ~ 2023.05.12 : Online Augmentation
  • 2023.05.13 ~ 2023.05.14 : Offline Augmentation, Model 실험
  • 2023.05.15 ~ 2023.05.17 : TTA(Test Time Augmentation), Multi-scale Training & Testing
  • 2023.05.18 ~ 2023.05.18 : Ensemble

🥼 프로젝트 수행

➡️ Link따라 들어가시면 보실 수 있습니다.

  1. EDA
  2. Augmentation
  3. Model-MMDetection
  4. Model-YOLOv8
  5. Wandb 실험 결과

🗒️ 프로젝트 결과

  • TTA, Multi-scale Training & Testing, Ensemble을 통해 최종적으로 아래와 같은 결과를 얻었습니다.
    • Public
    • Private

🔄️ Directory

├── docs
├── imgs
├── upsampling
├── yolov8
├── .gitingnore
├── gitcommit_template.txt
├── README.md
└── mmdetection
    ├── configs
    │    └── _teamconfig_
    │         ├── datasets
    │         ├── models
    │         ├── schedules
    │         ├── utils
    │         ├── example
    │         │   ├── base_config.py
    │         │   ├── coco_detection.py
    │         │   ├── default_runtime.py
    │         │   ├── faster_rcnn_r50_fpn.py
    │         │   └── schedule_1x.py
    │         ├── [tag]ExpName_V1
    │         └── [tag]ExpName_V2
    ├── tools
    │   ├── train.py
    │   └── test.py
    └── run_experiments.sh
  • 하나의 실험은 example 폴더처럼 구성되어 있습니다.

  • 실험의 폴더 이름은 어떤 실험을 하는지 알 수 있도록 [tag]ExpName_V1처럼 구성했습니다.

    Tag Description
    aug Online augmentation & Offline augmentation 실험
    optim Optimizer 실험
    model MMDetection에서 지원하는 model 실험(2-Stage)
    pycocotools Pycocotools에서 지원하는 small_bbox, medium_bbox, large_bbox의 크기 조절 실험
  • MMDetection에서 지원하지 않는 YOLOv8 같은 경우 root directory에 있는 yolov8 폴더를 따로 구성하여 프로젝트를 진행했습니다.

  • 실험의 결과를 확인하기 위한 기능들, 성능을 더 올리기 위한 기능들은 utils폴더 안에 모두 구성했습니다.

    File(.ipynb) Description
    check Test dataset에 대해 bbox가 어떻게 그려지는지 확인
    checklist Validation dataset에 대해 모델 검증
    ensemble Ensemble을 한 번에 할 수 있도록 하나의 파일로 구성
    plot_cm Model이 class를 어떻게 예측하고 있는지 알 수 있는 Confusion Matrix
    pseudo_labeling Pseudo Labeling을 할 수 있도록 함
    show_bbox Validation dataset에 대해 bbox가 어떻게 그려지는지 확인
  • Offline Augmentation을 할 수 있는 코드는 root directory에 있는 upsampling 폴더에서 보실 수 있습니다.

🤔 Wrap-Up Report

⚠️ Dataset 출처

  • mmdetection/configs/_teamconfig_/utils에 위치하는 파일들에서 등장하는 이미지들의 출처는 부스트캠프 AI Tech임을 알려드립니다.

About

(Competition hosted under Naver Connection Foundation - boostcamp AI Tech 5th) Object detection for recyclable waste in concern of social issues related to trash. (6/19)


Languages

Language:Jupyter Notebook 87.2%Language:Python 12.6%Language:Shell 0.1%Language:C++ 0.0%Language:Dockerfile 0.0%Language:Batchfile 0.0%Language:Makefile 0.0%Language:CSS 0.0%