[논문 리뷰] VGG-Face Model

JUNE·2021년 5월 18일
0

논문 정리

목록 보기
2/2

INTRODUCTION

Literature reivew

이전 방법들은 얼굴의 비율과 크기를 이용했지만, 이 방법은 사람이 아이에서 어른이 될 때 눈에 띄게 머리가 변하는 것을 이용하므로, 이 사이에 있는 나이에만 제한적으로 가능한 방법이다. 이후 AAM, AGESM, age manifold, 3D morphable model이 제안된다.
이전의 얼굴 이미지는 경직된 이미지만을 이용하였지만, 새로은 나이 판별에는 다양한 표정을 가지고 있는 이미지로 이용하여 디자인된다. 이는 나이 판별을 더 어렵게 만든다고 할 수 있다.

VGG-Face Model

이 논문에서 제안된 deep CNN의 구조에 대한 설명 파트이다. Deep CNN은 파라미터 수가 매우 많기 때문에, 적은 데이터를 사용하게 되면 과잉적합이 될 가능성이 매우 커진다. 따라서 과잉적합을 해결하기 위하여, 많은 데이터를 가진 사람의 얼굴을 미리 학습하여 사용.

Arucitecture

pretrained된 CNN은 이미지에서 나이 판별이 가능하게 하는 특징들을 추출하기 때문에, 가장 중요한 부분이 된다. pretrained된 CNN을 사용하게 되면, 적은 데이터를 가지고도 좋은 성능을 낼 수 있기때문에, 데이터가 부족한 딥러닝에서 중요한 부분.
LFW와 YFT database를 사용한 VGG-face model을 사용하여 진행하였다. VGG-face는 11개의 layer와 8개의 컨볼루션 층 + maxpooling층이 존재하고 3개의 FC 층이 있다. 각 FC 층은 dropout과 rectification을 사용한다. 마지막 VGG-Face model의 output layer의 output size는 8이다.

Training

input size는 256 by 256 pixel로 rescaled, 224 by 224 pixel로 randomly crop. 스토케스틱 경사하강법 이용하고 배치 사이즈는 256. momentum은 0.9, dropout은 0.6으로 설정. 처음에 학습률은 0.1로 설정한 후, 10의 간격 만큼 기준을 잡고 정확도가 오르지 않으면 학습률을 감소한다. FC 층의 가중치는 가우시안 분포를 따른다. 컨볼루션층의 파라미터들은 미리 학습한 face recognition task의 컨볼루션층 파라미터를 사용하며, 변하지 않는다.
스토케스틱 경사 하강법을 통하여 softmax-log-loss를 최소화 한다.

Prediction

test image도 train과 마찬가지로 동일한 처리를 해준다. 하지만 이때, crop에서 다른 부분이 있는데, 3 이미지 중 첫번째 이미지는 센터를 포함한 부분을 crop한다. 이후 두번째와 세번째 이미지는 각각 왼쪽 아래와 오른쪽 위를 포함한 부분을 crop한다.
학습된 CNN을 사용하여, 각 이미지의 softmax output을 얻고, 이를 평균한 값을 최종 output으로 얻는다. 이 방법은 이미지의 퀄리티에 의해 영향 받는 것을 최소화 한다.

Experimental results

Adience benchmark

Adience benchmark 최신의 나이 판별 databese이다. 이 database는 다양한 표정이 있는 이미지가 있고, 남자 9411개 데이터, 여자 8192개 데이터가 존재한다. 또한 8개의 나이 라벨로 구성되어 있다.
이 database를 사용하여 진행한 결과, 59.9%의 정확률이 나왔고, 인접한 나이 라벨의 왼쪽 또는 오른쪽의 라벨을 없는 라벨이라고 판단하고 정확률을 구했을 때에는 90.57%의 정확률이 나왔다.
0~2세 라벨의 정확도가 가장 높게 나왔고, 38~43세 라벨의 정확도가 8.88%로 가장 낮게 나온 것을 알 수 있다.

GoogLeNet CNN

GoogLeNet model을 이용하여 진행한 결과, 45.07%의 정확률이 나왔고, 이를 통하여 VGG-Face Model의 성능 향상을 알 수 있다.

Opinion

이 논문을 읽고 우선 든 생각은 수업시간에 배운 pretrain이 여기서 쓰이네?였다 확실히 얼굴에 대한 특징 학습을 익힌 모델을 사용하여 나이 판별을 하면, 이미 얼굴에 대한 특징을 잘 추출하기 때문에 이를 통하여 나이를 판단하기 더 수월하구나 라는 생각이 들었다.
어린아이와 어른의 구분은 쉬워 비교적 나이가 어린 라벨의 정확도는 높게 나왔지만, 25~32세와 38-43세 이 부분과 15-20세~25-32세 이 구간이 나이를 판단하기가 가장 어려운 것 같다. 생각해보면 사람이 봐도 이 나이대의 사람들은 나이를 판별하기 쉽지 않은데, 이 부분을 어떻게 해결해 나가는지가 가장 관건인 것 같다.

0개의 댓글