Skip to content

vgptnv/image-classification-level1-08

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1. Introduction


본 과정은 NAVER Connect 재단 주관으로 인공지능과 딥러닝 Production의 End-to-End를 명확히 학습하고 실무에서 구현할 수 있도록 훈련하는 약 5개월간의 교육과정입니다. 전체 과정은 이론과정(U-stage, 5주)와 실무기반 프로젝트(P-stage, 15주)로 구성되어 있으며, 이 곳에는 그 중 첫 번째 대회인 Image Classification과제에 대한 Level1 - 08조 의 문제해결방법을 기록합니다.


🎨 AI Palette

”색칠을 하다 보면 그림이 완성되어 있을 거예요”

🔅 Members

김지수 김혜수 배지연 이승현 임문경 진명훈
image1 image2 image3 image4 image5 image6
Github Github Github Github Github Github

🔅 Contribution

김지수   Modeling • Feature Engineering • Age-specific model • EfficientNet Master • Out of fold
김혜수   Dataset curation • Construct Pipeline • Mental Care • Data license verification
배지연   Dataset generation • Dataset curation • Mask synthesis • Hyperparameter tuning
이승현   Team Management • Dataset preprocessing • Modeling • Make task-specific loss
임문경   EDA, Modeling • Visualizing • Search augmentation technique • MLops
진명훈   Modeling • Active Learning • Mentoring • Huggingface pipeline • Handling imbalance problem


2. Project Outline

competition_title

  • Task : Image Classification
  • Date : 2021.08.22 - 2021.09.02 (2 weeks)
  • Description : 사람의 정면 사진을 입력받아서 마스크 착용여부, 성별, 나이를 추측하여 18개의 class로 분류함
  • Image Resolution : (384 x 512)
  • Train : 18,900 + (External Dataset : https://www.kaggle.com/tapakah68/medical-masks-p4)
  • Test1 : 6,300
  • Test2 : 6,300

🏆 Final Score


3. Solution

process

KEY POINT

  • 마스크 착용여부, 성별에 대해서는 정확도가 높았으나 나이 분류(특히 60대 이상)에서 상대적으로 정확도가 낮아 이를 해결하는 것이 가장 중요했습니다.
  • 나이와 성별이 다르지만 의상이 비슷한 경우, 또는 마스크와 비슷한 물체나 형태가 이미지에 등장하는 경우 상대적으로 정확도가 낮았습니다 .
  • Cutmix, Cutout은 일반적으로 이미지 분류 문제 해결에 있어서 효과적이지만 잘못된 예제를 생성하는 현상을 보였습니다.

    → 주요 논점을 해결하는 방법론을 제시하고 실험결과를 공유하며 토론을 반복했습니다


Checklist

More Detail : https://github.com/jinmang2/boostcamp_ai_tech_2/blob/main/assets/ppt/palettai.pdf

  • Transformer based model
  • CNN based model(CLIP, EfficientNet, Nfnet, ResNet, ResNext)
  • Age-specific model
  • Three-head model
  • External Dataset
  • Data Augmentation (Centorcrop, Resize)
  • Focal loss
  • Weighted Sampling
  • Ensemble
  • Out of fold
  • Test time augmentation
  • Stacking
  • Pseudo Labeling
  • Noise Label Modification
  • Cutmix, cutout
  • StyleGAN v2 + Mask Synthesis
  • Ray
  • MC-Dropout
  • Fixmatch
  • Semi-supervised learning

Evaluation

Method F-score
Synthetic Dataset + EfficientLite0 69.0
Synthetic Dataset + non-prtrained BEIT 76.9
Synthetic Dataset + EfficientNet + Age-speicific 76.9
Synthetic Dataset + NFNet (Pseudo Labeling + Weighted Sampling) 78.5
Stacking BEIT + NFNet 77.1

4. How to Use

.
├──input/data/train
├──input/data/eval
├──input/data/images(external kaggle data)
├──image-classification-level1-08
│   ├── configs
│   ├── solution
│         ├── cnn_engine
│         ├── hugging
│         ├── jisoo
│         ├── hugging
│         └── moon
  • soloution안에는 각각 traintestinference가 가능한 라이브러리가 들어있습니다
  • 사용자는 전체 코드를 내려받은 후, 옵션을 지정하여 개별 라이브러리의 모델을 활용할 수 있습니다
  • 각 라이브러리의 구성요소는 ./solution/__main__.py에서 확인할 수 있습니다

How to make Synthetic Dataset

git clone https://github.com/boostcampaitech2/image-classification-level1-08.git
$python __main__.py -m {module} -s {script} -c {config}

About

image-classification-level1-08 3rd Place!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%