boostcampaitech7 / level1-imageclassification-cv-07

level1-imageclassification-cv-07 created by GitHub Classroom
1 stars 2 forks source link

πŸ† 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. μ΅œμ’… κ²°κ³Ό 뢄석 ### πŸ₯‡ μ΅œμ’… κ²°κ³Ό Screenshot 2024-09-26 at 7 05 51β€―PM
## [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, κΉƒν—ˆλΈŒ λ ˆν¬μ§€ν† λ¦¬ 관리