본문 바로가기

Machine Learning Tasks/Face Recognition

Face Recognition - SphereFace (2)

반응형

지난 포스트

[Machine Learning/기타] - Face Recognition - SphereFace (1)


Experiments

Experimental settings

얼굴 인식의 테스트는 입력 얼굴 이미지가 바로 모델에 들어가지는 않습니다. 입력 이미지 상에서 1) 얼굴을 검출해야하며 (face detection), 2) 얼굴에서 feature 를 검출해서 정면으로 돌리는 과정이 (face alignment) 얼굴 인식 모델에 들어가기 전에 필수적인 전처리로 수행되어야 합니다. SphereFace 과 같은 얼굴 인식 알고리즘은 인식 성능 자체를 테스트하기 때문에 face alignment 부분을 보통 MTCNN 으로 대체하고 RGB 이미지를 정규화해서 사용합니다.

SphereFace 의 훈련 / 테스트 전반적인 과정은 Figure 4와 같습니다. Table 2와 같이 여러 개의 convolution 층으로 구성된 모델에 대해서 (밑의 Table 2) 마지막 fully-connected layer 결과에 A-Softmax loss 를 통해 학습합니다. 학습 데이터로는 10575 명의 사람에 대한 0.49M 개의 데이터로 구성된 CASIA-WebFace 데이터셋을 사용합니다. 얼굴 인식 훈련에 쓰이는 데이터셋은 일반적으로 데이터량이 굉장히 크기 때문에 배치 사이즈를 크게 잡고 여러 개의 GPU를 사용하며, 초기 learning rate 를 굉장히 크게 잡고 이를 서서히 줄여나가는 기법을 주로 사용합니다.

얼굴 인식의 테스트는 지난 포스트에서 언급했듯이 open-set 프로토콜로서 테스트 데이터의 클래스는 훈련 데이터에 포함되지 않습니다. 따라서 FC1 layer 를 떼어낸 이후의 마지막 layer 의 출력을 얼굴 이미지의 feature 로 사용하며, 데이터 augmentation 을 위해 horizontal flipping 이 사용되었으므로 원래 이미지의 feature 와 horizontal flipped 된 이미지의 feature 를 이어 붙인 것을 최종적인 얼굴 feature 로서 사용하게 됩니다.

테스트 시에는 feature 끼리의 각도 거리로서 (angular metric) face identification / verification 을 수행합니다. Face identification 경우에는 테스트 얼굴들을 모아놓은 갤러리의 feature 들을 미리 뽑아놓고 테스트 입력과 cosine similarity 가 가장 높은 것을 뽑게 되고 face verification 경우에는 두 feature 간의 cosine distance 를 계산하여 특정 임계치에 따라 True/False 를 구분합니다. 

특히, A-Softmax loss 의 원활한 훈련을 위해 annealing 최적화 기법을 도입합니다. Annealing 최적화 기법이란 지난 포스트에서 보았던 최종적인 A-Softmax loss 함수 Equation 1에서 라벨 $y_i$의 logit (exponential의 power term) $f_{y_i}$을 Equation 2로 대체하고 $\lambda$를 훈련 스텝에 따라 점점 줄이는 기법으로 매우 큰 $\lambda$는 $\Vert x_i\Vert \psi(\theta_{y_i})$ 부분을 거의 무시하므로 modified softmax loss 와 비슷하고 $\lambda$가 작아질수록 본래의 Equation 1과 비슷해집니다. Equation 1과 같아지려면 $\lambda=0$ 이어야 하나 $\lambda=5$ 정도만 되어도 충분하다고 합니다.

Equation 1
Equation 2

이러한 류의 방법들은 처음부터 어려운 목적 함수를 사용해 모델을 훈련하면 훈련 과정이 느리거나 잘 안될 가능성이 존재하기 때문입니다. 처음부터 Equation 1을 이용해 직접적으로 훈련하게 되면 cosine 값이 주기성을 가지고 $\psi$ 함수는 piecewise 형태로 이루어져 있어 훈련이 어렵습니다. 따라서 $\lambda$를 통해 쉬운 목적 함수로부터 본래의 어려운 목적 함수로 서서히 변환시키면서 모델이 안정적으로 훈련되게 됩니다.

