얼굴 인식 기술을 소개합니다!

이 글을 통하여 얼굴 인식 기술 및 인식 과정을 간단하게 소개해 드리고자 합니다.

1. 얼굴 인식 소개

필요성

김깜박 대리는 내일 저녁 일생 일대의 소개팅을 고대하고 있습니다. 그 날을 위해 오늘 머리를 하러 갔습니다. 미용실 원장님께서는 혼신의 노력과 최신 퍼머 기술을 적용하여 김깜박 대리의 스타일을 아주 멋있게 살려 주셨습니다. 김깜박 대리는 거울에 여러 각도로 얼굴을 비추어 보고는 만면에 흐뭇한 미소를 띄우며 원장님께 물었습니다. 얼마인가요? O만원입니다. 네~ 하고 김깜박대리는 속주머니에 손을 넣었습니다. 하지만 분명히 있어야 할 지갑이 손에 잡히지 않았습니다. 앗 어디 갔지? 내 카드, 신분증 모두 들어 있었는데… 상심한 김깜박 대리는 기어들어가는 목소리로 원장님께 “저 지금 돈이 없는데요” 라고 말했습니다. 김깜박대리와 안면이 있는 원장님은 밝은 목소리로 “아 괜찮습니다. 나중에 주세요. 저희 단골이시잖아요.“라고 말하였습니다. 김깜박 대리는 그제야 안심하고 미용실을 나왔습니다. 그리고 나서는 먼저 은행에 들러 카드를 재발급 받으려 했습니다. 하지만 신분증이 없었기 때문에 거절을 당하였습니다. 은행 직원은 김깜박 대리에게 말하였습니다. “당신이 김깜박 고객님이라는 것을 어떻게 증명하실 수 있나요?” 김깜박 대리는 굉장히 난처했습니다. “아, 내 신분을 증명할 수 없으니 내 돈도 내가 찾을 수 없구나.”

우리 모두는 자신을 인증하는 ID카드, 비밀 번호를 여러 개씩 가지고 있습니다. 그런데 이러한 것들은 잃어버리거나 잊어버리게 되면 매우 큰 스트레스를 받게 됩니다. 계좌에 있는 돈을 인출하지도 못하게 되고, 어쩌면 집에도 못 들어 갈 수 있습니다. 게다가 남이 나의 신분을 도용하여 나의 정보나 돈을 가져가지나 않을까 불안해 하게 됩니다. 누구나 이런 경험을 하게 되면 드는 생각이 있습니다. ‘내가 정말 나라는 것을 ID카드나 비밀번호 없이 미용실 원장님처럼 그냥 알아봐 줄 수는 없을까?’

이러한 것에 대한 해결책으로, 생체 인식 기술에 대한 관심이 높아지고 있습니다. 생체 인식이란 얼굴, 홍채, 지문, 정맥 등 개인의 고유한 생체 정보를 추출하여 정보화 시킨 후 인식에 활용하는 것을 가리킵니다. 생체 정보는 개인마다 독특한 특징을 갖기 때문에 도용이나 모방이 불가능하고, 분실의 위험이 작아 보안에 유리합니다.

생체 인식은 방식에 따른 장단점이 있습니다. 홍채, 지문, 정맥을 이용한 생체 인식은 인식률이 높은 반면에, 기구에 접촉하거나 카메라에 매우 가까이 접근해야 하므로 사용자들의 협조가 필요하며 경우에 따라 사용자들이 거부감을 갖게 될 수 있습니다. 얼굴 인식은 비교적 멀리 떨어져 있는 카메라를 이용하여 영상을 획득하는 방법을 사용하므로, 다른 생체 인식 방법에 비해 인식률이 낮은 반면에, 사용자들의 부담이 적고 사용의 편리함이 두드러집니다. 또한 여러 명을 동시에 인식하는 것도 가능합니다.

