Skip to content

202250274/Object-Detection-Project

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

227 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ Project Overview

project_image

λ°”μ•Όνλ‘œ λŒ€λŸ‰ 생산, λŒ€λŸ‰ μ†ŒλΉ„μ˜ μ‹œλŒ€. μš°λ¦¬λŠ” λ§Žμ€ 물건이 λŒ€λŸ‰μœΌλ‘œ μƒμ‚°λ˜κ³ , μ†ŒλΉ„λ˜λŠ” μ‹œλŒ€λ₯Ό μ‚΄κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ΄λŸ¬ν•œ λ¬Έν™”λŠ” 'μ“°λ ˆκΈ° λŒ€λž€', '맀립지 λΆ€μ‘±'κ³Ό 같은 μ—¬λŸ¬ μ‚¬νšŒ 문제λ₯Ό λ‚³κ³  μžˆμŠ΅λ‹ˆλ‹€.

λΆ„λ¦¬μˆ˜κ±°λŠ” μ΄λŸ¬ν•œ ν™˜κ²½ 뢀담을 쀄일 수 μžˆλŠ” 방법 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 잘 λΆ„λ¦¬λ°°μΆœ 된 μ“°λ ˆκΈ°λŠ” μžμ›μœΌλ‘œμ„œ κ°€μΉ˜λ₯Ό 인정받아 μž¬ν™œμš©λ˜μ§€λ§Œ, 잘λͺ» λΆ„λ¦¬λ°°μΆœ 되면 κ·ΈλŒ€λ‘œ 폐기물둜 λΆ„λ₯˜λ˜μ–΄ 맀립 λ˜λŠ” μ†Œκ°λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

λ”°λΌμ„œ μš°λ¦¬λŠ” μ‚¬μ§„μ—μ„œ μ“°λ ˆκΈ°λ₯Ό Detection ν•˜λŠ” λͺ¨λΈμ„ λ§Œλ“€μ–΄ μ΄λŸ¬ν•œ λ¬Έμ œμ μ„ ν•΄κ²°ν•΄λ³΄κ³ μž ν•©λ‹ˆλ‹€.

  • μž…λ ₯
    • μ“°λ ˆκΈ° 객체가 λ‹΄κΈ΄ 이미지, bbox 정보(μ’Œν‘œ, μΉ΄ν…Œκ³ λ¦¬)
    • bbox annotation은 COCO format
  • 좜λ ₯
    • bbox μ’Œν‘œ, μΉ΄ν…Œκ³ λ¦¬, score 값을 리턴.
    • submission 양식에 맞게 csv νŒŒμΌμ„ λ§Œλ“€μ–΄ 제좜
    • COCO format이 μ•„λ‹Œ Pascal VOC format

πŸ—ƒοΈ Dataset

  • 전체 이미지
    • 9754 images
    • train
      • 4883 images
    • test
      • 4871 images
  • 클래슀 수
    • 10 class
    • General trash, Paper, Paper pack, Metal, Glass, Plastic, Styrofoam, Plastic bag, Battery, Clothing
  • 이미지 크기
    • 1024 x 1024

πŸ˜„ Team Member

κΉ€κ±΄μˆ˜ λ°•μ§„μ˜ 방민혁 μ˜€ν™μ„ μ΄μ†Œμ˜ μ΄μ˜ˆμ§„
T7103 T7156 T7158 T7208 T7222 T7225

πŸ—‚οΈ Role

Member Role
κΉ€κ±΄μˆ˜ PM μ—­ν•  μˆ˜ν–‰, YOLO Develop, Ensemble
λ°•μ§„μ˜ ConvNeXT Develop, Ensemble, Util κΈ°λŠ₯ κ΅¬ν˜„
방민혁 EDA, Data Relabel, ATSS Swin Develop, Ensemble
μ˜€ν™μ„ PM μ—­ν•  μˆ˜ν–‰, DETR 기반 Model Develop,
Util κΈ°λŠ₯ κ΅¬ν˜„, Project ꡬ쑰 및 μ„œλ²„ ν™˜κ²½ ꡬ성
μ΄μ†Œμ˜ VFNet, RTMDet Model Develop, Util κΈ°λŠ₯ κ΅¬ν˜„
μ΄μ˜ˆμ§„ EDA, Data Relabel, Pseudo Labeling, TTA

