마스크 쓴 이미지를 토대로 성별/나이대/마스크착용여부 검출
프로젝트 모델의 성능향상
Baseline Code 분석 및 개선
Data Split
Train/validation 데이터를 나눌 때, 인물+클래스 별로 일정 비율로 나누도록 수정
Data Transform
기존 코드 – train/val 데이터셋에 transform 동일하게 적용
수정 코드 – train/val 데이터셋에 각각 다른 transform 적용
코드 버그 수정
Inference 한 데이터 시각화 추가
학습된 모델을 통해 inference한 결과물을 시각화하는 코드를 추가함
Eval 데이터 라벨 결과 확인 및 분석
Ratio로 CenterCrop 하는 코드 추가 (MyCenterCrop)
기존 PyTorch의 CenterCrop은 (height, width)로 crop함 -> 이미지별로 다른 사이즈를 고려할 수 없음
추가한 코드는 이미지의 사이즈의 (height ratio, width ratio)를 인자로 받아서 해당 이미지의 특정 비율로 CenterCrop 함
이론을 실무에 적용
적합한 Data Split을 통해 균등한 데이터 분포 고려
CrossEntropy Loss/Focal Loss/Smooting Label loss 적용
Focal Loss를 통해 imbalanced한 데이터 문제 해결
다양한 Data Augmentation 적용
해당 학습에 좋은 영향을 미칠만한 Augmentation 적용
MyCenterCrop, Randomly ColorJitter, RandomHorizontalFlip, RandomPerspective, Normalize, RandomGrayscale
Oversampling기법
Minor 이미지에 대하여 기존 이미지에 각종 transform을 적용하고 새롭게 데이터셋에 추가함으로써, Minor data generation 함
Transfer Learning 적용
ResNet을 baseline으로, 다양한 SOTA 모델 쓰고 비교 (MetaFormer, Rexnet, EfficientNet, Convnext_nano_ols)
Pretrained/ Not pretrained / Patially Pretrained 모델 비교
weight freezing을 통한 학습양 조절
역량이 부족하고 체계적으로 진행하지 못 해서 여러가지 시도 해보고 싶은 것들을 해보지 못해 아쉬웠지만 다양한 문제해결을 통해 많은 것을 깨달았고 다음에 더 발전된 모습으로 프로젝트에 임할 수 있을 것 같다.