Skip to content

Facial reconstruction by deep-learning #
Find similar titles

You are seeing an old version of the page. Go to latest version

face book 에서 사진을 올리면 안면을 인식해서 사각형틀을 씌워주고 내가 테그를 달지 않아도 자신의 얼굴과 지인의 얼굴이 누구 인지 달아져있던걸 본 기억이 있을 듯이다. bounding box를 만들고 그 안의 객체가 무엇인지 확인하는건 컴퓨터 비전에 관심있는 사람이라면 생소하지 않는 분야일 것이다. 객체 인식으로만 간주하면 주요 task가 완료된 주제구나 라고 생각할 수도 있겠다. 그러나 어느 분야를 막론하고 사람에 대한 주제는 항상 그렇듯 뜨거운 관심을 받게 되며 사람의 얼굴에 대한 비전 및 인공지능도 늘 새로운 주제가 생겨나고 상당한 진보를 하고 있다. 본 포스팅에서는 안면인식과 관련한 'facial reconstruction' task를 소개하고 이 기술력이 얼만큼 확보되어있으며 어떤 결과를 나타내고 있는지 알아보고자 한다. 본 글을 쓰기위해 2018년 arXiv에 올라왔던 비전, 인공지능 논문을 리뷰하였다.

Facial reconstruction from skull by using deep-learning #

두개골에서 안면을 재구성하는 주제의 연구이다. 'Superimposition-guided Facial Reconstruction from Skull, 2018, C Liu' 에 따르면 이는 법의학분야에서 활용되는 알고리즘으로 활용될 수 있다. 법의학 수사관이 다른 정보를 이용할 수 없을 때 두개골에서 골격을 재구성하여 얼굴을 식별하는데 도움을 줄 수 있다. 두개골에서 얼굴을 직접 재구성하는 방법들이 기본적인 안면 재구성 기술이지만 여기서 저자는 인물 사진 데이터베이스를 활용하여 얼굴 후보들을 생성하고 'superimposition, 중첩' 기술을 사용하여 가장 매치되는 얼굴을 찾고 수정하는 과정을 거쳐 완성한다고 한다. 이 해당 과정에는 안면 재구성을 위한 autoencoder 기술과 inpainting (이미지안에서 손상되거나 누락된 부분을 재구성하는 기술)을 구현하기 위한 generative model(GAN)을 활용했다고 한다.

기존 facial reconstruction 방법과 발전 #

기존의 안면 재구성은 컴퓨터 그래픽 기반의 알고리즘이 대부분이며 pulishing 연도(2018) 기준으로 현재에도 법의학 사례에선 여전히 수동으로 파이프라인형태로 분석이 진행되고 있다고 한다. 이 안면 재건축 파이프라인은 보통 세 단계로 구성된다.

Image

그림 1. Forensic manual facial reconstruction(법의학적 안면 재구성). 출처:1

  1. 두개골에서 특정 지점에 landmarks를 배치한다.
  2. 통계적인 표준 조직 두께가 있으며 이를 이용하여 landmark를 확장시킨다.
  3. 확장된 landmark를 따라 점토 얼굴 모델을 생성한다.

이러한 파이프라인을 따라 CG-based Facial reconstruction이 개발되었으며 이로 인해 수동방식을 디지털화 하여 안면 재구성이 가능해 졌다. 이후 Learning-based Facial reconstruction의 주제로 통계적 모델을 이용하여 안면을 재구성 하는 방법도 개발되었는데 이는 얼굴의 각 포인트의 3D coordinate(좌표)들로 구성된 고차원의 벡터를 활용하여 PCA(주성분 분석)을 이용하여 모델링 하는 기법이다. 이 방법은 세부적인 특징이 사라지며 평균화 되어 버리는 면이 생성이 되므로 얼굴 인식에 크게 유용하진 않았다고 한다.

두개골을 통한 facial reconstruction의 어려움 #

두개골로 부터 안면을 재구성하는 기술의 주요 한계는 조직의 두께 정보가 없기 때문에 나타난다. 대부분 얼굴은 일반적인 얼굴 기하학(geometry)을 이용하여 결정될 수 있지만, 입술 모양과 눈썹같은 특정 영역은 뼈에서 알 수 있는 내용이 아니다. 따라서 이부분은 법의학 전문가의 해석에 의존해야 하는 문제가 생긴다. 이런 문제들로 인하여 대부분의 안면 재구성 알고리즘으로 부터 나온 결과물들이 부자연스러운 점들이 발견되며 이를 ambiguity in face(모호성)이라고 할 수 있다.

해당 논문에서는 이러한 문제점을 극복하고자 딥러닝 기술을 활용한 새로운 파이프라인을 구성하였다고 한다.

  1. 이미 데이터베이스에서 많은 얼굴 후보를 탐색하기 위해 'image-based facial reconstruction'을 수행
  2. 'skull-face superimposition(두개골 중첩)'을 수행하여 재구성된 얼굴 각각이 주어진 두개골과 일치할 가능성(likelihood)을 계산
  3. 가장 매칭이 큰 얼굴에서 'face re-synthesis'를 수행하여 face geometry을 수정(face inpainting)