🧳 Project Progress Summary

μ•„λž˜μ˜ ν•­λͺ©λ“€λ‘œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•œ 과정을 μ„€λͺ…ν•œλ‹€.


Project Structure

πŸ“¦ level2-objectdetection-cv-14
┣ πŸ“‚ EDA_data
┃ ┣ πŸ“œ eda_(2).ipynb
┃ ┣ πŸ“œ eda_dataset.ipynb
┃ ┣ πŸ“œ eda_traindata.ipynb
┣ πŸ“‚ mmdetection
┃ ┣ πŸ“‚ configs
┃ ┣ πŸ“‚ custom_configs
┃ ┣ πŸ“‚ mmdet
┃ β”— πŸ“œ train.py
┃ β”— πŸ“œ inference.py
┣ πŸ“‚ mmdetectionV3
┃ ┣ πŸ“‚ configs
┃ ┣ πŸ“‚ custom_configs
┃ ┣ πŸ“‚ mmdet
┃ β”— πŸ“œ train.py
┃ β”— πŸ“œ inference.py
┣ πŸ“‚ yolo
┣ πŸ“‚ utils
┃ ┣ πŸ“œ csv_pseudo.py
┃ ┣ πŸ“œ Ensemble.py
┃ ┣ πŸ“œ Gsheet.py
┃ ┣ πŸ“œ modify_test.py
┃ ┣ πŸ“œ pseudo_data_split.py
┃ ┣ πŸ“œ pseudo_ensemble_labeling.py
┃ ┣ πŸ“œ pseudo_labeling.py
┃ ┣ πŸ“œ pseudo_labes_count.py
┃ ┣ πŸ“œ split_val_train_log.py
┃ ┣ πŸ“œ Stratified_Group_K_Fold.py
┣ πŸ“ƒ requirements.txt
β”— πŸ“ƒ README.md

πŸ•΅πŸ» EDA

Class Imbalance, Object Size λ“± μ—¬λŸ¬ ν•­λͺ©μ— λŒ€ν•΄μ„œ μ§„ν–‰ν•˜μ˜€λ‹€.
μ•„λž˜λŠ” κ·Έ 쀑 ν•˜λ‚˜μ— λŒ€ν•œ μ˜ˆμ‹œμ΄λ‹€.
Wrap-UP Report μ°Έκ³ 

BBox Area Distribution

image

  • Clothing은 μƒλŒ€μ μœΌλ‘œ 큰 λ°•μŠ€ 크기λ₯Ό κ°€μ§€κ³  있으며 Battery와 같은 λ¬Όμ²΄λŠ” μž‘κ³  μΌμ •ν•œ 크기둜 λ‚˜νƒ€λ‚˜λŠ” κ²½ν–₯을 확인
  • Glass, Plastic, Paper Pack, Plastic bag λ“±μ˜ 경우, λ°•μŠ€ 크기가 맀우 λ‹€μ–‘ν•œ 뢄포λ₯Ό λ³΄μž„

πŸ§ͺ Experiments

μ§„ν–‰ν•œ μ‹€ν—˜μœΌλ‘œλŠ” Data Relabeling, Pseudo Labeling 등이 μžˆλ‹€.
μ•„λž˜λŠ” κ·Έ 쀑 ν•˜λ‚˜μ— λŒ€ν•œ μ˜ˆμ‹œμ΄λ‹€.
Wrap-UP Report μ°Έκ³ 

Data Relabeling

  • 잘λͺ»λœ 라벨링에 λŒ€ν•΄μ„œ μˆ˜μ •ν•˜λŠ” μž‘μ—…μ„ κ±°μΉ¨
  • Object λ§ˆλ‹€ label의 톡일성 μœ μ§€ ex) μ „λ‹¨μ§€λ‚˜ λͺ…함 같은 경우 General trash둜 톡일

