이하, 첨부된 도면을 참조하여 본 발명을 설명한다.
도 2의 본 발명의 얼굴 인식 장치는 입력 영상으로 2차원 얼굴 영상, 보정을 위한 데이터로 3차원 얼굴 데이터를 사용하는 얼굴 인식 장치이다.
구체적으론, 입력 2차원 영상에서 얼굴 영역을 검출하는 얼굴 검출부(200), 상기 얼굴 영역에서 특징 정보를 추출하는 특징 추출부(201), 특징 정보를 사용해 정규화한 얼굴 영역에서 얼굴의 내외적 환경 변화 변수를 구하는 환경 변화 변수 산출부(202), 상기 환경 변화 변수와, DB 내 해당 사용자의 3차원 얼굴 데이터를 사용해 추정한 환경 변화 정도를 해당 사용자의 3차원 얼굴 데이터에 보정하는 얼굴 보정부(203), 그 보정으로 나온 얼굴 정보와, 상기 특징 추출부가 추출한 특징 정보 간 비교로 인식 결과를 구하는 특징 비교부(204)로 된 것이다.
이러한 장치의 동작은 다음과 같다.
먼저, 특징 추출부(201)는 얼굴 검출부(200)가 추출한 입력 2차원 영상 내의 얼굴 영역에서 특징 정보를 직접 추출한다.
즉, 종래와 같이 내외적 환경 변화가 보상된 얼굴 영역에서 특징 정보를 추출하지 않고, 보상되지 전의 얼굴 영역에서 특징 정보를 직접 추출한다.
다음, 추출한 특징 정보를 사용해 환경 변화 변수 산출부(202)가 얼굴 영역을 정규화한다.
그런 후, 정규화하여 나온 얼굴 영역에서 내외적 환경(예: 얼굴 포즈, 주변 조명) 변화 변수를 산출한다.
이어, 산출한 환경 변화 변수를 얼굴 보정부(203)가 DB 내 해당 사용자의 3차원 얼굴 데이터에 적용하여, 내외적 환경 변화 정도를 추정한다.
구체적으론 다음과 같다.
먼저, 산출한 환경 변화 변수를 DB 내 해당 사용자의 3차원 얼굴 데이터에 적용하여, 다양하게 환경 변화(예: 얼굴 포즈 변화, 주변 조명 변화)된 여러 장의 2차원 얼굴 영상들을 생성한다.
이어, 여러 장의 2차원 얼굴 영상들을 환경 변수(예: 얼굴 포즈, 주변 조명) 별로 분류한다.
다음, 분류된 2차원 영상에서 주성분 분석 (Principle Components Analysis, PCA)을 통해 해당 사용자의 고유 얼굴을 구한다.
그런 후, 해당 사용자의 고유 얼굴에서 환경(예: 얼굴 포즈, 주변 조명 등) 변화 정도를 추정한다.
특히, 클래스 형식으로 추정한다.
예컨대, "얼굴 포즈 변화 3번째 클래스" 형식으로 추정한다.
여기서, "3번째 클래스"는 『 10°~ 15° 포즈 변화, 좌측 측면 조명 형식 』등으로 특정 범위를 표현한 것이다.
상기 클래스는 환경 변수별로 변화 정도를 구분한 것이며, 1번째 클래스, 2번째 클래스, 3번째 클래스, ... 등으로 구성된다.
예컨대, 포즈 변화는 좌측 45°~ 우측 45°를 15°간격으로 나누어 1번째 클래스, 2번째 클래스, 3번째 클래스, ... 등으로 구성될 수 있다.
그리고, 조명 변화는 좌측, 정면, 우측 3개의 클래스로 구성될 수 있다
다음, 이렇게 추정된 환경 변화(예: 포즈 변화, 조명 변화) 정도를 DB 내 해당 사용자의 3차원 얼굴 데이터에 보정한다.
그런 후, 그 보정으로 나온 얼굴 정보와, 입력된 2차원 영상 내 얼굴 영역에서 직접 추출한 해당 사용자의 얼굴 특징 정보를 특징 비교부(204)가 비교한다.
그래서, 그 비교한 결과를 통해 얼굴 인식 결과를 얻게 된다.
도 2의 본 발명의 얼굴 특징 추출 과정은 내외적 환경 변화 보상이 종래와 같은 입력 영상이 아닌 데이터베이스(DB)에서 이루어져, 한 번만 수행하면 된다.
참고로, 종래는 얼굴 정규화를 위한 특징 추출과, 얼굴 비교를 위한 특징 추출을 수행해야 한다. 얼굴 정규화를 위한 특징 추출은 내외적 환경 변화가 보상되지 않은 영상에서, 얼굴 비교를 위한 특징 추출은 내외적 환경 변화가 보상된 영상에서 수행된다.
도 2의 본 발명의 얼굴의 내외적 환경(예: 얼굴 포즈, 주변 조명, 표정, 화장, 장신구 등) 변화 보상은 3차원 얼굴 데이터를 이용하기 때문에, 보상 과정에서 오류 영역이 발생하지 않는다.
참고로, 2차원 영상으로 내외적 환경 변화를 보상을 수행할 경우 오류 영역이 발생할 수 있다. 특히, 3차원 객체가 2차원 영상으로 사용될 때 얼굴의 구조적 정보를 대부분 잃어버리기 때문에 얼굴의 포즈 변화를 보상하여 정면 영상을 생성해야 할 경우 오류 영역이 발생할 확률이 높다.
도 3은 본 발명에 따른 얼굴의 내외적 환경 변화 구체적으론, 얼굴 포즈 변화와 주변 조명 변화를 실시간으로 동시 추정하는 학습 기반의 추정 알고리즘을 모식화한 것이다.
상기 학습 기반의 추정 알고리즘은 학습 부분과 추정 부분으로 구성된다.
먼저, 학습 부분에서는 입력 영상에서 얻은 얼굴의 내외적 환경 변화 변수를 DB 내 해당 사용자의 3차원 얼굴 데이터에 적용한다. 다음, 그 결과로 나온 다양하게 포즈 및 조명 변화된 여러 장의 2차원 얼굴 영상들을 포즈 클래스 또는 조명 클래스로 분류하고, 분류된 영상들을 사용해 2차원 - 3차원 포즈 및 조명 추정 분류기(예: 다중 계층 분류기(Multi-Layer Perceptron, MLP))를 학습시킨다.
추정 부분에서는 학습 부분에서 학습시켜 나온 얼굴 영상에서 포즈 및 조명 변화 정도를 클래스 형식으로 추정한다. 예컨대, "얼굴 포즈 및 조명 변화 3번째 클래스" 형식으로 포즈 및 조명 변화를 추정한다.
참고로, 종래는 얼굴 포즈 변화 13°, 조명 방향 좌상 17°" 형식이다.
종래와의 차이점은 포즈 및 조명 변화 정도를 클래스 형식으로 추정한다는 것이다.
이러한 추정은 정확도는 저하되나, 분석적 방법이 아닌 학습적 방법으로 이루어지므로 인해, 포즈 및 조명 변화를 실시간으로 동시에 추정 가능하게 한다.
도 4의 3차원 얼굴 데이터는 본 발명에 따른 3차원 얼굴 데이터의 예이다.
3차원 레이저 스캐너를 이용하여 획득한 BERC(Biometrics Engineering Research Center) DB로 된 것으로, 얼굴의 구조적 정보와 광학적 정보를 모두 가지고 있다.
도 5의 3차원 얼굴 데이터는 본 발명에 따른 3차원 얼굴 데이터의 다른 예로, 3차원 레이저 스캐너로 획득한 얼굴의 구조적 정보와 광학적 정보를 모두 포함 하는 FRGC(Face Recognition Grand Challenge) DB로 된 것이다.
도 6의 2차원 얼굴 영상은 BERC(Biometrics Engineering Research Center) 영상의 여러 예로, 좌 45°~ 우 45°까지 15°간격으로 포즈 변화를 가질 수 있으며, 안경을 착용하는 사람의 경우, 안경을 착용한 경우와 착용하지 않은 경우 각각에 대한 포즈 변화를 가질 수 있다.
도 7의 2차원 얼굴 영상은 FRGC(Face Recognition Grand Challenge) 영상의 여러 예로, 제어된 환경에서 고해상도 카메라 또는, 일반 환경에서 저해상도 카메라로 입력될 수 있다.
도 8의 얼굴 인식 방법은 내외적 환경 변화 변수로 얼굴 포즈 변화와 주변 조명 변화가 고려된 본 발명의 얼굴 인식 방법의 예이다.
구체적으론, 입력 2차원 영상 내의 얼굴 영역에서 직접 추출한 특징 정보를 사용해 정규화한 얼굴 영역에서 산출한 얼굴 포즈, 주변 조명 변화 변수와(S100 ~ S103), DB 내 해당 사용자의 3차원 얼굴 데이터를 사용해 클래스 형식으로 추정한 얼굴 포즈 및 주변 조명 변화 정도를(S104 ~ S106) 해당 사용자의 3차원 얼굴 데이터에 보정하고(S107), 그 보정으로 나온 얼굴 정보와, 입력 영상에서 직접 추출한 특징 정보 간 비교로 인식 결과를 얻게 된다(S108).
종래와의 차이점은 내외적 환경 변화 보상이 입력 영상이 아니고, 데이터베이스에서 이루어진다는 것이다.
즉, 내외적 환경 변화가 보상되기 전의 입력 2차원 얼굴 영상에서 직접 추출한 특징 정보를 이용해 얻은 내외적 환경 변화 변수를 데이터베이스에 반영해 생성한 입력 영상과 동일한 환경의 데이터베이스에서 이루어진다는 것이다.
* 실험 결과 및 분석
(참조 논문: 제20회 영상처리 및 이해에 관한 워크샵 2008.2.20-2.22. 포즈 및 조명 변화에 강인한 얼굴인식 시스템 양욱일, 손광훈 연세대학교 전기전자공학과 생체인식연구센터)
본 발명의 얼굴 인식 시스템에 대한 실험 및 분석 과정은 다음과 같다.
본 실험에서는 BERC 데이터베이스를 이용하였다.
먼저, BERC 3차원 얼굴 데이터와 openGL 프로그램밍으로 좌 45°~ 우 45°범위에서 1°간격으로 포즈 변화된 2차원 얼굴 영상을 생성하며, 각 영상은 좌측, 정면, 우측 3가지 조명 효과 가운데 하나의 조명 효과를 가진다.
다음, 이렇게 생성된 2차원 얼굴 영상을 적절한 클래스로 구분하고, 주성분 분석(Principle Components Analysis, PCA)을 통해 고유 얼굴을 구한다.
그런 후, 그 고유 얼굴을 이용하여 얼굴 영상을 특징 벡터로 변환하고, 각 포즈 간의 벡터 거리를 계산한 후, 이를 이용하여 포즈 간 평균 벡터 거리를 계산 한다.
[표 1]은 각 포즈 간 평균 벡터 거리의 예이다.
ID 001
|
정면°
|
좌 5°
|
좌 10°
|
좌 15°
|
.. |
정면
|
0 |
|
|
|
|
좌 5°
|
372.63 |
0 |
|
|
|
좌 10°
|
1103.82 |
468.37 |
0 |
|
|
좌 15°
|
2598.77 |
1273.40 |
668.31 |
0 |
|
.. |
|
|
|
|
|
[표 2]는 포즈 간 평균 벡터 거리를 이용하여 구한 포즈 클래스 분류 결과로, 좌 45°~ 우 45° 범위의 포즈 변화가 총 13개의 클래스로 구분된다. 조명 변화의 경우 좌, 정면, 우 3개의 클래스로 구분된다.
클래스 |
범위 |
대표값 |
클래스 |
범위 |
대표값 |
정면 |
좌 8° ~ 우 8° |
|
|
|
좌 1 |
~ 좌 20° |
14° |
우 1 |
~우 20° |
14° |
좌 2 |
~ 좌 26° |
23° |
우 2 |
~우 26° |
23° |
좌 3 |
~ 좌 31° |
29° |
우 3 |
~우 31° |
29° |
좌 4 |
~ 좌 36° |
33° |
우 4 |
~우 36° |
33° |
좌 5 |
~ 좌 41° |
39° |
우 5 |
~우 41° |
39° |
좌 6 |
~ 좌 45° |
43° |
우 6 |
~우 45° |
43° |
참고로, 각 클래스의 대표 벡터와 경계 벡터 사이의 벡터 거리가 일정 임계치 이하가 되게 클래스를 구분하였다. 임계치를 증가시킬 경우 포즈 클래스 수가 감소하고, 임계치를 감소시킬 경우 포즈 클래스 수가 증가한다. 우측 포즈 변화의 경우 좌측 결과와 대칭성을 이루게 한 것이다.
다음, [표 2]의 클래스 구분에 따라 포즈 분류기, 조명 분류기를 각각 학습한다. 학습 결과 평가를 위해 한 실험 결과는 [표 3]과 [표 4]에 나타나 있다. [표 3]은 포즈 추정, [표 4]는 조명 추정 실험 결과이다.
|
실험 1 |
실험 2 |
학습데이터 |
BERC 200명 (임의선택) x 91 포즈 변화 x 3 조명 변화 |
BERC 300명 x 91 포즈 변화 x 3 조명 변화 |
테스트 데이터 |
BERC 100명 (나머지) x 91 포즈 변화 x 3 조명 변화 |
BERC 스테레오 300명 x 7 포즈 변화 |
정확도 |
91.0% (100회 반복 결과) |
96.38% (4048 / 4200) |
|
실험 1 |
실험 2 |
학습데이터 |
BERC 200명 (임의선택) x 91 포즈 변화 x 3 조명 변화 |
BERC 300명 x 91 포즈 변화 x 3 조명 변화 |
테스트 데이터 |
BERC 100명 (나머지) x 91 포즈 변화 x 3 조명 변화 |
FRGC 2차원 데이터 |
정확도 |
99.3% (100회 반복 결과) |
98.79% (11197 / 11334) |
[표 5]는 추정된 포즈 변화 및 조명 변화 변수를 기반으로 3차원 얼굴 데이터와 openGL 프로그래밍을 이용하여 환경 변화 정도가 적용된 3차원 얼굴 데이터를 생성하고, 이 생성된 3차원 얼굴 데이터와 입력 영상을 비교하여 나온 최종 인식 결과인 것이다.
|
실험 1 |
실험 2 |
학습데이터 |
BERC 3D 300명 |
FRGC 3D 285명 x 3 데이터 |
테스트 데이터 |
BERC 스테레오 300명 x 7 포즈 변화 |
FRGC 2차원 데이터 |
정확도 |
95.67% (2009/2100) |
92.39% (10472 / 11334) |