따라서, 얼굴 인식은 공공 감시, 출입 통제 시스템으로의 활용도가 높으며, 개인의 식별 정보를 필요로 하는 스마트폰, 컴퓨터, 인터넷 공간, 사이버 금융 거래 등에 널리 활용될 수 있습니다. 얼굴인식이 편리하기는 하지만 얼굴인식의 성능을 제한하는 기술적 난점이 아직 많이 있으며 현재 이것들을 해결하기 위해 많은 연구가 이루어 지고 있습니다. 이제부터 얼굴인식 기술의 어려움과 얼굴인식 과정에 대해 설명해 드리도록 하겠습니다.

얼굴 인식을 어렵게 만드는, 같은 사람을 다르게 보이게 하는 요인들

카메라로부터 입력되는 얼굴 영상은 수많은 변수에 의해 영향을 받습니다. 그 중의 몇 가지는 다음과 같습니다.

– 빛은 얼굴영상에 다양한 왜곡을 가져옵니다. 역광은 영상을 어둡게 하고, 측면광은 얼굴에 그림자를 만들며, 너무 어두운 장소에서는 포화가 일어납니다. 아래 그림 1.에서 조명에 따른 얼굴 변화를 볼 수 있습니다.

그림 1. 주변 조명에 따른 얼굴 밝기의 변화

– 우리의 얼굴은 상하 좌우 3차원 회전이 가능합니다. 그에 따라 카메라로 입력되는 얼굴 영상은 다양한 자세와 변화를 가진 2차원 영상으로 변형되게 됩니다. 그림 2.에서 카메라 각도에 따른 얼굴의 변화를 확인할 수 있습니다.

그림 2. 카메라 각도에 따른 얼굴 변화

– 우리의 얼굴은 눈 깜박임, 입 움직임에 따라 다양한 국부적 표정 변화를 갖습니다. 그림 3.과 같이 다양한 표정은 얼굴 인식에 많은 과제를 안겨 줍니다.

그림 3. 표정에 따른 얼굴 변화

– 이 외에도 화장, 헤어스타일, 악세사리 등도 얼굴에 많은 변화를 주는 요인들입니다. 그림 4.는 헤어 스타일, 안경 착용에 따른 얼굴 변화를 보여 줍니다.

그림 4. 헤어스타일, 안경 착용에 따른 얼굴 변화

이러한 다양한 요인들은 나의 얼굴의 변화량을 다른 사람과 나의 얼굴 차이보다 더 크게 할 수 있습니다. 얼굴인식이 편리함을 제공하는 기술임에 틀림없습니다만, 이러한 문제로 인해 인식성능 개선을 위한 연구가 지속적으로 필요한 분야입니다. 얼굴인식기술은 지난 수십 년간 많은 사람들의 노력으로 지속적으로 성능이 개선되어 왔으며, 앞으로도 더욱 개선될 것으로 보입니다. 그리고 지금의 기술수준으로도 다양한 분야에 실제로 응용되고 있습니다.

응용 사례

– 주민 등록증 진위확인 시스템 : 얼굴 사진만 본인의 것으로 바꾸어 만든 위조주민증을 스캔하여 서버에 저장된 원본과 확인하는 제품입니다.
– 공항출입통제 시스템 : 개인의 여권과 연동하여 얼굴을 등록한 승객 또는 승무원에 한해 본인 얼굴 인증을 하여 자동으로 출입을 통제하는 시스템입니다.
– 차량출입통제 시스템 : 운전자가 지정된 차량의 번호와 운전자 얼굴을 함께 등록한 후 출입하는 차량의 번호와 얼굴을 인식하여 출입을 통제하는 시스템입니다.
– 얼굴 인증을 통한 스마트폰 로그인 : 아이스크림 샌드위치, 젤리빈과 같이 최신 안드로이드 스마트폰에 탑재되어, 사용자의 얼굴을 인증하여 자동 로그인하게 하는 프로그램입니다.

