상기한 목적을 달성하기 위하여, 본 발명에 따른 얼굴 인식 장치는, 입력 영상에서 추출된 얼굴 영역에서 소정 개수의 특징점을 추출하는 얼굴 로컬라이저; 상기 추출된 얼굴의 특징점들 각각에 대해 복수의 방향성과 복수의 주파수를 갖는 가버 필터들의 집합을 적용시켜 반응값을 구하고, 상기 구한 반응값들로 이루어진 1차원 벡터를 생성하는 가버 필터부; 상기 생성된 1차원 벡터가 학습 영상에 관한 값인 경우에 상기 1차원 벡터들을 저장하는 학습 데이터 저장부; 및 상기 저장된 1차원 벡터들을 이용하여 이진 판별 기준을 생성하고, 상기 생성된 1차원 벡터가 인식 대상 영상에 대한 값인 경우에는 상기 생성된 1차원 벡터를 상기 이진 판별기준에 적용하여 동일인 여부를 판별하는 이진 분류기를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 얼굴 인식 방법은, (a) 입력 영상에서 추출된 얼굴 영역에서 소정 개수의 특징점을 추출하는 단계; (b) 상기 추출된 얼굴의 특징점들 각각에 대해 복수의 방향성과 복수의 주파수를 갖는 가버 필터들의 집합을 적용시켜 반응값을 구하는 단계; (c) 상기 구한 반응값들로 이루어진 1차원 벡터를 생성하는 단계; (d) 상기 생성된 1차원 벡터가 학습 영상에 관 한 값인 경우에 상기 1차원 벡터들을 저장하는 단계; (e) 상기 저장된 1차원 벡터들을 이용하여 이진 판별 기준을 생성하는 단계; 및 (f) 상기 생성된 1차원 벡터가 인식 대상 영상에 대한 값인 경우에는 상기 생성된 1차원 벡터를 상기 이진 판별기준에 적용하여 동일인 여부를 판별하는 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 일 실시예에 따른 얼굴 인식 장치(100)는, 도 1에서 도시하는 바와 같이, 영상 입력부(10), 얼굴 로컬라이저(face localizer; 20), 가버 필터부(30), 이진 분류기(40), 및 학습 데이터 저장부(50)를 포함하여 구성될 수 있다. 그리고, 이진 분류기(40)는 다시 학습부(41)와 판별부(42)로 세분화될 수 있다.
영상 입력부(10)는 얼굴 영상을 포함하는 입력 영상을 수신하여 화소 값으로 변환한다. 영상 입력부(10)는 도 2에서 도시하는 바와 같이, 입력 영상을 투과시키는 렌즈부(11), 상기 투과된 입력 영상에 따른 광신호를 전기적 신호(촬상 화상 신호)로 변환 출력시키는 광센서(12), 및 상기 변환된 전기적 신호를 디지털 신호로 변환하는 A/D 변환기(13)을 포함한다. 여기서, 광센서(12)는 카메라가 가지는 노출, 감마, 이득조정, 화이트 밸런스, 컬러 매트릭스 등의 기능을 수행하는데, CCD(Charge Coupled Device) 모듈, CMOS(Complementary metal oxid semiconductor) 모듈 등에 의하여 구현될 수 있다.
얼굴 로컬라이저(20)는 입력 영상으로부터 추출된 얼굴 영역에서 소정 개수의 특징점을 추출한다. 얼굴 로컬라이저(20)는, 도 3에서 도시하는 바와 같이, 얼굴 감지부(21), 얼굴 영역 추출부(22), 얼굴 크기 변환부(23), 영상 전처리부(24), 및 특징점 추출부(25)를 포함할 수 있다.
얼굴 감지부(21)는 화소 값으로 표현된 입력 영상으로부터 얼굴 내의 특정 구성 요소를 검출한다. 예컨대, 얼굴 영상 내의 두 눈을 검출하고 이를 얼굴 영상 추출의 기준으로 삼는다. 입력 영상에 얼굴 영상이 포함되어 있다면, 소정 범위내의 거리를 갖는 두 눈의 위치를 찾을 수 있을 것이다.
얼굴 영역 추출부(22)는 얼굴 감지부(21)를 통해 검출된 얼굴 내의 특정 구성 요소의 위치에 근거하여 그 위치와 일정비를 유지하도록 얼굴 영역을 추출한다. 예컨대, 얼굴 감지부(21)에서 두 눈의 위치를 검출하였다면, 두 눈의 거리를 구할 수 있다. 얼굴 인식을 위한 전처리 단계로서, 두 눈 사이의 거리를 기초로 입력 영상에서 얼굴 영역을 잘라내는 방법을 사용하는 것은 영상의 배경 혹은 사람의 머리 스타일의 변화 등에 대한 영향을 최소화시키기 위해서다.
예컨대, 두 눈 사이의 거리를 2D라고 할 때, 왼쪽 눈 바깥의 거리 및 오른쪽 눈 바깥의 거리를 각각 D로 하고, 눈을 기준으로 눈 위의 영역 거리를 1.5*D로 하 고, 눈을 기준으로 눈 아래의 영역 거리를 3*D로 하여 얼굴 인식에 적절한 얼굴 영역을 잘라낼 수 있다. 이러한 비율로 얼굴 영역을 잘라낼 경우에 배경을 최소화시키면서 수치상으로 간단한 비율을 갖고 또한 눈썹, 눈, 코, 입술 등 얼굴 전체에서 얼굴의 특징을 잘 포함할 수 있다.
얼굴 크기 변환부(23)는 얼굴 영역 추출부(22)에서 추출된 얼굴 영역과 이후에 적용될 가버 필터 가 서로 일정비를 갖도록 적어도 하나의 크기를 변환시킨다. 한 방법으로, 얼굴 영역의 크기를 이후에 적용될 2-D 가버 필터의 크기에 따라 변화시킨다. 즉, 얼굴 영역의 특정 생김새 예컨대, 두 눈간의 거리와 2-D 가버 필터의 크기를 고려하여 서로 일정비를 유지하도록 영상의 크기를 변화시킨다. 또는 다른 방법으로, 가버 필터의 크기를 변화시켜 일정비를 유지할 수도 있다. 여기서, 가버 필터의 크기 변화는 즉, 해상도의 변화를 의미한다.
영상 전처리부(24)는 얼굴 크기 변환부(23)를 거친 얼굴 영역에 대해 히스토그램 평활화(histogram equalization) 과정을 거쳐 조명의 영향을 감소시킨다. 입력 영상들은 조명의 영향으로 상대적으로 휘도가 높거나 낮을 수 있고, 한 입력 영상에서도 휘도가 높은 부분과 낮은 부분이 생길 수 있다. 조명의 영향을 감소시키기 위해, 얼굴 영역에서 각 화소의 휘도 분포를 분석하여 히스토그램을 얻고, 빈도수가 높은 휘도를 중심으로 히스토그램을 평활화한다.
가버 필터만을 사용하는 것만으로도 조명에 대한 영향을 감소시킬 수 있으므로 영상 전처리부(24)는 필수 구성요소는 아니지만, 얼굴 로컬라이저(20)에서 보조적으로 사용될 수는 있다.
특징점 추출부(25)는 영상 전처리부(24)에서 전처리된 얼굴 영역에서 가버 필터를 적용할 소정수의 특징점들을 추출한다. 이러한 특징점들은 다수의 사람들을 대상한 실험을 통하여, 얼굴 영역에서 가버 필터의 적용 결과가 서로 다른 입력 얼굴 영상간에 차이가 크게 되는 얼굴 영역 상의 점들로 선택되는 것이 바람직하다. 이는 얼굴 영역에서 특징점은 임의로 선택할 수 있지만, 선택된 특징점들에 대하여 가버 필터를 적용하였을 때 그 결과가 얼굴 별로 명확하게 차이가 나도록 함으로써 얼굴 인식 성능을 보다 향상시키기 위함이다.
가버 필터부(30)는 특징점 추출부(25)에서 추출된 얼굴의 특징점들 각각에 대해 복수의 방향성과 주파수를 갖는 가버 필터들의 집합을 적용시켜 반응값을 구하고, 이렇게 얻은 반응값들로 이루어진 1차원 벡터(vector) 또는 어레이(array)를 생성한다.
일반적으로, 가버 필터로부터 반응값(Pj(x))을 구하는 식은 다음 수학식 1과 같다.
여기서, kν, φμ는 각각 주파수(frequency)와 방향성(originality)을 나타낸다. 예컨대, ν의 범위는 0~4로 하고 μ의 범위는 0~7로 택한 경우에는, 총 40개의 가버 필터들의 집합을 이용하는 것이 된다. 도 4는 이 경우에 가버 필터들의 집합, 또는 웨이블릿 패턴의 예를 나타낸 것이다. 도 4에서 보면, 주파수 방향으로는 5개, 방향성 방향으로는 8개의 패턴이 존재하므로, 전체적으로 40개의 웨이블릿 패턴이 나타나 있다.
결국, 가버 필터부(30)는 얼굴 로컬라이저(20)에서 추출된 특징점 각각에 수학식 1을 적용하여 반응값들을 구하고 그 반응값들을 1차원 벡터 내지 어레이(이하 가버 필터링된 벡터라고 함)로 표현하는 역할을 담당한다. 이러한 가버 필터링된 벡터는 하나의 학습(training) 영상, 또는 인식하고자 하는 하나의 입력 영상에 대응되며, k개의 반응값으로 구성된다. 만약, 20개의 특징점들에 대해 40개의 가버 필터들을 적용했다면, k는 800이 될 것이다.
가버 필터부(30)는 상기 가버 필터링된 벡터가 학습 영상에 대한 것인 경우에는 상기 벡터를 학습 데이터 저장부(50)에 저장하고, 상기 가버 필터링된 벡터가 인식 대상 영상에 대한 것인 경우에는 상기 벡터를 이진 분류기(40)의 판별부(42)에 제공한다.
학습 데이터 저장부(50)는 학습 영상이 입력되는 기간 동안 반복하여, 가버 필터부(30)로부터 제공되는 가버 필터링된 벡터들, 즉 학습 데이터들을 저장한다. 저장시에는 상기 가버 필터링된 벡터 및 그 벡터의 목표 출력 값(target value; 후술하는 수학식 2의 y값)을 함께 저장하고, 후에 학습 영상의 입력이 종료되고 학습부(41)가 이진 판별 기준을 생성할 때 상기 학습 데이터들을 제공한다. 여기서, 목표 출력 값은 두 개의 서로 다른 값을 가질 수 있는데 본 명세서에서는 일 예로, 선택된 특정 얼굴 영상에의 학습데이터에 대해서는 1이 부여되고, 상기 특정 얼굴 영상 이외 영상의 대한 학습데이터에 대해서는 -1이 부여된다.
이진 분류기(40)는 학습 데이터 저장부(50)에 저장된, 복수의 학습 영상(training image)에 대한 가버 필터링된 벡터들을 이용하여 이진 판별 기준을 생성하는 학습부(41)와, 인식 대상 영상에 대한 가버 필터링된 벡터를 상기 가버 필터부(30)로부터 입력 받아 상기 이진 판별 기준에 적용함으로써 상기 인식 대상 영상에 포함되는 얼굴 영상이 특정인의 것인지 여부(동일인 여부)를 판별하는 판별부(42)를 포함한다.
이진 분류기(40)로서 SVM을 사용한다고 하면, 학습부(41)에서 상기 이진 판별 기준을 생성하는 것은 최적 하이퍼평면(hyperplane)을 구하는 과정이 될 것이 며, 판별부(42)에서 동일인 여부를 판별하는 것은 입력된 가버 필터링된 벡터를 상기 최적 하이퍼평면을 구성하는 식에 대입하여 그 결과 값이 소정의 임계치를 넘는가를 기준으로 판별하는 과정이 될 것이다. SVM에서는 이와 같이 하나의 최적 하이퍼평면에 의하여 두 개로 분리 되는 영역을 각각 클래스(class)라고 한다. 본 발명에서는 얼굴 영상이 특정인의 것에 속한다고 판별되는 클래스와, 특정인의 것에 속하지 않는 것으로 판별되는 클래스로 나뉘어질 것이다.
먼저, 본 발명의 일 실시예에 따른 SVM의 최적 하이퍼평면을 구하는 과정을 다음의 수학식 2 내지 수학식 10의 전개 과정을 참조하여 살펴본다. 본 발명에서 SVM에 입력되는 학습 데이터는, 영상 입력부(10)를 통하여 입력된 학습 영상으로부터 생성된 가버 필터링된 벡터, 즉 학습 영상에 대한 가버 필터링된 벡터이다. 상기 학습 데이터는 다음의 수학식 2와 같이 표현될 수 있다.
여기서, xi는 ℓ개의 학습 영상 각각에 대한 가버 필터링된 벡터이고, yi는 목표 출력 값(target value)을 나타낸다. 전술한 바와 같이, 목표 출력 값은 선택된 특정 얼굴 영상에의 학습데이터에 대해서는 1이 부여되고, 상기 특정 얼굴 영상 이외 영상의 대한 학습데이터에 대해서는 -1이 부여될 수 있다.
xi(가버 필터링 벡터) 는 상술한 바와 같이 k개의 구성요소(가버 필터에서의 반응값)로 이루어진다.
만약, 두 클래스가 선형 분리가 가능하다면, 다음의 수학식 3과 같은 하이퍼평면에 의하여 두 클래스를 구분할 수 있다.
여기서, w는 하이퍼평면에 대한 법선 벡터이고, b는 상수이다.
이러한 하이퍼평면 중에서 하이퍼평면과 가장 가까운 데이터 포인트와의 거리를 최대로 하는 하이퍼평면을 최적 하이퍼평면(optimal hyperplane)이라고 하고, 최적 하이퍼평면과 거리가 가장 가까운 데이터를 지원 벡터(support vector)라고 한다.
수학식 3에서 최적 하이퍼평면에 대한 w와 b를 결정하려면, 다음의 수학식 4를 풀어야 한다.
여기서, ∥w∥2는 법선 벡터 w의 크기의 제곱, 즉 wT·w를 의미한다. 수학식 4를 풀기 위하여 라그랑지안 계수(Lagrangian multiplier)를 도입하면 다음의 수학식 5와 같이 된다.
결국, 수학식 5의 라그랑지안 L(w,b,α)를 w, b에 대해서는 최소로, α에 대해서는 최대로 하는 이중 문제(dual problem)을 풀어야 한다. 먼저, w, b에 대하여 라그랑지안이 최소가 되는 조건에서 다음의 수학식 6과 같은 두 개의 조건을 얻을 수 있다.
그리고, 수학식 6에서 구한 조건을 수학식 5에 대입하면, 결국 다음의 수학식 7을 푸는 문제로 귀결된다.
이렇게 구한
를 이용하여 최적 하이퍼평면에 대한 w(
) 및 최적 하이퍼평면에 대한 b(
)를 표현하면 다음의 수학식 8과 같다.
여기서, xr 및 xs는 yi가 각각 1, -1이 되는 지점에서의 임의의 지원 벡터이다. 그러면, 최적 하이퍼평면은 다음의 수학식 9와 같이 나타나고, 최적 하이퍼평면을 implicit 함수 형태로 표현했을 때의 좌변의 식(이하, '하이퍼 평면을 구성하는 식'이라 함)은 수학식 10의 f(x)가 될 것이다.
f(x)가 0이 되는 점들이 수학식 9에 나타낸 최적 하이퍼평면을 이루므로, f(x)를 계산하여 0보다 크면 특정인의 얼굴 영상과 동일한 것으로 판별될 수 있고, 0보다 작으면 특정인의 얼굴 영상과 동일하지 않은 것으로 판별될 수 있다.
지금까지는, 학습 데이터들, 즉 학습 영상에 대한 가버 필터링된 벡터들이 선형 분리될 수 있는 경우를 설명한 것으로, 상기 학습 데이터들이 선형 분리가 되지 않는다면, 커널 함수(kernel function)를 이용할 수 있다. 이 경우에 수학식 7에서의
는 다음의 수학식 11과 같이 표현된다.
여기서,
이고,
는 공간 변환 함수이다. 수학식 11의 결과를 이용하면 입력 데이터가 선형인 경우와 마찬가지로 하이퍼평면을 얻을 수 있다.
한편, 판별부(42)에서 동일인 여부를 판별하는 것은 입력된 가버 필터링된 벡터를 상기 수학식 10과 같은 최적 하이퍼평면을 구성하는 식에 대입하여 그 결과 값이 소정의 임계치를 넘는가를 기준으로 판별한다. 상기 임계치는 단순히 0으로 잡을 수도 있지만, 동일인이 아님에도 동일인으로 잘못 인식되는 경우 즉, 'false positive'인 경우를 방지하기 위해서는 상기 임계치를 0보다 큰 값으로 잡을 수 있다. 상기 임계치는 해당 얼굴 인식 케이스 별로 경험적 통계에 의하여 적절히 선택될 수 있을 것이다.
지금까지 도 1 내지 도 3의 각 구성요소는 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 것으로 구현할 수도 있다. 뿐만 아니라, 상기 구성요소들은 시스템 내의 하나 또는 그 이상의 컴퓨터들을 실행시키도록 구현될 수 있다.
도 5는 본 발명의 일 실시예에 따른 이진 판별 기준 생성 과정을 나타낸 흐름도이다.
먼저, 영상 입력부(10)를 통하여 학습 영상을 입력 받고(S10), 입력된 학습 영상을 디지털 화소 값으로 변환한다.
얼굴 로컬라이저(20)는 상기 변환된 디지털 화소 값으로부터 얼굴 영역을 추출하고, 상기 얼굴 영역에서 가버 필터를 적용할 소정 개수의 특징점들을 추출한다(S20). 상기 추출된 얼굴 영역에서 특징점을 추출하기 전에, 얼굴 크기 변환 과정 또는 히스토그램 평활화 과정을 부가적으로 거칠 수도 있다.
가버 필터부(30)는 추출된 특징점들 각각에 대해 복수의 방향성 및 주파수를 갖는 가버 필터들의 집합을 적용시켜 반응값들을 구하고, 이렇게 얻은 반응값들을 1차원 벡터 또는 어레이로 표현함으로써 가버 필터링된 벡터(Gabor-filtered vector)를 구한다. 그리고, 구한 가버 필터링된 벡터를 학습 데이터 저장부(50)에 저장한다(S30).
이 때, 만약 모든 학습 과정이 종료되었다면(S40의 예), 더 이상 학습 영상을 입력 받을 필요가 없으므로 다음 S50 단계로 진행하고, 그렇지 않다면(S40의 아니오), 계속하여 다시 학습 영상을 입력 받는 S10 단계로 진행한다.
이진 분류기(40)의 학습부(41)는 학습 데이터 저장부(50)에 저장된, 복수의 학습 영상에 대한 가버 필터링된 벡터들을 이용하여 이진 판별 기준을 생성한다(S50). 이진 분류기(40)로서 SVM을 사용한다고 하면, 학습부(41)에서 상기 이진 판별 기준을 생성하는 것은 최적 하이퍼평면을 구하는 과정이 될 것이다. 학습부(41)는 생성된 이진 판별 기준을 이진 분류기(40)의 판별부(42)에 제공한다. 이상으로 이진 판별 기준 생성 과정은 종료되고 이후부터는 인식 대상 영상 입력이 있는 경우 입력된 얼굴 영상이 특정인의 것인지, 즉 동일성을 판별하는 과정이 수행될 수 있다.
도 6는 본 발명의 일 실시예에 따라 인식 대상 영상으로부터 동일성 여부를 판단하는 과정을 나타낸 흐름도이다.
먼저, 영상 입력부(10)를 통하여 인식하고자 하는 영상, 즉 인식 대상 영상을 입력 받고(S60), 입력된 인식 대상 영상을 디지털 화소 값으로 변환한다.
그러면, 얼굴 로컬라이저(20)는 상기 변환된 디지털 화소 값으로부터 얼굴 영역을 추출하고, 상기 얼굴 영역에서 가버 필터를 적용할 소정 개수의 특징점들을 추출한다(S70). S20 과정에서와 마찬가지로 상기 추출된 얼굴 영역에서 특징점을 추출하기 전에, 얼굴 크기 변환 과정 또는 히스토그램 평활화 과정을 부가적으로 거칠 수도 있다.
그 다음, 가버 필터부(30)는 상기 추출된 특징점들 각각에 대해 복수의 방향성 및 주파수를 갖는 가버 필터들의 집합을 적용시켜 반응값들을 구하고, 이렇게 얻은 반응값들을 1차원 벡터 또는 어레이로 표현함으로써 가버 필터링된 벡터를 구한다(S80). 그리고, 구해진 가버 필터링된 벡터를 이진 분류기(40)의 판별부(42)에 제공한다.
이진 분류기(40)의 판별부(42)는 가버 필터부(30)로부터 제공된 가버 필터링된 벡터를 학습부(41)로부터 제공된 이진 판별 기준에 적용함으로써 동일인 여부를 식별한다(S90). 이진 분류기(40)로서 SVM을 사용한다고 하면, 판별부(42)에서 동일인 여부를 판별하는 것은 입력된 가버 필터링된 벡터를 상기 최적 하이퍼평면을 구성하는 식에 대입하여 그 결과 값이 소정의 임계치를 넘는가를 기준으로 판별하는 과정이 될 것이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.