메뉴 바로가기 본문 바로가기

Face parsing 알고리즘과 데이터셋 구축에 관하여

  • Gihun Lee
  • 2022.10.26

 

Face parsing 알고리즘과 데이터셋 구축에 관하여 

 

들어가며

 스마트폰의 카메라 혹은 사진 편집 어플리케이션을 사용해보신 적이 있으신가요? 몇몇 어플리케이션에서는 촬영한 얼굴의 특정 부위를 보정(눈 크기 조절, 피부 밝기 조절)하거나  맨 얼굴에 화장을 해주는 흥미로운 기능들이 존재합니다.

[그림 1] 얼굴 보정 기능이 있는 카메라 어플리케이션 - YouCam Makeup

 

어플리케이션이 이러한 기능을 제공하기 위해서는 얼굴 이미지 내 눈, 코, 입, 피부 등을 각각 분류하는 알고리즘이 필요합니다. 그래야만 사용자가 원하는 부분만을 골라 수정할 수 있게 되겠죠. 이러한 알고리즘을 Face parsing이라고 합니다. Face parsing 알고리즘을 통해 위에서 언급한 얼굴 보정 등의 기능 뿐 아니라 원하는 헤어스타일을 미리 적용해보고, 악세서리를 착용해보는 등의 서비스를 구현해 볼 수 있기 때문에 Face parsing 기술은 뷰티, 패션 등 다양한 분야에서 활용되고 있습니다.

 

본문에서는 Face parsing 기술은 무엇이며 어떤 메커니즘으로 동작하는지, 구현 상의 어려움은 무엇인지 알아보겠습니다. 

Face parsing 이란?

Face parsing은 인공신경망을 이용하여 아래 그림과 같이 픽셀 단위로 얼굴의 세부 부분(눈,코,입 등)을 나누는 computer vision task 입니다.

 

[그림 3]  Face parsing 예시

 

얼굴의 특정 부분을 픽셀 단위로 나누어 해당 부위에 적절한 라벨링 작업을 진행하게 되면 정보가 풍부한 데이터가 생성이 됩니다. 이렇게 생성된 데이터를 이용하여 AI를 학습시키면 그림 1의 예시와 같은 다양한 응용에 적용할 수 있게 됩니다.

 

Face parsing 메커니즘

그렇다면 Face parsing 딥러닝 모델은 어떤 방식으로 얼굴 내 각 부위를 찾아내는 것일까요?  Face parsing 데이터셋인 LaPa(Landmark guided face Parsing) 구축에 사용된 Face parsing 딥러닝 모델을 예시로 Face parsing 메커니즘에 대해 알아보도록 하겠습니다. 

 

해당 딥러닝 모델은 크게 DLA (Dense Landmark Annotation) 과 PPA (Pixel-level Parsing Annotation) 모듈로 구성되어 있습니다.

DLA

DLA 모듈의 목적은 얼굴 이미지에 매우 밀집한 랜드마크를 효율적으로 주석 처리 하는 것입니다. 랜드마크란 아래 그림에서 얼굴 이미지 주요 윤곽을 따라 점을 찍어 나타낸 것을 의미 합니다. input으로 얼굴 이미지을 입력 받아 106개의 랜드마크가 주석 처리 된 얼굴 이미지를 반환합니다. DLA 모듈은 AI 신경망으로 hourglass network를 4,000장의 직접 주석처리한 이미지로 학습 되었습니다.

 

[그림 5] LaPa dataset


 

PPA

input으로 DLA 모듈에서 나온 랜드마크 이미지를 입력 받아 11개의 카테고리가 픽셀 단위 라벨된 이미지를 반환합니다. PPA 모듈은 3가지 순서로 작동합니다.

[그림 6] PPA 모듈

 

1. Coarse-to-fine segmentation for hair and face skin

랜드마크 얼굴 이미지에는 헤어라인과 이마 부분이 존재하지 않습니다. 하지만 헤어와 피부는 그림 1과 같은 적용 사례에서 매우 중요한 역할을 합니다.

coarse segmentation은 CIHP의 33,280 장의 데이터의 20개의 카테고리를 (1).헤어 또는 피부, (2).그 외 이렇게  2가지 영역으로 재정의 합니다. 그리고 라벨링 된 부분을 찾아 자른 뒤, 80x80 픽셀 보다 작은 이미지를 필터링 합니다. 이렇게 전처리 된 26,000장의 이미지를 PSPNet에 학습시켜  2가지 영역을 구분할 수 있게 됩니다. 이렇게 진행된 결과물은 위의 그림 1.1 입니다.

이 순서는 머리 부분과 얼굴 영역을 보존한 채 진행한 얼굴 탐지라고 볼 수 있습니다. 기존 얼굴 탐지 방법은 머리카락 영역이 잘리는 일이 자주 발생합니다.

[그림 7] BASS

 