이제 얼굴 인식 소개를 마치고 얼굴 인식이 어떤 과정을 통해 이루어지는지 설명 드리겠습니다.

2. 얼굴 인식 과정

그림 5. 얼굴인식 과정

 얼굴 인식을 위한 알고리즘은 일반적으로 그림 5.의 과정을 따릅니다. 입력영상에서 얼굴들을 검출한 후, 각각의 얼굴을 분리하여 같은 크기로 만들고, 영상을 개선하여 정렬하게 됩니다. 정렬된 얼굴들은 선택된 방법에 따라 특징행렬로 만들어 집니다.

얼굴 인식시스템은 얼굴 등록과 얼굴 인식이라는 두 과정이 필요합니다. 얼굴 등록과정은 위의 알고리즘을 이용하여 데이터베이스에 얼굴들을 특징행렬로 등록하여 얼굴 특징 DB를 생성하는 과정입니다. 얼굴 인식과정은 마찬가지로 위의 알고리즘을 이용하여 임의의 입력영상으로부터 인식하고자 하는 얼굴 특징행렬을 추출한 후 얼굴 특징 DB에 등록되어 있는 얼굴 특징행렬과 비교하여 인식하는 과정입니다. 다음에는 얼굴 인식의 각 과정에 사용되는 주요기술들을 간단히 설명하도록 하겠습니다.

얼굴 검출

얼굴 검출은 입력 영상에서 사람의 얼굴을 찾아 그 위치 정보를 추출하는 것을 의미합니다. 과거에는 이 기술이 매우 어려운 기술이었습니다. 이전에는 사람의 피부색 영역을 정의하고 피부색으로 얼굴을 검출하거나, 얼굴을 정의하고 상관관계를 추정하여 위치를 찾는 방법들이 연구되었습니다만 검출률이 높지 않았습니다.

획기적으로 성능이 개선된 시기는 2001년 Violar와 Jones가 Haar-based cascade adaboost classifier를 발표한 이후입니다. Haar 특징은 다양한 크기와 형태를 갖는 사각형 내에서 지정된 영역에 대한 화소의 합을 더하거나 빼서 나온 결과값을 특징으로 선택합니다. 그리고 이 Haar 특징 자체를 약한 분류기로 선택한 후 약한 분류기들을 결합하고 훈련시켜 강한 분류기로 만든 것을 adaboost classifier라고 합니다. 이러한 분류기를 단계별로 결합시킨 것을 최종적으로 cascade adaboost classifier로 정합니다.

이 방법을 통해 얼굴 검출은 비로소 실시간 처리 및 상용화가 가능한 검출률을 갖게 되었습니다. 오늘날 자동으로 얼굴의 위치를 검출해 주는 디지털 카메라들은 대부분 이 기술을 응용하고 발전시킨 것들입니다. 그림 6.에서는 입력영상에서 얼굴 검출을 한 결과를 보여줍니다.

그림 6. 얼굴 검출

얼굴 정렬

얼굴 검출 과정을 통해 검출된 얼굴들은 다양한 조명과 회전으로 인해 인식기에 바로 입력할 경우 인식률이 매우 낮아지게 됩니다. 따라서 조명의 영향을 줄이고, 영상의 잡음을 제거한 후, 얼굴의 회전, 크기등을 보정하는 얼굴 정렬과정을 수행하게 됩니다. 조명의 영향을 줄이고 영상을 개선시키기 위해 주로 사용되는 방법은 히스토그램 평활화 및 확장, 가우시안 컨벌루션이 있습니다. 그리고 얼굴의 반사율을 추정하여 조명의 영향을 제거하는 방법들도 지속적으로 연구되고 있습니다.

