Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2018 CVPR] Look at Boundary: A Boundary-Aware Face Alignment Algorithm #172

Open
Jasonlee1995 opened this issue Nov 20, 2023 · 0 comments
Labels
Data Related with data Discriminative Discriminative Modeling Vision Related with Computer Vision tasks

Comments

@Jasonlee1995
Copy link
Owner

Jasonlee1995 commented Nov 20, 2023

image

Human face boundary line을 이용하는 boundary-aware face alignment algorithm인 LAB를 제안한 논문
(해당 논문에서는 facial landmark detection을 face alignment라고 표현)

저자들은 3가지 질문들과 그에 대한 답을 위주로 논문을 전개

  1. Why using boundary?
    저자들은 human face는 다양한 pose, occlusion에서도 ambiguity가 없기에, unique facial structure을 사용하면 facial landmark localization에 도움이 될 것이라고 생각했음
    따라서, human face의 geometric structure를 represent할 수 있는 facial boundary를 이용
  2. How to use boundary?
    2 step으로 face alignment task 수행
    1st step (boundary heatmap estimator) : estimate facial boundary heatmaps
    2nd step (bounary-aware landmarks regressor) : derive facial landmarks using boundaries
  3. What is the relationship between boundary estimation and landmarks localization?
    boundary estimation 성능이 좋아지면 landmark localization 성능도 좋아짐

또한 evaluation을 unify하기 위해 new large dataset Wider Facial Landmarks in-the-wild (WDLW)을 제안함

중요하다고 생각되는 부분만 간단히 요약

1. Boundary-Aware Face Alignment

image image

Facial boundary는 head pose, dataset에 무관하게 잘 정의되는 detailed, well-defined geometric structure representation이며, landmarks와도 밀접한 관계가 있음
(landmarks는 boundary lines에 위치하기에)

따라서, facial boundary를 예측하고 이를 이용하여 landmark regression을 하는 순서로 모델을 설계
(facial boundary estimation → landmark regression)

  • boundary heatmap estimator : facial boundary estimation
  • boundary effectiveness discriminator : boundary heatmap estimator의 output quality를 높이기 위한 adversarial learning에 사용되는 모델
  • boundary-aware landmarks regressor : estimated facial boundary를 이용하여 landmark regression

1.1. Data preprocessing

image image

Landmark로부터 boundary heatmap을 생성하기 위한 전처리 과정은 다음과 같음

  1. 각 부위에 해당하는 ground truth landmark annotations를 interpolation하여, dense boundary line을 생성
  2. boundary line에 해당하는 점은 1, 나머지 점들은 0을 가지는 binary boundary map을 생성
  3. binary boundary map에 기반하여 distance transform을 적용해서 distance map을 생성
  4. Gaussian expression with std $\sigma$을 이용하여 distance map을 boundary heatmap으로 바꿔줌
    (threshold : $3\sigma$)

전처리 과정의 detail이 부족해서, 만약 재현한다면 어떻게 해야할지 좀 고민해봐야할듯
(코, 왼쪽 눈과 같이 각 부위를 어떻게 아는지 + 어떻게 interpolate하는지)

1.2. Boundary heatmap estimator

image image
  • base network : stacked hourglass network
  • loss : MSE between generated boundary heatmaps and ground-truth boundary heatmaps
  • message passing : occlusion이 있는 경우, generated heatmaps가 noisy하다는 문제를 극복하기 위해 사용
    intra-level message passing : different boundary heatmaps간의 정보를 공유
    (visible boundary에서의 정보를 occluded boundary로 전달)
    inter-level message passing : lower stack에서의 message를 higher stack로 전달
    (다양한 depth의 stack에서도 boundary heatmap의 quality를 유지하기 위해 사용)

1.3. Boundary effectiveness discriminator

Boundary heatmap estimator를 MSE loss로 학습하다보니, blurry하고 implausible한 prediction이 나오는 경우가 종종 있음

이를 극복하기 위해, GAN에서의 adversarial learning을 적용

즉, boundary effectiveness discriminator는 prediction과 ground truth를 잘 구분하도록 학습하고, boundary heatmap estimator는 boundary effectiveness discriminator를 속일 수 있을 정도의 좋은 quality를 내도록 학습

1.4. Boundary-aware landmarks regressor

Boundary heatmap의 rich information을 fully utilize하기 위해, multi-stage boundary heatmap fusion을 사용

1.4.1. Input image fusion

image

Heatmap을 input image에 곱한 masked image와 original input image를 concat해서 input으로 넣어줌
(여기서 $M_T$에서의 T가 뭔지 안나와있는데, 왼쪽 눈썹, 코 같이 각 부위별로 넣어주는건지? 싶음)

Masked image는 background가 없어서 모델이 boundary 주변의 detailed texture에 집중할 수 있도록 해줌

Original input image가 가지고 있는 other valuable information을 유지하기 위해 concat해서 넣어줌

1.4.2. Feature map fusion

image image

모델 중간중간마다 feature map에 boundary heatmap 정보를 fuse해주는 feature map fusion layer (FMF)를 넣어줌

참고로 transform function T는 boundary heatmap M의 dimension을 feature map size에 맞춰주기 위해 사용되며, hourglass structure subnet 구조를 사용함

2. Experiments

Implementation details
all training images are cropped and resized to 256 × 256 according to provided bounding boxes
all testing images are cropped and resized according to provided bounding boxes without any spatial transformation

image image

inter-pupil normalizing factor : normalize based on eye-centre-distance
inter-ocular normalizing factor : normalize based on outer-eye-corner distance
LAB + Oracle : ground truth boundary map을 이용

LAB의 성능이 좋으며, LAB + Oracle의 성능은 더 좋음

→ boundary information을 사용하는 것이 성능에 매우 중요하며, boundary가 정확할수록 성능이 좋아짐

image

LAB은 occlusion, pose, shape variations에 대해 robust함

이외에도 모델의 설계 관련 ablation study가 존재하는데, 이는 논문 참고
(ablation on boundary information, boundary information fusion, message passing, adversarial learning)

@Jasonlee1995 Jasonlee1995 added Data Related with data Vision Related with Computer Vision tasks Discriminative Discriminative Modeling labels Nov 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Data Related with data Discriminative Discriminative Modeling Vision Related with Computer Vision tasks
Projects
None yet
Development

No branches or pull requests

1 participant