πŸ“š Model Selection and Develop

μ‚¬μš©ν•œ λͺ¨λΈμ—λŠ” ATSS Swin, ConvNeXT, DINO λ“±λ“± μ—¬λŸ¬κ°€μ§€κ°€ μžˆλ‹€.
μ•„λž˜λŠ” κ·Έ 쀑 ν•˜λ‚˜μ— λŒ€ν•œ μ˜ˆμ‹œμ΄λ‹€.
Wrap-UP Report μ°Έκ³ 

ATSS Swin

Version Description Public mAP 50
1 ATSS Swin Base model 적용 0.5587
2 pretrained model ꡐ체 (swin win12-384 model) 0.5397
3 Cascade Swin Base model 적용 0.5482
4 load_from(사전 ν•™μŠ΅λœ κ°€μ€‘μΉ˜) 적용 0.6297
5 Anchor ratios μˆ˜μ • 0.6073
6 train_pipeline의 Resizeλ₯Ό multiscale_v1둜 μˆ˜μ • 0.6536
7 Hard Augmentation 0
8 train_pipeline의 Resizeλ₯Ό (1024,1024)둜 μˆ˜μ • 0.6558
9 train_pipeline의 Resizeλ₯Ό multiscale_v2둜 μˆ˜μ • 0.6800

πŸ–‡οΈ Ensemble

  • λͺ¨λΈκ°„ μ•™μƒλΈ”μ—μ„œ 2κ°€μ§€ μ „λž΅μ„ μ‚¬μš©ν•˜μ˜€λ‹€.
  • Stratified Group K Fold Cross Validation
    • 각기 λ‹€λ₯Έ Fold에 ν•™μŠ΅ν•œ 같은 ꡬ쑰의 λͺ¨λΈκ°„ 앙상블 (NMS, WBF)
  • λ‹€λ₯Έ λͺ¨λΈκ°„ 앙상블
    • Confusion Matrix와 같은 평가 μ§€ν‘œλ₯Ό ν™œμš©ν•˜μ—¬ λͺ¨λΈκ°„ νŠΉμ„±μ„ νŒŒμ•…
    • νŒŒμ•…ν•œ λͺ¨λΈκ°„ νŠΉμ„±μ„ λ°”νƒ•μœΌλ‘œ 졜적의 λͺ¨λΈ μ‘°ν•© 선택

Stratified Group K Fold Cross Validation Ensemble

Model Fold Avg Score WBF NMS
ConvNeXT 0.6929 0.7091 0.7063
DINO 0.6969 0.5328 0.7106
ATSS Swin 0.6791 0.6929 0.6970
YOLO 0.4360 0.5539 0.5272
CO-DINO 0.6955 0.6212 0.7111

Final Model Ensemble Strategy

image


Utils

ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ νŽΈμ˜μ„±μ„ μœ„ν•œ κΈ°λŠ₯ λ˜λŠ” μ‹€ν—˜μ„ μœ„ν•œ μΆ”κ°€ κΈ°λŠ₯듀을 κ΅¬ν˜„ν•˜μ˜€λ‹€.

  • Stratified Group K Fold Cross Validation
  • Google Sheet을 μ΄μš©ν•œ μ‹€ν—˜ 인자 기둝 μžλ™ν™”
  • Pseudo Labeling κ΄€λ ¨ κΈ°λŠ₯
  • train / inference log λΆ„ν•  κΈ°λŠ₯ λ“±λ“±

μ•„λž˜λŠ” κ·Έ 쀑 ν•˜λ‚˜μ— λŒ€ν•œ μ˜ˆμ‹œμ΄λ‹€.
Notion μ°Έκ³ 

Stratified Group K Fold Cross Validation

  • ν•™μŠ΅ν•œ λͺ¨λΈμ˜ μ„±λŠ₯ 평가λ₯Ό μœ„ν•΄μ„œ Validation Set을 뢄리해낸닀.
  • κΈ°μ‘΄ 데이터 μ…‹μ˜ 클래슀 뢄포λ₯Ό μœ μ§€ν•œλ‹€. (μ•„λž˜ ν‘œ μ°Έκ³ )
  • 같은 μ΄λ―Έμ§€μ—μ„œ λ‚˜μ˜¨ annotation이 Train λ˜λŠ” Validationμ—λ§Œ ν¬ν•¨λ˜λ„λ‘ κ΅¬λΆ„ν•œλ‹€.
