Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
0e0f1c2
Setting up GitHub Classroom Feedback
github-classroom[bot] Sep 30, 2024
ec4fcd4
created EDA
kupulau Oct 1, 2024
d4914c8
updated EDA
kupulau Oct 1, 2024
ae2f08b
added heatmap.png (the EDA example in the AIStages)
kupulau Oct 1, 2024
15cae21
Merge pull request #2 from boostcampaitech7/kupulau
june21a Oct 6, 2024
fe83a42
docs: Add basic README template
lexxsh Oct 9, 2024
3af0b86
docs: Revise READMe.md (1)
kupulau Oct 10, 2024
bbfbe23
docs : Revise README.md (2) change title
kupulau Oct 10, 2024
4a2cf3c
Merge branch 'main' into kupulau
lexxsh Oct 10, 2024
f9dd895
Merge pull request #4 from boostcampaitech7/kupulau
lexxsh Oct 10, 2024
14ae177
feat: Implement core functionalities and organize project structure
lexxsh Oct 10, 2024
197de3b
Merge pull request #6 from boostcampaitech7/lexxsh
lexxsh Oct 10, 2024
4cfdb78
remove: .git folder from mmdetection directory
lexxsh Oct 11, 2024
f58b21a
feat: Reorganize and reupload directory structure
lexxsh Oct 11, 2024
9b0ecb7
Merge pull request #7 from boostcampaitech7/lexxsh
lexxsh Oct 11, 2024
063da78
feat: add ensemble code to utile^Cfolder (Closes #42)
lexxsh Oct 11, 2024
7677ae7
feat: add ensemble code to utiles folder (Closese #8)
lexxsh Oct 11, 2024
fc8fe96
Merge pull request #11 from boostcampaitech7/lexxsh
lexxsh Oct 11, 2024
617982b
feat: add ensemble code to utiles folder (Closes #8)
lexxsh Oct 11, 2024
80f1ed1
Merge pull request #12 from boostcampaitech7/lexxsh
lexxsh Oct 11, 2024
acca18c
fix: Correct load_from behavior for resuming training in mmdetection …
lexxsh Oct 13, 2024
73a5dff
feat: add MultiLabel Stratified KFold to util (now kfold consider not…
june21a Oct 14, 2024
eef7606
Merge pull request #18 from boostcampaitech7/june21a
june21a Oct 14, 2024
319dbaa
perf: now StratifiedKfold consider the Quartile
june21a Oct 14, 2024
a061dc4
Merge pull request #19 from boostcampaitech7/june21a
june21a Oct 14, 2024
779f8d8
Update README.md
june21a Oct 14, 2024
8508757
feat: Upload DINO Config baseline at mmdetection
lexxsh Oct 16, 2024
783298c
Merge pull request #21 from boostcampaitech7/lexxsh
lexxsh Oct 16, 2024
8cddb9a
feat: add code and custom metric for test time augmentation
june21a Oct 16, 2024
b7da964
Merge pull request #22 from boostcampaitech7/june21a
june21a Oct 16, 2024
6864440
feat: Add preprocessing code for data augmentation using 2x super-res…
lexxsh Oct 16, 2024
d435e68
feat: Add converter from COCO to PASCAL VOC format and preprocess sup…
lexxsh Oct 16, 2024
6998ae5
feat: Implement SR-based data augmentation techniques
lexxsh Oct 17, 2024
12b1898
feat: Add functionality to convert PASCAL VOC XML to COCO JSON (Close…
lexxsh Oct 17, 2024
7bae457
Merge pull request #24 from boostcampaitech7/lexxsh
lexxsh Oct 17, 2024
3afb36e
fix: Resolve issues in PASCAL VOC to COCO conversion function
lexxsh Oct 17, 2024
0c341c8
refactoring: complete emrge
kupulau Oct 18, 2024
8a0ae34
Merge branch 'develop' of https://github.com/boostcampaitech7/level2-…
lexxsh Oct 18, 2024
a4f80b5
Fix: Correct bbox cropping in 5_randcrop
lexxsh Oct 18, 2024
5ec8015
refractor: merge local/kupulau into origin/kupulau
kupulau Oct 19, 2024
73b9159
Merge branch 'develop' of https://github.com/boostcampaitech7/level2-…
kupulau Oct 19, 2024
5be2711
feat: add detectron2 train, inference code
kupulau Oct 19, 2024
50505a3
feat: Upload base Config at mmdetection
june21a Oct 21, 2024
ee2119f
Merge pull request #26 from boostcampaitech7/june21a
june21a Oct 21, 2024
a9b95ac
refactor : divide dataset.py into multi and normal dataset format
june21a Oct 21, 2024
39d7c4f
Merge pull request #27 from boostcampaitech7/june21a
june21a Oct 21, 2024
9bb2d19
fix : image_size is not defined on default_dataset.py
june21a Oct 21, 2024
8a1db28
Merge pull request #28 from boostcampaitech7/june21a
june21a Oct 21, 2024
983934f
Merge branch 'develop' of https://github.com/boostcampaitech7/level2-…
lexxsh Oct 21, 2024
09d8476
feat: update config file and improve models
lexxsh Oct 21, 2024
049cfdf
Merge pull request #32 from boostcampaitech7/lexxsh
lexxsh Oct 22, 2024
0b0dfac
refactor : merge tta and inference. and separate mmdet v2 code(Closes…
june21a Oct 22, 2024
2a5f90f
Merge pull request #33 from boostcampaitech7/june21a
june21a Oct 22, 2024
5b5768e
fix : delete tta.py cause codes move to inference.py and fix some bug…
june21a Oct 22, 2024
053a41c
Merge pull request #34 from boostcampaitech7/june21a
june21a Oct 22, 2024
6de83e7
fix: Update weight normalization method in WBF ensemble
lexxsh Oct 23, 2024
40e4765
Merge branch 'develop' of https://github.com/boostcampaitech7/level2-…
lexxsh Oct 23, 2024
1d74ed1
[docs] Update README.md v2
glasshong Oct 24, 2024
d918ea1
docs: Readme.md 수정
lexxsh Oct 26, 2024
1eeb80c
docs: Readme.md 수정
lexxsh Oct 26, 2024
b7c66ac
docs: Readme.md 수정
lexxsh Oct 26, 2024
a18fece
docs: Readme.md 수정
lexxsh Oct 26, 2024
bb6f120
docs: Readme.md 수정
lexxsh Oct 26, 2024
de22ed8
Merge branch 'develop' of https://github.com/boostcampaitech7/level2-…
lexxsh Oct 26, 2024
989242a
feat: add yolo directory, utils
lexxsh Oct 26, 2024
b125771
feat: utils/ bbox_counter upload
lexxsh Oct 26, 2024
825592f
Merge pull request #35 from boostcampaitech7/lexxsh
lexxsh Oct 26, 2024
0f01eba
feat : add ddq-swinl config
june21a Oct 26, 2024
126aa84
Merge pull request #36 from boostcampaitech7/june21a
june21a Oct 26, 2024
b0329b2
FEAT : divide each dataset config file according to augmentation option
june21a Oct 26, 2024
549ed7d
Merge pull request #37 from boostcampaitech7/june21a
june21a Oct 27, 2024
764a6a0
Update README.md
june21a Oct 27, 2024
71749d3
Merge pull request #25 from boostcampaitech7/kupulau
june21a Oct 28, 2024
b2198f3
Merge pull request #38 from boostcampaitech7/develop
lexxsh Oct 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
59 changes: 59 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Ignore dataset folder
/dataset/
dataset/

# Python
__pycache__/
*.py[cod]
*$py.class

# Jupyter Notebook
.ipynb_checkpoints

# Virtual environment
venv/
env/
.env

# IDEs and editors
.vscode/
.idea/
*.swp
*.swo

# Operating System Files
.DS_Store
Thumbs.db

# Model checkpoints and logs
*.pth
*.pt
*.ckpt
logs/

# Temporary files
*.tmp
*.temp

# Compiled source
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases
*.log
*.sql
*.sqlite
776 changes: 776 additions & 0 deletions EDA/EDA.ipynb

Large diffs are not rendered by default.

Binary file added EDA/heatmap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
173 changes: 173 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# 재활용 품목 분류를 위한 Object Detection

## 🥇 팀 구성원

<div align="center">
<table>
<tr>
<td align="center">
<a href="https://github.com/kimsuckhyun">
<img src="https://stages.ai/_next/image?url=https%3A%2F%2Faistages-api-public-prod.s3.amazonaws.com%2Fapp%2FUsers%2F00004010%2Fuser_image.png&w=1920&q=75" width="120px" height="120px" alt=""/>
<hr />
<sub><b>김석현</b></sub><br />
</a>
</td>
<td align="center">
<a href="https://github.com/kupulau">
<img src="https://stages.ai/_next/image?url=https%3A%2F%2Faistages-api-public-prod.s3.amazonaws.com%2Fapp%2FUsers%2F00003808%2Fuser_image.png&w=1920&q=75" width="120px" height="120px" alt=""/>
<hr />
<sub><b>황지은</b></sub><br />
</a>
</td>
<td align="center">
<a href="https://github.com/lexxsh">
<img src="https://stages.ai/_next/image?url=https%3A%2F%2Faistages-api-public-prod.s3.amazonaws.com%2Fapp%2FUsers%2F00003955%2Fuser_image.png&w=1920&q=75" width="120px" height="120px" alt=""/>
<hr />
<sub><b>이상혁</b></sub><br />
</a>
</td>
<td align="center">
<a href="https://github.com/june21a">
<img src="https://stages.ai/_next/image?url=https%3A%2F%2Faistages-api-public-prod.s3.amazonaws.com%2Fapp%2FUsers%2F00003793%2Fuser_image.png&w=1920&q=75" width="120px" height="120px" alt=""/>
<hr />
<sub><b>박준일</b></sub><br />
</a>
</td>
<td align="center">
<a href="https://github.com/glasshong">
<img src="https://stages.ai/_next/image?url=https%3A%2F%2Faistages-api-public-prod.s3.amazonaws.com%2Fapp%2FUsers%2F00004034%2Fuser_image.png&w=1920&q=75" width="120px" height="120px" alt=""/>
<hr />
<sub><b>홍유리</b></sub><br />
</a>
</td>
</tr>
</table>
</div>

<br />

## 🗒️ 프로젝트 개요

바야흐로 대량 생산, 대량 소비의 시대. 우리는 많은 물건이 대량으로 생산되고, 소비되는 시대를 살고 있습니다. 하지만 이러한 문화는 '쓰레기 대란', '매립지 부족'과 같은 여러 사회 문제를 낳고 있습니다.

분리수거는 이러한 환경 부담을 줄일 수 있는 방법 중 하나입니다. 잘 분리배출 된 쓰레기는 자원으로서 가치를 인정받아 재활용되지만, 잘못 분리배출 되면 그대로 폐기물로 분류되어 매립 또는 소각되기 때문입니다.

따라서 우리는 사진에서 쓰레기를 Detection 하는 모델을 만들어 이러한 문제점을 해결해보고자 합니다. 문제 해결을 위한 데이터셋으로는 일반 쓰레기, 플라스틱, 종이, 유리 등 10 종류의 쓰레기가 찍힌 사진 데이터셋이 제공됩니다.

여러분에 의해 만들어진 우수한 성능의 모델은 쓰레기장에 설치되어 정확한 분리수거를 돕거나, 어린아이들의 분리수거 교육 등에 사용될 수 있을 것입니다. 부디 지구를 위기로부터 구해주세요! 🌎


<br />

## 📅 프로젝트 일정

프로젝트 전체 일정

- 2024.09.30 (월) 10:00 ~ 2024.10.24 (목) 19:00

![image](https://github.com/user-attachments/assets/e6d03619-fe9b-4b14-8266-e169c765f9a0)


## 💻 개발 환경

```bash
- Language : Python
- Environment
- CPU : Intel(R) Xeon(R) Gold 5120
- GPU : Tesla V100-SXM2 32GB × 1
- Framework : PyTorch
- Collaborative Tool : Git, Wandb, Notion
```

## 🏆 프로젝트 결과

- Public 1등, Private 1등

![image](https://github.com/user-attachments/assets/4956fa94-51b7-498a-b8c8-4cc7dd8cea33)

## ✏️ Wrap-Up Report

- 프로젝트의 전반적인 내용은 아래 랩업 리포트를 참고 바랍니다.
- [Wrap-Up Report](https://drive.google.com/file/d/13dfWdaCJQfc2CzF-bT4asWYKytZWTk9m/view?usp=sharing)

## 📁 데이터셋 구조

```
📦data
┣ 📜train.json
┣ 📜test.json
┣ 📂test
┃ ┣ 📜0000.JPG
┃ ┣ 📜0001.JPG
┃ ┣ 📜0002.JPG
┃ ┗ ...
┣ 📂train
┃ ┣ 📜0000.JPG
┃ ┣ 📜0001.JPG
┃ ┣ 📜0002.JPG
┃ ┗ ...
```

- 학습에 사용할 이미지는 4,883개, 추론에 사용할 이미지는 4,871개로 각각 data/train/, data/test 아래에 저장되어 있습니다.
- 제공되는 이미지 데이터셋은 10개 클래스의 쓰레기가 찍힌 1024 x 1024 크기의 사진으로 구성되어 있습니다.
- train.json과 test.json은 coco format으로 된 각 이미지에 대한 annotation file 입니다.

<br />

## 📁 프로젝트 구조

```
📦level2-objectdetection-cv-05
┣ 📂.github
┃ ┗ 📜.keep
┣ 📂EDA
┃ ┣ 📜EDA.ipynb
┃ ┣ 📜heatmap.png
┣ 📂mmdetection
┃ ┣ 📜Co-detr
┃ ┃ ┗ 📜co-detrl.py
┃ ┣ 📜DiNO
┃ ┃ ┗ 📜dino_Swin_L_baseline.py
┃ ┣ 📜_base_
┃ ┃ ┗ 📜default_dataset.py
┃ ┃ ┗ 📜default_multi_dataset.py
┃ ┃ ┗ 📜simple_augmentation_dataset.py
┃ ┃ ┗ 📜heavy_augmentation_dataset.py
┃ ┃ ┗ 📜lsj_mosaic_augmentation_dataset.py
┃ ┃ ┗ 📜default_runtime.py
┃ ┃ ┗ 📜default_tta.py
┃ ┣ 📜cascade-RCNN
┃ ┃ ┗ 📜cascade-rcbb_convnextV2.py
┃ ┃ ┗ 📜cascade-rcnn_swin_L.py
┃ ┣ 📜ddq
┃ ┃ ┗ 📜ddq_swinl.py
┣ 📂utils
┃ ┣ 📜SR_X2_preprocessing
┃ ┃ ┗ 📜4_crop.ipynb
┃ ┃ ┗ 📜5_random.ipynb
┃ ┃ ┗ 📜Update_json.ipynb
┃ ┣ 📜mmdetection
┃ ┃ ┗ 📜inference.py
┃ ┃ ┗ 📜inference_mmdet_v2.py
┃ ┃ ┗ 📜train.py
┃ ┣ 📜MultiLabelStratifiedKFold_COCO.py
┃ ┣ 📜Pascal_to_coco.ipynb
┃ ┣ 📜StratifiedKFold_COCO.py
┃ ┣ 📜emsemble.py
┗ ┗ 📜inference_visualizer.py

```
<br />

## 🧱 Structure

![image](https://github.com/user-attachments/assets/b2e1d2b4-822e-4a39-86b1-97319114f8c8)

- CO-DETR + DDQ-DETR + Cascade R-CNN + YOLO(emsemble) 모델 사용



</details>

<br />
34 changes: 34 additions & 0 deletions mmdetection/.circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: 2.1

# this allows you to use CircleCI's dynamic configuration feature
setup: true

# the path-filtering orb is required to continue a pipeline based on
# the path of an updated fileset
orbs:
path-filtering: circleci/[email protected]

workflows:
# the always-run workflow is always triggered, regardless of the pipeline parameters.
always-run:
jobs:
# the path-filtering/filter job determines which pipeline
# parameters to update.
- path-filtering/filter:
name: check-updated-files
# 3-column, whitespace-delimited mapping. One mapping per
# line:
# <regex path-to-test> <parameter-to-set> <value-of-pipeline-parameter>
mapping: |
mmdet/.* lint_only false
requirements/.* lint_only false
tests/.* lint_only false
tools/.* lint_only false
configs/.* lint_only false
.circleci/.* lint_only false
base-revision: dev-3.x
# this is the path of the configuration we should trigger once
# path filtering and pipeline parameter value updates are
# complete. In this case, we are using the parent dynamic
# configuration itself.
config-path: .circleci/test.yml
11 changes: 11 additions & 0 deletions mmdetection/.circleci/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ARG PYTORCH="1.8.1"
ARG CUDA="10.2"
ARG CUDNN="7"

FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel

# To fix GPG key error when running apt-get update
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub

RUN apt-get update && apt-get install -y ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libgl1-mesa-glx
Loading