Research/컴퓨터비전, 영상처리

얼굴 랜드마크(facial landmark)란?

bskyvision.com 2020. 8. 1. 09:33

랜드마크라는 단어는 모두들 익숙히 알고 있을 것입니다. 보통 어떤 지역을 대표하는 건물 또는 조형물 등을 랜드마크라고 부르죠. 예를 들어, 뉴욕의 경우 자유의 여신상, 파리는 에펠탑, 런던은 런던아이, 서울은 경복궁, 도쿄는 도쿄타워, 베이징은 만리장성 등을 랜드마크로 부를 수 있겠습니다. 그 지역의 랜드마크에 가서 사진 한 장 찍어야만, 우리는 보통 그 지역을 방문했다고 생각합니다. 

 

그렇다면, 사람 얼굴에서 랜드마크로 생각할 수 있을 만한 것에는 무엇이 있을까요? 쉽게 말해서 얼굴에서 없으면 안 되는 것들이 바로 랜드마크입니다. 코, 눈, 입, 눈썹, 턱과 같은 것 중에 하나라도 없다면 일반적인 사람의 얼굴로 보기는 어렵겠죠. 따라서 코, 눈, 입, 눈썹, 턱선과 같은 것을 얼굴의 랜드마크라고 부를 수 있습니다.

 

컴퓨터비전 연구 과제 중에는 얼굴 랜드마크 검출(facial landmark detection)이란 과제도 있습니다. 얼굴의 랜드마크들을 자동으로 검출해주는 컴퓨터 알고리즘을 만드는 것이 바로 얼굴 랜드마크 검출 분야의 목적입니다. 얼굴 랜드마크 검출 전에는 보통 먼저 얼굴 검출이 선행됩니다. 얼굴을 찾은 이후에 얼굴 안의 눈, 눈썹, 입 등을 찾는게 훨씬 수월해지기 때문입니다.

 

어떠한 얼굴 랜드마크 데이터베이스에 훈련되었느냐에 따라 다르긴 하지만, 얼굴 랜드마크 알고리즘은 얼굴 이미지 위에서 랜드마크라고 생각되는 곳들에 총 68개의 좌표를 찍는 방식으로 작동합니다. 다음과 같이 말입니다. 

 

그림 출처: [2]

 

얼굴의 랜드마크를 잘 검출해낸다면 아래와 같은 것이 가능해집니다. 사람이 눈을 뜨고 있는지 감고 있는지를 알아낼 수 있습니다. 그러면 사진 찍을 때 모든 사람이 눈을 뜨고 있는 순간을 촬영할 수 있습니다. 또한 사람의 표정을 추정할 수 있습니다. 웃고 있는지, 울고 있는지, 화난 표정인지 등을 알 수 있습니다. 또한 머리의 회전 각도를 추정하는 것도 가능합니다. 머리가 오른쪽을 향하고 있는지, 위쪽을 향하고 있는지, 아래를 향하고 있는지 등을 알 수 있죠. 

 

 

b스카이비전의 추천글

머리 자세 추정(head pose estimation)에서 pitch, roll, yaw angle이란? 

[ubuntu+python] 얼굴 검출

 

 

<참고자료>

[1] https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/, pyimagesearch, "Facial landmarks with dlib, OpenCV, and Python"

[2] Sagonas, Christos, et al. "300 faces in-the-wild challenge: Database and results." Image and vision computing 47 (2016): 3-18.