추가적인 fine segmentation stage는 더 정확한 segmentation을 얻기 위해 경계선을 강화하는 BASS (Boundary-Attention Semantic Segmentation)을 적용하여 결과물 1.2를 얻습니다. 여기서 경계선은 서로 다른 카테고리를 구분짓는 선을 의미합니다.
BASS는 3개의 branch로 구성된 신경망으로 semantic branch, boundary-aware branch, boundary-attention semantic branch를 가지고 있습니다. semantic branch는 여러개의 카테고리를 semantic segmentation 하는 업무를 담당하며, boundary-aware branch는 2개의 카테고리 경계를 segmentation 하는 업무를 담당합니다. 마지막으로 boundary-attention semantic branch는 앞 2개의 branch로 부터의 feature를 조합하여 경계 픽셀을 강조하는 업무를 담당합니다.

이렇게 fine segmentation 까지 진행되면 결과물 1.2가 생성됩니다. 


 

[그림 8] BASS loss


 

BASS 신경망 학습에 사용되는 loss는 각 branch 마다 있으며, 람다를 통해 균형을 조절하게 됩니다. (2) semantic branch loss는 픽셀이 어떠한 카테고리에 들어가는지 (3) boundary-aware branch loss는 픽셀이 경계선 위치에 들어가는지, (4) boundary-attention semantic branch loss는 경계에 위치하면 weight을 1+알파를 통해 가중치를 키워 경계부분에 집중을 하도록 학습합니다.

 

2.Category-wise fitting facial parts

얼굴 내부 부분을 왼쪽 눈썹, 오른쪽 눈썹, 왼쪽 눈, 오른쪽 눈, 코, 윗입술, 아랫입술, 입 안 으로 구분하여 카테고리를 구분 합니다. 랜드마크를 직접 연결하는 것은 등고선이 삐뚤빼뚤할 수 있어 방지하고자 폴리곤 방법을 사용합니다. 모든 작업은 얼굴들을 정렬한 뒤 진행됩니다. 이렇게 생성된 결과물은 2 입니다.


 3.Hierarchical fusion

2가지 단계를 진행하여 얻은 머리/피부 라벨링 데이터와 얼굴 내부 부분을 계층적으로 합치게 됩니다. 여기서 순서가 굉장히 중요한데 피부가 얼굴 내부 부분 보다 나중에 적용되면 기존 얼굴 내부 부분을 모두 가려버릴 수 있기 때문입니다. 합치는 순서는 피부, 얼굴 내부 부분, 머리, 배경 순으로 진행됩니다. 이렇게 생성된 결과물은 3 입니다.

Face parsing 모델 학습의 어려움

여기까지 보면 단순히 학습 이미지를 구한 다음 Face parsing 모델을 훈련시키면 위와 같은 Face parsing 결과를 얻을 수 있을것만 같은데요. 실상은 쉽지 않습니다. 그 이유는 Face parsing에 필요한 학습 데이터 구축이 상당히 까다로운 과정이기 때문입니다. 

실제로 Face parsing 분야는 다른 얼굴 관련 task들(Face recognition, detection, alignment 등)에 비해 발전이 더딘 편입니다. 주 원인이 바로 부족한 데이터셋이죠. 실제로 다른 task의 딥러닝 모델 학습을 위한 공개 데이터셋의 데이터 개수는 하나의 데이터셋이 많게는 수 백만건의 데이터를 포함하지만 Face parsing 분야의 공개 데이터셋들은 모두 합쳐봐야 10만건이 안됩니다.

Face parsing 데이터 구축이 특히 어려운 이유는 라벨링 작업에 투입되는 리소스가 많기 때문입니다. 일반적인 얼굴 인식(Face recognition) 모델의 경우 이미지 - 분류(classification) 라벨링 쌍을 학습 데이터로 사용하기 때문에 비교적 간단하게 데이터셋을 구축할 수 있습니다. 그러나 Face parsing 모델의 경우 분류 라벨링 뿐 아니라 랜드마크 위치 정보와, 부위 별 세그멘테이션 정보를 추가적으로 라벨링 해주어야만 모델 학습이 가능해집니다. 

랜드마크 위치 정보 라벨링의 경우 얼굴 랜드마크의 윤곽을 따라 수십개에서 많게는 100개 이상의 점들의 좌표를 수동으로 주석 처리해야 하고, 세그멘테이션의 경우 각 얼굴 부위에 해당하는 영역을 픽셀 단위로 모두 주석 처리 해주어야 합니다. 최근에는 랜드마크나 세그멘테이션 라벨링을 GUI 형태로 간편하게 라벨링 할 수 있는 도구들이 오픈소스로 공개되고는 있지만 여전히 많은 양의 수작업이 투입되어야 하는것이 사실입니다.

 