위의 분석 파이프라인에는 두가지 주요 기술이 포함된다. 각각에 대해 아래에 소개한다.

(1) 3D face reconstruction from an image

(2) face inpainting

두 가지 주요 기술 소개 #

A. Face reconstruction #

(1) 고전방식

고전적인 face reconstruction은 parametric template morphable model을 이용하게 되는데, 대부분 PCA를 기반으로 하기 때문에 얼굴 세부정보를 잃게 된다. 최근 parametric face model인 FLAME은 얼굴을 모양, 포즈, bledshape으로 분해하여 PCA기법보다 사실적인 얼굴 묘사가 가능하다. 그러나 이러한 template model을 이용하는 방법은 선택한 template가 이미지와 유사하지 않으면 잘못된 얼굴을 찾아주는 문제점들이 있다.

(2) 딥러닝을 이용한 방식

이에 반하여 딥러닝을 이용한 기법들도 새로 만들어지고 있는데 이 방식은 템플렛의 선택에 민감도가 낮아서 더욱 안정적일 뿐만 아니라 앞선 방법보다 훨씬 빠르게 작업이 가능하다. 이를 위해서 'multi-task CNN', 'CNN cascades', Restricted boltzmann machine', 'RNN-LSTM'를 이용한 방법들이 개발되고 있으나 이러한 방법은 지도학습으로 훈련되어야 하며, 현재는 얼굴의 희소 특징을 생성하는 데만 사용되고 있다.

두개골을 이용한 재구성 방식은 전체 얼굴을 생성하는 조밀한 재구성이 필요하고 3D face scan 데이터 획득의 문제로 인해 비지도학습을 이용한 AE(auto encoder)로 해결 가능하며 주목할만한 2가지 architecture는 the fully CNN-based autoencoder (CAE) (e.g. the Deep Face Encoder)와 the Model-based autoencoder (MAE) (e.g. Model-based Face Autoencoder MOFA) 가 있다. CAE는 인코딩과 디코딩 모두에 CNN을 사용하고 MAE는 인코딩에선 CNN을, 디코딩에선 위에 소개한 parametric face model을 사용하는 차이가 있다. 해당 논문에서는 MAE를 사용했으며 이로 인해 사람의 얼굴에 대한 일부 사전 지식을 통합하기 때문에 많은 양의 데이터가 필요하지 않았다고 한다.

Image

그림 2. Auto-encoder를 활용한 Face reconstruction. 출처:2

auto-encoder를 사용하면 인물 사진 데이터베이스를 이용하여 3D 얼굴을 재구성 할 수 있다. 이 3D얼굴들은 주어진 두개골과 일치하는 얼굴 후보로 사용되며 가장 잘 일치하는 얼굴은 최종 얼굴을 합성(synthesize)하기 위한 template로서 사용된된다. 저자는 인터넷에서 다운로드한 인물이미지를 이용하여 80k이상의 3D face 후보군을 recontruction했다고 한다.

Image

그림 3. 인터넷 얼굴 사진을 이용한 3D reconstruction DB. 출처:2

B. Face Re-synthesis #

re-synthesis는 두개골의 기하학적 제약에 따라 얼굴의 특정 영역을 수정하는 것이며 이 문제는 일치하지 않는 영역을 제거 한뒤, 특정 기하학적 조건으로 다시 부분을 생성하는 face inpainting 문제로 볼 수 있다.

3D face inpainting task역시 통계적인 방법과 parameterized 3D face model을 이용하는 방법이 있는데 최근 딥러닝 기반기술이 개발되면서 3D inpainting을 위한 generative model이 개발되었으며 이것은 데이터베이스로부터 복셀화(voxel, pixel + volumn의 합성어로 픽셀을 3차원으로 구성)된 객체을 이용하여 모델을 학습한다. 이런 방식에도 문제점은 존재하는데 3D 얼굴 스캔 데이터가 충분치 않고, 복셀화된 모델은 얼굴의 미세한 특성을 설명하지 못한다. 논문에서의 저자는 이부분을 위해 2D image inpainting으로 re-synthesis를 진행한 뒤 3D로 reconstruction하는 방식을 취했다.

Generative model based face inpainting architecture는 GAN(Generative Adversarial Networks)을 바탕으로한 DCGAN이나 CE(Context Encoder)를 가 잘 알려져있다.

파이프라인 방법 설명 #

위의 두가지 주요 기술을 활용하여 facial recontruction from skull 분석 파이프라인을 수행하였으며 여기서 두 기술외에 전체적인 흐름을 설명하겠다.