Exploratory experiments

먼저 angular margin $m$에 따른 효과를 살펴봅니다. CASIA-WebFace 데이터로부터 샘플이 가장 많은 6명의 데이터에 대해 훈련시켰을 때 Figure 6와 같이 $m$이 클수록 데이터 feature 가 hypersphere 상에서 더 잘 구분되고 이 현상은 positive / negative 데이터 쌍의 angle 분포를 보았을 때도 명확합니다.

 

Experiments of LFW and YTF

위의 CASIA-WebFace 데이터셋은 주로 얼굴 인식 훈련에 사용되는 데이터셋이라면, LFW와 YTF 는 얼굴 인식 성능평가에 사용되는 데이터셋입니다. LFW 데이터셋은 5749 명, 13233 개의 얼굴 이미지로 구성되어 있고 YTF 데이터셋은 1595 명, 3424개의 비디오로 구성된 데이터셋입니다. 이 데이터셋들은 포즈, 표정, 조명에 따른 다양한 얼굴 데이터를 담고 있기 때문에 LFW 에서 6000 얼굴 쌍, YTF 에서 5000 비디오 쌍을 구성해 face verification 테스트에 주로 사용합니다.

Table 4를 보면 SpherFace 가 다른 baseline 에 비해 성능이 더 높은 것을 알 수 있습니다. 특히, 데이터량이 상대적으로 적고 라벨이 잘못된 경우도 있는 CASIA-WebFace 데이터셋만을 사용하여 훈련한 결과라 더 놀랍습니다. SphereFace 보다 성능이 더 좋은 FaceNET 의 경우에는 200M 개의 Google FaceNet 데이터셋을 사용하였습니다.

또한, LFW, YTF 데이터셋에 대해서도 $m$에 따른 효과를 실험했을 때 (64-layer CNN 사용) $m$이 클수록 정확도가 높아지는 것을 볼 수 있고 (Table 3) Table 2의 CNN 층수에 따른 성능을 평가해보면 모델이 깊어질수록 성능이 더 좋아지며 일반적인 softmax 에 비해 A-Softmax 가 그 효과를 더 받는 것을 확인할 수 있습니다. (Figure 6)

 

Experiments on MegaFace challenge

Megaface 데이터셋은 얼굴 인식 알고리즘의 대표적인 성능평가 벤치마크 데이터셋으로 갤러리셋과 프로브셋으로 구성되어 있습니다. 갤러리셋은 690K 사람에 대한 1M 개의 얼굴 이미지로 구성되어 있고 프로브셋은 Facescrub / FGNet 데이터셋으로 구성되어 있습니다. 훈련 데이터 수에 따라 개수가 0.5M 미만이면 small dataset protocol, 이상이면 large dataset protocol 하에서 face identification / verification 테스트를 수행합니다. 특히 갤러리셋에는 사람과 비슷하지만 실제로 사람이 아닌 데이터 (distractor) 또한 포함되어 있어 distractor 가 얼마나 포함되었는지에 따른 성능 측정 또한 가능합니다.

Figure 7의 CMC (Cumulative Matching Characteristic) 결과는 face identification, ROC curve 결과는 face verification 에 대한 결과입니다. 파란색 선의 SphereFace 3-patch 는 하나의 얼굴 이미지에서 뽑은 3개의 patch 에 대한 feature 를 이어붙인 feature 를 사용한 결과로 다른 방법에 비해 성능이 제일 좋은 것을 알 수 있습니다. (Figure 13)

Table 5는 최종적인 수치 결과입니다. Small dataset 프로토콜임에도 불구하고 간단한 CNN 구조만으로 large dataset 에 대해 훈련시킨 모델에 비해서 성능이 더 좋은 것을 볼 수 있습니다. 

 

참조

반응형

'Machine Learning Tasks > Face Recognition' 카테고리의 다른 글

Face Recognition - ArcFace (2)  (0) 2021.05.25
Face Recognition - ArcFace (1)  (0) 2021.05.23
Face Recognition - CosFace (2)  (0) 2021.05.23
Face Recognition - CosFace (1)  (0) 2021.05.23
Face Recognition - SphereFace (1)  (0) 2021.05.21