-
피부기록 앱 스킨로그와 화장품 추천 앱 매니폴드를 서비스하는 아트랩의 기업 과제 수행
-
제공받은 피부 데이터를 바탕으로 피부 평가, 분석 및 XAI
-
사용자에게 피부에 대한 정보를 제공하고, 화장품 선택에 도움주는 것이 목적
-
Input : 피부 부위별 사진(측면, 중앙부, 이마)
-
Output : 유분, 민감도, 주름, 색소침착 네 가지 기준에 대한 0~4점의 라벨링
- Macro-recall
.
├── 📂 naverboostcamp_dataset/
│ ├── 📂 naverboostcamp_train/
│ │ ├── 📂 JPEGImages/
│ │ │ ├── 📝 00000NBC.jpg
│ │ │ ├── 📝 00000NBC.json
│ │ │ └── 📝 ⋮
│ │ └── 📝 annotations.json
│ └── 📂 naverboostcamp_val/
│ ├── 📂 JPEGImages
│ │ ├── 📝 00000NBC_val.jpg
│ │ ├── 📝 00000NBC_val.json
│ │ └── 📝 ⋮
│ └── 📝 annotations.json
├── 📂 MWML/
│ ├── 📂 configs/
│ ├── 📂 libs/
│ ├── 📂 main/
│ │ ├── 📝 train.py
│ │ └── 📝 valid.py
│ ├── 📂 outputs/
│ └── 📂 pretrained_models/
│ └── 📝 RegNetY-3.2GF_dds_8gpu.pyth
└── 📂 baseline/
├── 📂 customs/{feature name}/settings/
│ ├── 📝 arg.py
│ ├── 📝 dataloader.py
│ ├── 📝 loss.py
│ ├── 📝 model.py
│ ├── 📝 optimizer.py
│ ├── 📝 scheduler.py
│ └── 📝 transform.py
├── 📂 utils
│ └── 📝 set_seed.py
└── 📝 train.py
- 피부 부위별 사진을 유분, 민감도, 주름, 색소침착 네 가지 기준에 대해 0~4점으로 라벨링
-
CLAHE
-
Loss Weight
-
Ordinal Classification
encoder 0점 [1, 0, 0, 0, 0] 1점 [1, 1, 0, 0, 0] 2점 [1, 1, 1, 0, 0] 3점 [1, 1, 1, 1, 0] 4점 [1, 1, 1, 1, 1] 각각의 클래스를 원핫인코딩 하는 대신, 각 클래스를 ordinal하게 인코딩하여 클래스에 순서를 부여
macro recall | f1 | |
---|---|---|
pigmentation | 74.172 | 0.7258 |
oil | 61.3 | 0.5024 |
sensitive | 77.967 | 0.7158 |
wrinkle | 61.83 | 0.5149 |
pip install -r requirements.txt
# MWML
python main/train.py --cfg {config 경로}
# baseline
python train.py --dir {feature 이름} --arg_n {arg 이름}