iMTE

Deep Learning for Emotion Recognition on Small Datasets Using Transfer Learning 본문

Deep learning

Deep Learning for Emotion Recognition on Small Datasets Using Transfer Learning

Wonju Seo 2018. 5. 27. 21:38

Ng, Hong-Wei, et al. "Deep learning for emotion recognition on small datasets using transfer learning." Proceedings of the 2015 ACM on international conference on multimodal interaction. ACM, 2015.


Introduction


얼굴 표정 분석(감정 추정 또는 얼굴의 감정 분석)은 지난 10년 동안 Computer Vision에서 주목을 받았음. 기존 기술의 대부분은 7가지의 기본 표현을 분류하는데 중점을 두었음. (행복, 놀람, 두려움, 분노, 슬픔, 혐오감) Emotion Recognition in the Wild (EmotiW) contest과 Static Facial Expression Recognition in the Wild (SFEW) sub-challenge에서는 7가지 기본 표현의 categorical approach를 따름.


SFEW는 어려운점이 두개가 있음.

1. 고르지 않는 조명, 저해상도, 폐색, 비정면 포즈 및 모션 blur를 포함한 이미지 상태로 인해서 실제와 가까움.

2. Dataset이 매우 작아서 overfitting할 수 있음.


이 논문에서는 fine-tuning방법을 사용해서 deep CNN을 transfer learning하는 것임. ImageNet Dataset을 기반으로 하는 deep CNN을 첫번째로, FIR-2013 Facial data set을 사용하여 첫번째 fine-tuning을 적용하고, EmotiW의 training data를 기반으로 2단계 미세조정을 수행하여 network의 weights를 수정함.


Related Work


CNN을 사용하는 방법은 데이터에서 유용한 feature를 추출 할 수 있어 최근에 매우 각광받는 기술이 됨. 감정을 표현하는 것은 미묘한 차이로 인해서 판단하는게 매우 어려움. 좋은 성능을 보여주기 위해서는 fine-tuning되어서 최적화되어야함. 구체적으로는 이전에 학습된 CNN 가중치를 기반으로 transfer learning하는 것이 small Dataset으로 직접 학습시키는 것보다 더 나은 결과를 보여줌.



Experimental Setup

1. Data Preparation


EmotiW dataset 에서 모든 얼굴들은 OpenCV의 face detector(Viola & Jones)를 사용해서 추출됨.

Intraface libary는 49 facial points를 검출하기 위해서 사용하는데 적합한 정도가 0.3 미만이면 얼굴이 아니라고 봄. 그리고 눈 주위의 6개 point들의 평균을 사용하여 이미지를 회전 및 크기에 맞게 정렬함.


Face bounding box를 정의하는게 중요함.

논문에서는 ratio of the eye-to-eye distance (e2e)로 각 boundary를 정해줌. side: 0.62 x e2e, upper : 0.9 x e2e, lower : 1.35 x e2e


이렇게 정해주는 이유!

1. DNN은 입력으로 square형태의 이미지를 요구하는데, 만약 이런 조건을 만족하지 않으면 이미지가 stretch되어서 aspect ratio에 영향을 줌.

2. 얼굴의 이미지에 emotion에 대한 정보가 많으므로 이 정보를 사용해야함.

3. 사전 훈련에 사용된 FER-2013 dataset에서의 cropping방법과 유사해서 두 데이터 set의 일관성을 높여줌.

4. all EmotiW 이미지들은 gray-scale로 변경되어야 하고, 256x256 size로 크기가 재설정 되어야함. min-max intensity normalization방법을 사용해서 0~255 사이 값으로 normalization 해줌.



논문에서 제시한 cropping 방법과 organizer가 제공한 cropping 비교 그림.


FER-2013 데이터의 크기가 48x48인데 이것을 256x256크기로 re-size하고 난 그림과 이 논문에서 제시한 cropping 방법으로 EmotiW dataset에서 얼굴 사진을 잘라낸 결과. 거의 비슷한 형태라는 것을 알 수 있음.



2. Architectures


- The ILSVRC-2012 winning entry (AlexNet)

- The CNN-M-2048 model from VGG-CNN-M-2048


3. Dataset and Training


Overfitting 없이 small dataset을 사용해서 CNN과 같은 복잡한 모델을 학습시키는 것은 어려움.

이 문제를 해결하기 위해서, 대량의 이미지 dataset으로 학습된 네트워크를 사용해서 small dataset으로 supervised fine-tuning을 사용할 수 있음. ILSVRC-2012 dataset으로 학습된 CNN에 FER-2013 face expression dataset을 사용하여 세부조정을 하였음.


FER-2013 dataset은 3 part로 구성됨.

a. Original Training Data (28709 images)

b. Public Test Data (3589 images)

c. Final Test Data (3589 images)


이 논문에서는 FER-2013 dataset을 사용해서 3개의 dataset을 만들었음.

