Skip to content

Hwan7919/level1-imageclassification-cv-12

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BoostCamp AI Tech Team 12

대회 설명

  • 주제 : Sketch 이미지 데이터 분류 Sketch기반 이미지를 분류하여 어떤 객체를 나타내는지 예측하는 대회

팀원 👩🏻‍💻👨🏻‍💻

김한별 손지형 유지환 장희진 정승민 조현준
EDA / Data processing EDA / Data processing Modeling / Ensemble Modeling / Ensemble Modeling / 코드 모듈화 / wandb 셋팅 / Ensemble EDA / Data processing

[프로젝트 개요]

Sketch 이미지에 대한 classficiation 대회입니다. 데이터는 총 500개의 클래스로 이루어져있습니다.

해당 대회에서는 사용되는 데이터셋의 원본의 경우 총 50,889개의 데이터셋으로 구성되어있지만, 해당 대회에서는 15,021개의 train 데이터와 10,014개의 private & public 평가 데이터로 나누어 구성되어있습니다.

sketch

해당 대회의 특징으로는 실제 이미지가 아닌 스케치 이미지의 분류로, 보다 간결한 선으로 해당 객체를 분류할 수 있어야 한다는 점 입니다.


[Classification Model 일반화 성능 비교]

Model val_acc val_loss Parameters ImageNet_Score Image per sec (V100, Batch=1)
DenseNet121 88.03% 0.259 8M 74.91% 4~5 ms
ResNet 29.09% 2.45 25.6M 76.15% 6~7 ms
ViT Small 64.28% 0.664 22M 81.5% 9~11 ms
EfficientNetV2RWS 78.67% 0.391 13.6M 82.1% 5~6 ms
EfficientNet B4 92.92% 1.15 19M 82.9% 7~8 ms
CoAtNet3 96.54% 1.16 168M 84.5% 30~40 ms
ResNet50 88.02% 0.478 25.6M 76.15% 6~7 ms
MaxViTBase 88.71% 1.13 119M 85.17% 35~45 ms

사용된 기법

Best Data Augmentation : 1. 단순한 Flip 형태의 증강(좌우, 상하, 상하좌우), 2. Rotate 증강(15도 이내) 3. Color Inver ( 색상반전 )

모델 : Coatnet | efficientnetB4 | resnet101

Optimizer : Adam | SGD | SAM | AdamW

Scheduler : StepLR | OneCycleLR

생성형 모델 : Stable Diffusion ( Image + Prompt ) (Link)



실행 환경

GPU : TESLA V100
RAM : 32GB
Storage : 100GB
image


Poetry 설치

curl -sSL https://install.python-poetry.org | python3 -

환경 변수 반영
export PATH="$HOME/.local/bin:$PATH"

관련 라이브러리 설치
poetry install

Poetry 가상환경 실행
poetry shell

Train, Test, Ensemble 실행 방법

Train 실행 방법

python train.py --config /path/to/your_train_config.yaml --use_wandb

Test 실행 방법

python test.py --config /path/to/your_test_config.yaml

Ensemble 실행 방법

python ensemble.py --config /path/to/your/ensemble_config.yaml

실험 및 결과

EfficienNet B4와 CoAtNet3의 val acc에서 90%를 넘는 높은 성능을 보였으며, Test 데이터에 대해서 EfficienNetB4 : 88% | CoAtNet3 : 90.1% 정확도를 보여주었습니다. 이미지 증강의 경우 RGB 색상 Nomalization, Resize(224,224)를 기본 증강으로 사용하였고, Flip, Rotation, Invert, 생성형 이미지를 사용하용하는 것이 가장 높은 성능을 보여주었습니다. 최종적으로 CoAtNet3 + EfficienNetB4 + ResNet + MaxViT ensemble을 통해서 private score : 92.2%를 얻을수 있었습니다.

image1
image2

Reference

[1] SAM (Link)

[2] clovaai/CutMix-PyTorch (Link)

About

level1-imageclassification-cv-12 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 89.1%
  • Python 10.9%