Deep Learning

Deep Learning - 메이크업 노메이크업 구별하기 Part2

electronicprogrammer 2020. 10. 6. 06:53

데이터 출처 : www.kaggle.com/petersunga/make-up-vs-no-make-up

 

Makeup or No Makeup

Can you determine which person is wearing makeup?

www.kaggle.com

ipynb file : github.com/sangHa0411/DataScience/blob/main/Clasify_Makeup.ipynb

 

sangHa0411/DataScience

Contribute to sangHa0411/DataScience development by creating an account on GitHub.

github.com

 

앞서서 Part1 에서 opencv 를 이용한 얼굴 검출 그리고 keras를 이용한 데이터 증식을 통해서 이미지 데이터 전처리를 마쳤습니다.

 

이제 Part2에서는 이를 이용해서 CNN 모델을 만들고 학습해보겠습니다.

 

이미지 데이터 전처한 결과는 아래와 같습니다.

훈련 데이터는 데이터 증식을 이용해서 기존 데이터의 10배가 된 상태이지만 테스트 데이터는 데이터 증식을 거치지 않은 그대로의 데이터 입니다.

클래스가 총 2개 화장을 하였는가 안했는가 이므로 binary classification 문제임을 알 수 있습니다.

화장을 한 사진은 1로 설정하고

화장을 하지 않은 사진은 0으로 설정하였습니다.

 

학습에 필요한 라이브러리를 불러옵니다.

먼저 Convolution Layer와 Pooling Layer를 순차적으로 4번 모델에 추가합니다.

 

그리고 이를 평탄화 즉 3차원으로 된 출력을 1차원으로 만듭니다.

여기서 Dense Layer를 이용해서 CNN 모델을 완성합니다.

모델의 전체적인 구조는 다음과 같습니다.

학습을 하면서 validation loss가 가장 작은 Case의 모델을 것으로 선정합니다.

 

학습을 이후에 테스트 데이터를 이용한 성능 측정 결과 정확도가 대략 67%가 된 것을 확인하였습니다.

 

Part2 에서는 제가 직접 CNN 모델을 만들어서 학습과 성능 측정을 진행하였는데 Part3에서는 이미 훈련이 된 CNN들을 이용해서 학습 및 성능 측정을 진행해보겠습니다.