1. FER28. -> Original Training Data (for training) and Public Test Data (for validating fine-tuned models)

2. FER32. -> Original Training Data +  Public Test Data (for training) and the Final Test Data (for validating fine-tuned models)

3. FER32+EmotiW -> FER32 데이터와 EmotiW의 training data (for training) 그리고 EmotiW의 validation data (for validating fine-tuned models)


CNN 학습 과정

Stochastic Gradient Descent with Hyperparameter (momentum = 0.9, weight decay = 0.0005, initial learning rate = 0.001)

이 논문에서는 small dataset으로 fine-tuning을 시키기 때문에, initial learning rate를 주로 사용되는 0.01이 아닌 0.0001을 사용해서 pre-trained 된 weight을 크게 바꾸지 않도록 하였음. 저자는 이런 방법이 overfitting을 방지한다고 소개하고 있음. learning rate은 10 epoch 마다 10배 씩 감소하도록 설계함.


Results and Discussion

다양한 dataset의 조합으로 1st fine-tune한다음, 2nd fine-tune했을 때의 결과

1. Effects on Supervised Fine-tuning


FER-2013 dataset를 사용하여 CNN 모델을 fine-tuning하면 일반적으로 EmotiW를 그대로 사용하는 방법보다 정확도가 10% 향상되었음 (Submission 2는 7%)

EmotiW training data로 CNN 모델을 fine-tuning하면 정확도는 37.8%로 매우 나쁜 결과를 보여줌. 이는 FER-2013 dataset을 사용하여 미세조정하는 것이 매우 유리함을 보여주고, small dataset을 사용하는 fine-tuning의 한계를 보여줌.

FER-2013 와 EmotiW dataset (Submission 9)에서 결합된 데이터를 사용하여 CNN을 학습할 경우에 이 두 dataset를 나누는 경우보다 성능이 낮아졌음 (Submission 8).

이는 상대적으로 작은 EmotiW training dataset이 FER-2013와 같이 상당히 큰 dataset와 함께 사용하는 경우에 CNN의 성능을 향상시키는데 미미한 영향을 미침을 나타냄.


2. Effects of More Labeled Data


EmotiW dataset이 없어도 FER-2013 dataset을 사용한 경우에 괜찮은 결과들이 나타남. FER-2013 dataset은 정렬되지 않았을 뿐만 아니라 크기가 EmotiW dataset에 비해 훨씬 작음. 하지만 앞에서 언급한 것 처럼 FER-2013 dataset만 사용한 경우에가 EmotiW dataset만 사용한 경우보다 더 좋은 성능을 보여줌. 따라서, data의 quality보다는 data의 양이 CNN 기반의 face expression classifier의 성능을 향상시키는데 매우 중요하다는 것을 의미함.


많은 저해상도 dataset로 fine-tuning하는 것이 전반적인 성능에 긍정적인 영향을 미친다는 것은 신경과학적인 발결과 일치함. (왜 레퍼런스는..?) 결과적으로 FEM-2013 dataset은 더 낮은 frequency이지만 EmotiW dataset와 같이 시각적 frequency가 높은 data에 대한 일반화를 허용하는 방식으로 network weights들이 조정되는 것으로 보임.

-> 사실 이 부분이 잘 이해는 안되지만, 많은 저화질 이미지가 적은 고화질 이미지에 비해서 generation에는 더 적합한 것으로 보임.


3. Difficulties With Certain Expressions


'혐오감', '두려움', '놀라움', '슬픔' 과 같은 class들은 분류하는데에 문제가 있음.

1. 이 데이터가 매우 적어서 CNN을 학습시키기가 어려움.

2. 이러한 표현들이 매우 미요한 차이가 있어 올바른 labeling이 어려움.


개발된 모델의 대부분이 '혐오감'으로 표시된 sample을 올바르게 예측을 하지 못함.

1. Data imbalance, '혐오감' 데이터는 EmotiW training data에서 7%, FER28, FER32 training data에서는 2%로 포함되어 있음. CNN을 fine-tuning할때에 더 많은 class를 학습을 했을 가능성이 많음.

2. '혐오감'이라는 단어 자체가 매우 미묘함. 슬프고, 공포, 중립과 같은 class와 별로 차이가 없는 것으로 인식됨.


위의 두 이유로 인해서 감정을 정확하게 예측하는 것은 매우 어려움.



Conclusions


- Auxiliary face expression dataset을 사용해 fine-tuning된 CNN을 사용한 경우에 EmotiW dataset 분류의 성능이 향상되었음 (최대 16%).

- EmotiW dataset을 사용하지 않더라도 많은 dataset만으로도 기존보다 훨씬 나은 결과를 보여줌.

- nuance가 있는 미묘한 감정에 대해서는 labeling을 하는 것이 매우 어려우며 이런 문제가 어떻게 모델의 성능에 영향을 미치는지 보여줌.












Comments