π Sketch Image Data Classification
**Goal :** μ£Όμ΄μ§ μ€μΌμΉ λ°μ΄ν°λ₯Ό νμ©νμ¬ λͺ¨λΈμ μ μνκ³ μ 곡λ ν
μ€νΈ μΈνΈμ κ° μ΄λ―Έμ§μ λν΄ μ¬λ°λ₯Έ λ μ΄λΈ μμΈ‘
**Data :** μλ³Έ ImageNet Sketch λ°μ΄ν°μ
μ€ μμ 500κ° κ°μ²΄(class)μ 25,035κ°μ μ΄λ―Έμ§ λ°μ΄ν°
## [1] Project Overview
### β²οΈ Timeline (09/03 - 09/26)
1. EDA λ° baseline code λΆμ
2. Baseline model μ μ
3. Baseline model μΌλ°ν μ±λ₯ κ°μ
4. μ΅μ’
κ²°κ³Ό λΆμ
### π₯ μ΅μ’
κ²°κ³Ό
## [2] Environment
- OS : Linux-5.4.0
- GPU : Tesla V100 (32GB)
- Python Version: 3.10.13
- IDE: Visual Studio Code
- Tool : Github, Slack, Notion, Zoom
- Experiment Tracking: Weights and Biases (WandB)
## [3] File Tree
```
ββ.github
ββModels
ββ 0925_kfold_coatnet
β ββ datasets
β β ββ custom_dataset.py
β β ββ transform.py
β ββ ensemble
β β ββ ensemble0.json
β β ββ ensemble2.json
β ββ ensemble.sh
β ββ ex.sh
β ββ exp
β β ββ exp0.json
β β ββ exp1.json
β β ββ exp2.json
β β ββ exp3.json
β β ββ exp4.json
β ββ inference.py
β ββ inference.sh
β ββ inference_ensemble.py
β ββ main.py
β ββ models
β β ββ model_selector.py
β ββ train.py
β ββ utils
β ββ getPretrainedModels.py
β ββ parameter.py
β ββ train_utils.py
β ββ utils.py
ββ 0926_ensemble
ββ datasets
β ββ custom_dataset.py
β ββ transform.py
ββ ensemble
ββ ensemble1.json
ββ inference_ensemble.py
ββREADME.md
```
## [4] Project Workflow
1. EDA λ° baseline code λΆμ
- λ°μ΄ν°λ Traindata 15,021κ°μ Private&Public Testdata 10,014κ°λ‘ ꡬμ±
- Traindata : 15021κ°μ νλͺ©κ³Ό 3κ°μ 컬λΌ(class_name, image_path, target)μΌλ‘ ꡬμ±
- Testdata : 10014κ°μ νλͺ©κ³Ό 1κ°μ 컬λΌ(image_path)μΌλ‘ ꡬμ±
- 500κ°μ ν΄λμ€κ° μκ³ κ° ν΄λμ€λ§λ€ 29~31κ°μ λ°μ΄ν°λ‘ ꡬμ±
- λΆμν λ°μ΄ν° νΉμ§
- νλ°± μ΄λ―Έμ§κ° λ§μ§λ§ μ»¬λ¬ μ΄λ―Έμ§λ μ‘΄μ¬
- μ€μΌμΉ μ μ λκ», μ΄λ―Έμ§ ν¬κΈ°, μ΄λ―Έμ§μ ν΄μλκ° λ€μν¨
- ν μ΄λ―Έμ§ μμ μ¬λ¬ κ°μ²΄κ° λ€μ΄μλ μ΄λ―Έμ§λ μ‘΄μ¬
- μ λ©΄, μΈ‘λ©΄ νΉμ λ€μ§μ΄μ§ μ΄λ―Έμ§λ μ‘΄μ¬
- κΈ°λ³Έ baseline_code λͺ¨λΈμ μ νλλ μ½ 68.4%λ‘ νμΈ
2. Baseline model μ μ
- λ€μν backbone λͺ¨λΈ μ€ν ν μ΅μ’
μ μΌλ‘ κ°μ₯ λμ 88.3%μ public scoreλ₯Ό λ¬μ±ν **Coatnet_3_rw_224**λ₯Ό baseline modelλ‘ μ μ
- λͺ¨λν λ° νμ
ν΄ μΆκ°
- Weights and Biases (WandB) μ¬μ©
- tmux μ¬μ©
- slack api νμ© λͺ¨λΈ νμ΅ μλ£ μλ¦Ό μλν
4. Baseline model μΌλ°ν μ±λ₯ κ°μ
1) Optimizer
2) Data Augmentation
3) Layer freeze
4) Dropout & Batch normalization
5) Loss
6) Learning rate scheduler
7) Progressive resizing (input size)
8) Failure Analysis
9) K-fold & Ensemble
4) TTA
## [5] Final Model Architecture
![image_fma](https://github.com/user-attachments/assets/f1f78ab7-2e73-4b7c-8eac-a120a600ec1a)
Team Members
λν€λΉν€π
|
|
|
|
|
|
μ΄λμ§ |
μ μ§ν |
μ μ μ |
μ μΉμ² |
κΉμμ |
μμ μ° |
μμλΈ, pseudo labeling, failure analysis |
λ°μ΄ν° μ μ²λ¦¬, μμλΈ, progressive resize, νμ΄νΌνλΌλ―Έν° μ‘°μ |
λ°μ΄ν° λΆμ λ° μ μ²λ¦¬, data augmentation, freezing |
λ°μ΄ν° μ μ²λ¦¬, data augmentation, νμ΄νΌνλΌλ―Έν° μ‘°μ , μμλΈ |
νλ‘μ νΈ μ€μΌμ€λ§ λ° λ¬Έμν, freezing, data augmentation, TTA |
data augmentation, stratified k-fold, κΉνλΈ λ ν¬μ§ν 리 κ΄λ¦¬ |