A. IMAGE-BASED FACIAL RECONSTRUCTION #

이 부분은 앞서 설명했던 auto-encoder와 FLAME을 이용하여 3D recontruction 얼굴 DB를 만드는 과정이다. 여기서 사용한 레이어의 구성과 geometry-based Loss는 원문을 참고하길 바란다.

B. SKULL-GUIDED FACE RE-SYNTHESIS #

많은 양의 후보군 중에서 skull 이미지와 가장 적합한 후보를 'skull-face superimposition'을 이용하여 선발하게 되고 후보 이미지에서 일치하지 않는 영역을 수정하여 두개골에 따라 새 얼굴을 합성하는 과정을 수행한다.

(1) skull-face superimposition

여기선 'adopted tissue-based facial reconstruction procedure'에 따라 후보 얼굴과 두개골에 위치한 landmark를 서로 비교한다. 두개골에는 landmark에서 알려진 표준 조직 두께를 적용하여 후보군의 depth와 비교하여 일치도를 유클리드 식으로 계산하게 되는데 종합 점수가 가장 높은 후보군(하나 이상)을 선발하게 된다.

Image

그림 4. landmarks를 이용한 두개골과 후보 안면의 비교: (c)의 녹색은 일치, 빨간색은 불일치를 나타낸다. 출처:2

(2) Face Re-synthesis through Inpainting

이 과정에선 선발된 후보군의 얼굴에서 일치하지 않는 영역을 제거하고 두개골에서 확인한 랜드마크를 따라 inpainting을 진행한다.

영역 선별을 위해 face segmentation 과정을 진행하게 되는데 각 영역에는 하나 이상의 landmarks가 포함된다. 각 영역의 유클리드 계산값이 threshold을 넘지 못한다면 그 해당 부분을 제거 하게된다.

Image

그림 5. 안면 영역 분할(face segmenting), 부적합 영역을 판별하고 제거하는데 쓰인다. 출처:2

앞서 언급한대로 3D face inpainting은 제약이 많고 성능이 좋지 않기 때문에 저자는 먼저 2D 후보 얼굴 이미지에서 inpainting을 수행 후 3D face restruction을 통하여 결과물을 얻는, 2단계 inpainting을 수행하였다고 한다.

저자는 Yeh et al., (2017)에서 제안한 GAN-based face image inpainting algorithm 을 이용하여 훈련하였고 그로인해 손상된 이미지를 넣어줬을 때 generator G를 사용하여 얼굴을 재구성하였다고 한다.(G는 실제 3D 얼굴로부터 랜더링된 이미지처럼 보이는 얼굴이미지를 생성하는 generator, D는 3D에서 나온 것인지 아니면 가짜인지 판별하는 discriminator 이다)

저자는 GAN을 학습 시킬때 손실함수를 Prior Loss, Geometry Loss, Context Loss 3가지로 나눠 정의하여 사용하였는데 이와 관련한 자세한 내용은 원문논문을 참조하길 바란다.

결과 #

Image

그림 6. All process of Face reconstruction & re-synthesis. 출처:2

상단 그림은 저자가 소개한 Facial reconstruction 분석 파이프라인을 수행했을 때의 과정을 보여 주고 있다. 두개골을 인풋(a)으로 넣어 주면 두개골과 일치하는 3D reconstruction 얼굴을 매칭해주게 된다(c, i, q). 그 이후 superimposition(중첩)과정을 거쳐서 수정 영역을 판단하게 되고(f, j, r) re-synthesized되어 새로운 안면을 얻게 된다(g, n, v). g, n, v아래의 숫자는 각각 context, prior, geometry loss값을 출력한 것이다. 분명 서로다른 후보 이미지에서 나온 3D reconstruction 얼굴에서 재구성된 얼굴이지만 랜드마크와 geomery 특징을 살려 얻어낸 g, n, v 결과물들이 정면이미지가 거의 유사한 것을 볼수 있어서 저자의 결과물이 안정성이 있음을 보여준다.

Image

그림 7. 다른 face inpainting 알고리즘 결과와의 비교. 저자의 방법은 GII-GC(가장 오른쪽)이다. 출처:2

저자의 reconstruction과 inpainting 결과를 다른 기존 알고리즘과 비교했을 때 보다 뛰어난 점을 확인할 수 있었는데 그중 inpainting에서 결과를 보면 다른 알고리즘은 손상되어있는 안면 부분을 매끄럽게 만들어주는 보간이 일어난데 비하여 저자의 방법은 두개골과 superimposition(중첩)에 대한 loss를 계산하고 최적화 시키므로 skull을 이용한 복원이라 불릴 수 있는 결과를 나타낸다고 볼 수 있었다.

출처 #

  • Forensic facial reconstruction, Smithsonian Institution website
  • Superimposition-guided Facial Reconstruction from Skull, 2018, arxiv, C Liu et al.2
0.0.1_20210630_7_v33