얼굴의 회전, 크기를 보정하기 위해서는 얼굴의 요소의 위치를 검출하여 그 위치를 기준으로 보정하게 됩니다. 얼굴의 요소란 눈, 코, 입을 의미합니다. 얼굴의 요소를 검출하는데 주로 사용되는 방법 중의 한가지는 AAM(Active appearance mode)입니다. AAM은 1998년 Cootes 등에 의해 제안된 이후로 많은 발전이 이루어졌습니다. 이 방법은 훈련 영상들에서 얼굴의 shape(얼굴의 요소 위치를 연결한 삼각메쉬)과 appearance (shape내의 화소값)를 PCA(Principal component analysis)를 이용하여 저차원으로 축소된 부분 공간으로 모델링한 후 이 모델을 입력 영상에 잘 부합되도록 파라미터를 맞추어 새로운 모델 인스턴스를 생성하는 방법입니다.

이제 정렬된 얼굴을 이용하여 얼굴 특징 추출 및 인식 단계로 들어가게 됩니다. 그림 7.은 검출된 얼굴을 정렬한 결과를 보여줍니다.

그림 7. 얼굴 정렬

얼굴 특징추출 및 인식

얼굴을 인식하기 위해서는 정렬된 얼굴 영상에서 각 사람의 얼굴을 잘 표현하는 특징의 추출이 필요합니다. 그리고 이 특징들을 잘 분류할 수 있는 분류기를 통해 다른 얼굴 특징과의 유사도를 비교하여 인식과정을 수행하게 됩니다.

이러한 특징으로는 얼굴 화소 자체를 사용하기도 하며, 특정 필터를 통해 컨벌루션하여 새로운 특징을 추출하기도 합니다. 이때 주로 사용되는 특징 추출용 필터는 Gabor 필터와 LBP(Local binary pattern)가 있습니다. Gabor 필터는 다양한 크기와 각도를 갖는 다중 필터를 이용하여 특징을 추출하기 때문에 잡음 및 회전에 강한 것으로 알려져 있습니다. LBP 또한 주변 화소와의 차이를 특징으로 하기 때문에 영상의 지역적 변화에 강한 특징을 갖고 있습니다.

이렇게 추출된 특징을 통해 인식기를 설계할 때 사용되는 방법은 PCA, LDA(Linear discriminate analysis) 등이 있습니다. 두 가지 방법 모두 등록된 얼굴들을 잘 표현할 수 있는 새로운 공간으로 투영시키는 기법입니다. PCA는 등록된 얼굴들의 분산을 최대화하는 축을 찾는 방법으로 얼굴 영상들의 특징을 표현합니다. LDA는 각 클래스(사람) 간의 거리는 최소화하고 클래스 간의 거리는 최대화 하는 축을 찾아서 얼굴들을 투영시키고 분류하는 방법입니다. 언뜻 보기에는 LDA가 매우 우수할 것 같지만 서론에서 말씀 드린 것처럼 같은 사람의 얼굴 변화가 다른 사람과의 얼굴 차이보다 크고, 또 전체적으로는 얼굴들이 비슷하기 때문에 반드시 LDA가 우수하지는 않습니다.

그림 8.는 정렬된 얼굴을 통해 추출된 얼굴 특징행렬의 개념을 보여줍니다.

그림 8. 얼굴 특징행렬의 추출

3. 마치며…

지금까지 영상입력에서 얼굴 인식에 이르기까지의 과정을 잘 알려져 있는 방법들을 중심으로 하여 개략적으로 살펴보았습니다. 현재의 인식률이 100%는 아니지만 현재의 수준으로도 다양한 응용은 가능합니다. 그리고 지속적으로 인식률이 향상되고 있으므로 향후에도 얼굴 인식에 대한 관심은 더욱 높아질 것입니다.

얼굴 검출 기술이 갑자기 성능이 개선된 것처럼 얼굴 인식의 성능도 다양한 연구를 통해 break through가 이루어 질 날이 있을 것으로 기대합니다.

장언동 Image Processing팀

영상처리 관련 업무를 하고 있습니다.

공유하기