논문 리뷰

[논문 리뷰] How far are we from solving the 2D & 3D Face Alignment problem?

망나 2021. 3. 30. 18:03

paper / code

 

Face Alignment란, 이미지상의 사람의 얼굴에서 특징(feature)을 추출하는 기술을 뜻 합니다.

 

그림 1. 얼굴 특징 추출

 

 

수 많은 사진들을 대상으로 그림 1과 같이 정확한 얼굴의 정면 데이터를 얻기 위해서는 크게 다음 3가지 단계가 필요합니다.

 

1. 이미지에서 얼굴 영역을 찾는 Face Detection (얼굴 검출)

2. 찾은 얼굴에서 눈, 코, 입 등의 특징을 찾는 Face Alignment (얼굴 정렬)

3. 특징점을 이용해 얼굴 영역을 동일한 형태와 크기로 변경하는 Normalization (정규화)

 

 

소개

본 논문은 위 단계 중 2단계인 Face Alignment에 대한 논문입니다. 저자는 deep learning을 활용한 2D face alignment 모델을 제안하고 성능을 평가하여 현재의 기술력이 어느정도인지를 분석합니다. 추가적으로 2D 이미지에서 뽑은 특징들을 활용하여 3D face alignment가 가능한 모델까지 소개합니다. 

 

주요 기여사항

- landmark localization 모델과 residual block 구조를 활용하는 face alignment 모델을 제안합니다.

- 2D landmark를 활용하여 3D face alignment 데이터셋(LS3D-W)을 생성합니다.

- face alignment 모델의 성능에 영향을 주는 다양한 변수들에 대해서 성능을 검증합니다.

 

 

모델

Face Alignment Network(FAN)

논문에서 제안하는 얼굴 정렬 모델은 위 그림과 같습니다. 기본적으로 human pose estimation에서 사용되는 HourGlass (HG) 네트워크를 사용하고 총 4개의 네트워크를 쌓아서 사용합니다. 또한 기본 bootleneck block이 아닌 hierarchical, parallel and multi-scale block을 사용하는데, 이 블록 구조에 대한 자세한 내용이 궁금하시면 해당 논문을 참고하시면 될 것 같습니다. 위 모델을 활용하여 "2D-FAN", "3D-FAN"을 각각 300W-LP-2D, 300W-LP-3D을 활용하여 학습을 시켰다고 합니다.

 

아래는 2D landmark를 활용해서 3D landmark를 얻는 모델 "2D-to-3D-FAN"의 구조입니다.

2D-to-3D-FAN

위 모델을 2D landmark와 RGB 이미지를 입력으로 받아 2D projection된 3D landmark를 출력하는 모델입니다. 이 모델을 활용하여 LS3D-W 데이터셋을 생성합니다.

 

 

학습

- total 40 epochs, 10 epochs \(10^{-4}\), 15 epochs \(10^{-5}\), 15 epochs \(10^{-6}\)

- augmentation : flipping, rotation (-50 ~ 50), color jittering, scale noise (0.8 ~ 1.2) and random occlusion

- RMSProp

 

 

결과

Fittings with the highest error from 300-VW (NME 6.8-7%). Red: ground truth. White: our predictions
Fittings with the highest error from 300-W test set (first row) and Menpo (second row) (NME 6.5-7%)

위 결과를 보면 빨간색이 정답이고 흰색이 모델이 예측한 얼굴입니다. 논문에서 주장하고 그림을 보면 알 수 있듯이 모델이 예측한 부분이 더 정확하다는 것을 볼 수 있습니다.

 

 

Fittings with the highest error from AFLW2000- 3D (NME 7-8%)

3D landmark 또한 정답보다 모델의 예측값이 더 정확한 것을 확인할 수 있습니다.

 

 

추가 연구

Performance across pose

60-90과 같은 포즈에서는 3D-FAN의 성능이 조금 떨어지는 것을 확인할 수 있습니다. 저자는 이 문제가 합성 데이터이기 때문에 발생한다고 합니다.

"This data was produced by warping frontal images (i.e. the ones of 300-W) to very large poses which causes face distortion especially for the face region close to the ears"

즉, 정면 얼굴 이미지를 다른 포즈로 뒤틀어 만든 이미지이기 때문에 왜곡이 발생하고 이 때문에 성능이 떨어지는 것이지 포즈에 따라 모델의 성능이 영향을 받는 것은 아니라고 합니다.

 

 

Performance across resolution

"Note that we did not retrain 3D-FAN to particularly work for such low resolutions. We observe a significant performance drop for all poses only when the face size is as low as 30 pixels."

저자는 30픽셀 이하의 해상도에서만 모델의 성능이 급격히 하락하며 따라서 해상도는 모델의 성능에 큰 영향을 주지 않는다고 합니다.

 

 

Performance across noisy initializations

"We observe only small performance decrease for noise level equal to 30% which is greater than the level of noise that the network was trained with."

저자는 모델이 훈련된 것보다 30% 이상의 노이즈가 있을때 성능이 떨어지는 것을 보고 모델의 성능에는 노이즈가 큰 영향을 주지 않는다고 합니다.

 

 

Performance across different network sizes

"There is a moderate performance drop vs the number of parameters of 3D-FAN. We believe that this is an interesting direction for future work"

위 표는 네트워크 크기에 따른 모델의 성능입니다. 저자는 네트워크의 크기가 모델의 성능에 어느정도 영향을 준다고 주장합니다.

 

 

 

참조

- 그림 1. Examples of 68 points defining facial features on two frontal images

- https://tech.kakaoenterprise.com/63 [카카오엔터프라이즈 기술블로그 Tech&(테크앤)]