General trash Paper Paper pack Metal Glass Plastic Styrofoam Plastic bag Battery Clothing
training set 17.14% 27.45% 3.88% 4.04% 4.24% 12.72% 5.46% 22.37% 0.69% 2.02%
train - fold1 17.11% 26.73% 3.92% 4.07% 4.14% 13.01% 5.46% 22.88% 0.66% 2.02%
val - fold1 17.23% 29.88% 3.72% 3.96% 4.59% 11.70% 5.45% 20.66% 0.76% 2.04%
train - fold2 17.17% 27.75% 3.92% 4.16% 4.27% 12.52% 5.47% 22.21% 0.66% 1.88%
val - fold2 17.01% 26.23% 3.72% 3.58% 4.13% 13.53% 5.40% 23.02% 0.81% 2.58%
train - fold3 17.05% 27.66% 3.95% 3.81% 4.37% 12.35% 5.67% 22.51% 0.66% 1.99%
val - fold3 17.53% 26.55% 3.56% 5.04% 3.71% 14.29% 4.56% 21.79% 0.82% 2.16%
train - fold4 17.18% 27.19% 3.85% 4.00% 4.28% 12.66% 5.66% 22.37% 0.70% 2.11%
val - fold4 16.96% 28.54% 4.00% 4.23% 4.07% 12.94% 4.59% 22.40% 0.64% 1.64%
train - fold5 17.18% 27.88% 3.75% 4.19% 4.15% 13.05% 5.02% 21.92% 0.76% 2.11%
val - fold5 16.95% 25.66% 4.41% 3.46% 4.63% 11.33% 7.23% 24.25% 0.40% 1.68%

πŸ† Project Result

Public Leader Board

Public Leader Board


Private Leader Board

Private Leader Board


πŸ”— Reference


Commit Convention

  1. Feature : μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€
  2. Fix : 버그 μˆ˜μ •
  3. Docs : λ¬Έμ„œ μˆ˜μ •
  4. Style : μ½”λ“œ ν¬λ§·νŒ… β†’ Code Convention
  5. Refactor : μ½”λ“œ λ¦¬νŒ©ν† λ§
  6. Test : ν…ŒμŠ€νŠΈ μ½”λ“œ
  7. Comment : 주석 μΆ”κ°€ 및 μˆ˜μ •

컀밋할 λ•Œ 헀더에 μœ„ λ‚΄μš©μ„ μž‘μ„±ν•˜κ³  μ „λ°˜μ μΈ λ‚΄μš©μ„ κ°„λ‹¨ν•˜κ²Œ μž‘μ„±ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ

  • git commit -m "[#issue] Feature : message content"

컀밋할 λ•Œ 상세 λ‚΄μš©μ„ μž‘μ„±ν•΄μ•Ό ν•œλ‹€λ©΄ μ•„λž˜μ™€ 같이 μ§„ν–‰ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ

git commit
μ–΄λ– ν•œ μ—λ””ν„°λ‘œ μ§„μž…ν•˜κ²Œ 된 ν›„ μ•„λž˜μ™€ 같이 μž‘μ„±ν•©λ‹ˆλ‹€.
[header]: μ „λ°˜μ μΈ λ‚΄μš©
. (ν•œ 쀄 λΉ„μ›Œμ•Ό 함)
상세 λ‚΄μš©


Branch Naming Convention

브랜치λ₯Ό μƒˆλ‘­κ²Œ λ§Œλ“€ λ•Œ, 브랜치 이름은 항상 μœ„ Commit Convention의 Header와 ν•¨κ»˜ μž‘μ„±λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ

  • Feature/~~~
  • Refactor/~~~

About

level2-objectdetection-cv-14 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 73.0%
  • Python 27.0%