Face parsing Semi-automatic 라벨링

 위와 같은 Face parsing 데이터 라벨링 과정의 리소스를 줄이고자 Semi-automatic 라벨링 방법이 등장했습니다. Semi-automatic 라벨링이란 범용적으로는 데이터를 딥러닝 모델 등에 입력하여 나온 예측값을 사람이 수 작업으로 조정하여 최종적인 라벨링 작업을 하는 것을 의미합니다. Semi-automatic 라벨링을 Face parsing 데이터셋에 적용해보면 먼저, 얼굴 이미지를 DLA, PPA와 같은 딥러닝 모델에 입력합니다. 모델은 예측한 랜드마크 및 세그멘테이션 라벨을 반환합니다. 모델이 반환한 예측 라벨들 중 부정확한 랜드마크 위치, 잘못된 세그멘테이션 영역 분리 등의 오류를 사람이 미세조정 하여 최종적인 라벨링 작업이 완료되는 방식입니다. 실제로 위에서 소개한 LaPa 데이터셋의 경우도 Semi-automatic 라벨링을 통해 완성된 데이터셋 입니다. 

[그림 4] 실제 딥러닝 모델의 Segmentation 예측 값

 Semi-automatic 라벨링 방식을 사용하면 라벨링에 들어가는 수작업 부담을 상당 부분 경감시킬 수 있습니다. 딥러닝이 대략적인 랜드마크 위치 및 세그멘테이션을 알려주므로 From Scratch 상황에서부터 직접 라벨링 하던 이전 작업보다 훨씬 수작업 리소스가 줄어들게 됩니다. 또한 완성된 최종 라벨링과 이미지 쌍을 다시 학습 데이터로 사용하여 재학습시키게 되면 라벨링 모델의 성능이 올라가기 때문에 갈수록 정확한 예측 라벨링 결과를 반환하게 됩니다. 이렇게 되면 작업자의 입장에서 라벨링이 이미 완성에 가까운 이미지들을 받기 때문에 미세조정에 들어가는 리소스도 점점 줄어들게 되는 선순환 구조를 가지고 있습니다. 

Semi-automatic 라벨링 한계

 그러나 Semi-automatic 라벨링 방법에도 한계가 존재합니다. 바로 라벨링 작업에 사용되는 모델을 학습시키기 위해 여전히 많은 양의 수 작업된 Face parsing 데이터셋이 필요하기 때문입니다. LaPa 데이터셋 라벨링을 담당한 DLA와 PPA 모듈 역시 2만건 이상의 수작업된 Face parsing 데이터들로 학습된 모델입니다. LaPa, Helen, CelebMaskA-HQ와 같은 공개된 Face parsing 데이터셋을 이용한다고 해도, 해당 데이터셋들은 비교적 잘 정제된 얼굴 이미지(Constrained face image)들로 구성되어 있어 실 생활에서 획득한 얼굴 이미지(Unconstrained face image)에 대해서는 제대로 된 라벨링을 하지 못할 수 있습니다. 이외에도 기존 공개 데이터셋의 불균형 문제 때문에, 모델의 정확도가 인종/성별/나이 등 다양한 변수에 따라 성능 차이가 심하게 날 수도 있습니다.

 

마치며

얼굴 이미지를 픽셀 단위로 세부 부분(눈,코,입 등)을 라벨링한 데이터를 생성하는 Face parsing 에 대해 알아봤습니다. 현재 공개된 Face segmentation dataset이 부족하여 AI 학습과, 관련 서비스의 발전이 느린 것이 사실입니다. 그러나 위 처럼 데이터를 효율적으로 구축하는 방법론들이 지속적으로 제안되고 있고 Face parsing 분야가 주목받음에 따라 관련 연구들과 공개 데이터셋 구축들이 활발하게 진행되고 있기 때문에 앞으로 Face parsing 분야의 눈부신 발전을 기대해봅니다.

 

CUBOX는 NIST에서 주관하는 얼굴 인식 대회인 FRVT(얼굴 인식 알고리즘 기업 테스트, Face Recognition Vendor Test)에서 1:1, 1:N 모두 세계 1위, 국내 1위 성적을 보유하고 있습니다. (2021년 11월) 이러한 기술력을 인정 받아 인천공항, 정부 청사의 얼굴 출입 시스템을 직접 구현하여 운영하고 있습니다. CUBOX AI LAB은 Face re-identification, Face detection, Face Mask Effect, Face Anti-Spoofing 등 얼굴 인식 기술 전반에 대한 독자적인 모델 연구를 진행하고 있으며, 관련 데이터셋 구축 사업 역시 진행하고 있습니다.
본문의 글이나 CUBOX AI LAB 연구에 대한 문의사항이 있으시거나 AI LAB과 함께하고 싶으신 분들은 언제든지 연락 주시기 바랍니다. 

 

 

참고자료

그림 1. https://pho.to/visagelab

그림 2. www.faceapp.com

그림 3. Exemplar-Based-Face-Parsing

그림 4. Face Parsing with RoI Tanh-Warping

그림 5. A New Dataset and Boundary-Attention Semantic Segmentation for Face Parsing

그림 6. A New Dataset and Boundary-Attention Semantic Segmentation for Face Parsing

그림 7. A New Dataset and Boundary-Attention Semantic Segmentation for Face Parsing

 

그림 8. A New Dataset and Boundary-Attention Semantic Segmentation for Face Parsing



About Author


 

이 기 훈

Pro, AI 3팀

ghlee@cubox.ai

TAG