보안 제품정보


SIFT-Grid를 사용한 향상된 얼굴인식 방법(1) 2014.04.30


\r\n

\r\n

다양한 환경변수를 고려해 인식률 향상

\r\n

얼굴인식 시스템은 IT 기술의 발전으로 정보 보안, 사람과 컴퓨터간의 상호작용(Human Computer Interaction) 그리고 상황 인식 컴퓨팅(Context Aware Computing) 등의 다양한 응용 분야에서 활용되고 있다. 하지만 얼굴은 조명, 포즈, 표정의 변화, 장신구의 착용, 시간의 변화에 따른 노화에 의해 다양한 형태로 변하기 때문에 얼굴인식을 통한 개인의 식별은 어려운 문제다. 그러므로 얼굴인식 시스템의 성능 향상을 위해서는 개인 얼굴의 변화에 강인한 특징을 추출해야 한다.

\r\n


\r\n

김 성 훈 │ 경희대학교 컴퓨터공학과 박사

\r\n

김 형 호 │ 세한대학교 컴퓨터교육과 교수

\r\n

이 현 수 │ 경희대학교 컴퓨터공학과 교수

\r\n


\r\n


\r\n

얼굴인식 시스템의 대표적인 특징 추출 방법은 주성분분석법(PCA : Principal Component Analysis)과 선형판별분석법(LDA : Linear Discriminant Analysis)으로 선형변환행렬을 사용해 조건에 만족하는 특징들을 추출한다. PCA는 학습 얼굴 이미지로부터 얼굴공간을 구성하는 기저벡터인 고유얼굴(eigenface)을 계산해 얼굴인식에 사용된다[1][10]. 또한, LDA는 학습 얼굴 이미지들로부터 클래스 내부의 분산은 줄이고 클래스 간의 분산은 증가시키는 방향으로 입력 특징 값을 변화시키는 행렬을 계산해 얼굴인식에 적용한다[5][11].

\r\n


\r\n

그리고 PCA나 LDA의 변형된 알고리즘에 대한 연구를 통해 얼굴인식 문제를 해결하고 있다[15][14]. 하지만 PCA 또는 LDA로부터 검출된 특징들은 빛의 변화와 얼굴의 표정 변화에 민감하기 때문에 얼굴의 인식 성능이 낮다. 또한 시스템의 입력은 훈련이미지와 동일하게 얼굴 크기 및 방향 등의 조건이 일치해야 정확한 인식 결과를 획득할 수 있다.

\r\n


\r\n

SIFT(Scale Invariant Feature Transform) 알고리즘은 객체 인식, 중복성 검출 및 객체 추적 등의 다양한 응용분야에서 우수한 성능을 보인다[3][7][12]. 그리고 Lowe에 의해 제안된 SIFT 기반의 객체인식 방법은 특징 추출과 특징점(Keypoint) 매칭의 두 단계로 구성된다[4]. 먼저 특징 추출 단계는 이미지의 다양한 해상도 상에서 독특하고 안정적인 지역적 특징점들을 검출한 후, 특징점을 크기와 회전에 불변하는 기술자(Descriptor)로 표현하며 매칭 단계에서는 각 훈련 이미지로부터 추출된 특징점의 데이터베이스 상에서 테스트 이미지의 각 특징점과 가장 일치되는 특징점 쌍을 찾음으로 수행된다.

\r\n


\r\n

이 매칭 방법은 특징점의 기술자에 대한 일치만을 고려하고, 지역적인 위치에 대한 일치는 고려하지 않는다. 따라서 일반적인 객체와 비교해 비강체로 매끈하고 대칭적인 얼굴 영역을 대상으로 Lowe의 매칭 방법을 적용할 경우 지역적인 불일치가 발생되며 인식 성능이 낮아지는 원인이 된다.

\r\n


\r\n

최근 얼굴인식에서 특징점의 지역적인 불일치 문제를 해결하기 위한 연구들이 진행되고 있다[2][6][8][9][13]. [2][6][13]의 논문에서는 두 눈과 입을 기준으로 얼굴 영역을 분할한 후, 각 분할영역 내의 특징점들을 대상으로 매칭 과정을 수행함으로써 지역적인 불일치 문제를 해결했다. 하지만 이 방법들은 눈과 입의 검출 작업이 추가적으로 수행되기 때문에 얼굴인식 과정에서 계산량이 증가되며, 눈과 얼굴 검출기의 정밀도가 얼굴인식의 성능에 많은 영향을 준다. 반면 SIFT-Grid 방법을 사용한 [8]과 [9]의 논문에서는 얼굴 영역의 가로와 세로를 특정 비율로 나누어 분할영역들을 결정하고 해당 영역에 대해 매칭을 수행함으로써 지역적인 불일치 문제를 해결했다.

\r\n


\r\n

SIFT 기반의 얼굴인식 시스템에 있어 또 다른 문제는 매칭 과정에서 테스트 이미지의 각 특징점은 훈련 데이터베이스의 모든 특징점을 대상으로 유사성의 비교 연산이 수행되기 때문에 많은 계산량이 필요하다. 따라서 동일 객체의 다양한 얼굴 이미지로부터 유사한 특징점들은 제거하고 상이한 특징점들의 병합을 통해 템플릿을 구성함으로써 매칭 과정의 계산량은 감소시키고, 인식율은 향상시킬 수 있다.

\r\n


\r\n

여기서 말하고자 하는 것은 훈련 얼굴 이미지들로부터 특징점들에 대한 통합 템플릿의 구성 방법을 SIFT-Grid 기반의 얼굴인식 시스템에 추가해 인식 성능의 향상을 목적으로 한다. 제안된 방법은 먼저 SIFT-Grid 방법을 통해 훈련 이미지들의 얼굴영역을 몇 개의 분할영역으로 나누고, 각 분할영역을 구성하는 특징점들 간의 유사성을 비교 분석해 통합 템플릿을 생성했다.

\r\n


\r\n

또한 통합 템플릿으로부터 테스트 이미지의 효과적인 식별을 위한 유사도 계산 방법을 제안한다. SIFT-Grid 기반의 제안된 얼굴인식 시스템의 유효성을 확인하기 위해 다양한 실험을 수행한 결과 성능 향상을 확인할 수 있었다.

\r\n


\r\n

관련 연구

\r\n


\r\n

SIFT 알고리즘

\r\n

Lowe에 의해 제안된 SIFT는 크기, 회전 그리고 빛의 변화에 강인한 지역적인 특징점을 검출하는 알고리즘으로 최근 영상 처리 및 패턴 인식 분야에서 많이 적용되고 있다. SIFT는 4단계를 통해 특징점들의 특징을 정의한다[4]. 먼저 크기와 회전 변화에 강인한 특징점의 위치를 검출하기위해 입력 이미지의 다양한 해상도를 대상으로 DoG(Difference-of- Gaussian) 이미지들을 생성한다. 이때 DoG 이미지는 식 1과 같이 각 해상도에 해당하는 가우시안 함수를 이미지와 컨볼루션 한 것의 차로 표현되며, 가우시안 함수는 식 2와 같다.

\r\n

\r\n

\r\n


\r\n

다음 단계에서는 각 해상도의 DoG 이미지에서 모든 픽셀의 값을 이웃하는 8 픽셀 그리고 이전 및 이후 해상도에서 이웃하는 각 9 픽셀과 비교해 지역적으로 최소 또는 최대값인 경우 특징점의 후보로 선택한다. 세 번째 단계에서는 명암 대비가 낮은 후보 특징점과 모서리가 아닌 에지(Edge) 위치의 특징점을 제거하기 위해 각각 DoG 값의 임계치와 Hessian 행렬 기반의 비율을 사용한다. 마지막 단계에서는 gradient 벡터의 크기(Magnitude)와 방향(Orientation)을 계산한 후 특징점의 기술자를 정의한다. 크기 와 방향 은 특징점 픽셀과 인접한 픽셀들로부터 식 3과 식 4와 같이 계산된다.

\r\n

\r\n

\r\n


\r\n

특징점의 기술자는 16×16 픽셀의 인접 영역에 대해 가장 빈도수가 높은 각도를 기준으로 방향을 정규화한 후 인접 영역을 4×4의 영역으로 나누어 각 영역의 방향들을 8의 빈을 가지는 히스토그램으로 표현한다. 따라서 SIFT 특징점은 위치, 크기, 방향 그리고 128차원의 기술자로 구성된다.

\r\n


\r\n

SIFT 기반의 이미지 매칭 방법

\r\n

Lowe가 제안한 이미지 매칭 방법 [4]는 두 이미지의 특징점들의 기술자간의 유클리드 거리를 계산하고, 한 특징점에 대응되는 첫 번째와 두 번째로 가까운 특징점들의 거리에 대한 비율을 확인해 매칭된 특징점 쌍을 결정한다. 그리고 특징점 쌍들 간의 기하학적 일치성을 확인한 후 두 이미지간의 유사도를 계산한다.

\r\n

\r\n

\r\n

\r\n

그림 1은 두 개의 얼굴 이미지를 대상으로 Lowe의 매칭 방법을 수행한 결과를 나타내고 있다. 그림 1에서 점은 각 특징점의 위치를 표시한 것이고, 실선과 점선은 매칭된 특징점 쌍을 의미한다. 이중 점선으로 연결된 쌍은 지역적인 불일치를 나타낸다. 이러한 지역적 불일치 쌍들은 기하학적 일치성의 확인 과정에서 제거되며, 동일 얼굴의 이미지임에도 불구하고 낮은 유사도 점수가 결정되어 오인식의 원인이 될 수 있다.

\r\n


\r\n

Bicego는 이와 같은 지역적 불일치 문제를 해결하기 위해 이미지를 특정 비율의 중첩된 부분영역들로 나누는 SIFT-Grid 방법을 제안했다[8]. 그리고 두 이미지간의 유사도는 먼저 각 부분영역에 대응되는 특징점의 기술자 간의 유클리드 거리를 계산해 최소값을 부분영역의 거리로 결정하고, 모든 부분영역 거리의 합에 대한 평균을 두 이미지의 유사도 점수로 결정한다.

\r\n


\r\n

얼굴인식은 테스트 이미지와 훈련 데이터의 모든 이미지간의 유사도 점수를 계산한 후 가장 작은 점수를 획득한 훈련 이미지의 클래스로 결정된다.

\r\n


\r\n

Lowe와 Bicego는 테스트 이미지와 훈련 이미지 각각에 대해 유사도 점수를 계산해 테스트 이미지의 얼굴을 식별하기 때문에 유사도 점수에 얼굴 클래스 전체에 대한 특징정보가 반영되지 않는다. [9]의 논문은 이미지의 각 분할영역의 특징점과 전체 훈련이미지의 동일 분할영역에 포함된 특징점들 중 가장 비슷한 특징점을 가진 얼굴 클래스를 찾고, 해당 클래스의 유사도 점수를 증가시키는 특징점 보팅(Keypoints Voting)방법을 제안해 인식율을 향상시켰다.

\r\n


\r\n

이번 절에서 살펴본 매칭 방법들은 테스트 이미지의 모든 훈련 이미지에 포함된 특징점들 간의 유사연산이 반복적으로 수행되기 때문에 많은 계산량이 요구된다. 그러므로 훈련 데이터에 포함된 특징점의 수는 감소시키면서 얼굴인식율은 향상될 수 있는 방법이 필요하다.

\r\n


\r\n

제안하는 얼굴인식 시스템

\r\n

이번 장에서는 얼굴인식의 매칭 과정에서 발생되는 계산량의 감소를 위해 제안된 통합 템플릿의 구성 방법과 통합 템플릿으로부터 테스트 이미지의 효과적인 식별을 위해 제안된 유사도 계산 방법에 대해 기술했다.

\r\n


\r\n

통합 템플릿 구성

\r\n

제안된 방법은 먼저 인식을 위한 N개의 얼굴 클래스를 대상으로 동일한 해상도를 갖는 얼굴 이미지들을 수집해 훈련 데이터를 생성하고 모든 이미지의 SIFT 특징점을 검출한다. 그리고 각 훈련 이미지는 가로와 세로를 각각 동일한 비율로 분할한 후 K개의 중첩된 부분영역들을 결정한다. 한 얼굴 클래스의 통합 템플릿은 동일 부분영역의 특징점을 대상으로 비슷한 특징점은 제거하고, 상이한 특징점들을 병합함으로써 획득된다.

\r\n

\r\n

\r\n


\r\n

따라서 하나의 통합 템플릿은 부분영역의 수와 동일한 K개의 병합된 특징점 리스트로 구성된다. 그림 2는 N개로 구성된 훈련 집합 중 1번 얼굴 클래스의 통합 템플릿을 획득하기 위한 부분영역의 특징점 병합 과정의 예를 나타내고 있다. 이때 부분영역을 결정하기 위한 가로와 세로의 분할비율은 1/3을 사용했다. 부분영역 특징점 병합 과정은 유사도 행렬 계산, 임계치를 통한 히스토그램 계산 그리고 특징점 리스트 갱신인 3단계로 구성된다.

\r\n


\r\n

n번째 클래스의 부분영역 k에 포함된 M개의 현재(t=0) 특징점 리스트는 식 (5)와 같이 정의되며, fm은 m번째 특징점의 기술자이다.

\r\n

\r\n

\r\n


\r\n

첫 번째 단계는 특징점 리스트 Ln(t)의 i와 j번째 기술자간의 거리를 계산해 유사도 행렬을 획득한다. 유사도 행렬 는 S식 (6)과 같으며, d(fi,fj)는 두 특징점의 기술자에 대한 유클리드 거리를 의미한다.

\r\n

\r\n

\r\n


\r\n

다음 단계에서는 빈도수가 높은 비슷한 특징점들을 찾기 위해 식 (7)과 같이 유사도 행렬 Si,j에 비슷한 정도에 대한 임계치 Td을 이용해 이진 유사도 행렬 BSi,j을 획득한다. 그리고 이진 유사도 행렬의 각 열에 대해 식 (8)을 적용해 히스토그램 을 계산하고, 중에서 최대값을 Hmax에 기록한다. 또한 Hmax에 속하는 열의 요소 값에 대해 인 인덱스를 Hmax에 기록한다.

\r\n

\r\n

\r\n


\r\n

이때 Hmax가 1보다 큰 경우 특징점 리스트 갱신 단계를 수행하다. 갱신 단계는 Hmax에 포함된 비슷한 특징점들을 Ln(t)로부터 제거해 새로운 특징점 리스트 Ln(t+1)을 생성한다. 그리고 Ln(t)로부터 Hmax에 포함된 특징점의 기술자에 대한 평균을 계산해 Ln(t+1)에 추가한다. 이와 반대로 Hmax가 1보다 작은 경우 현재 특징점 리스트 Ln(t)을 n번째 클래스의 부분영역 k의 병합된 특징점 리스트로 결정한다.

\r\n


\r\n

모든 부분영역에 대한 특징점 병합 과정의 수행을 통해 n번째 얼굴 클래스의 통합 템플릿 Tn은 식 (9)와 같이 정의되며, 식에서 k는 부분영역의 수를 그리고 Mk는 번째 부분영역의 병합된 특징점의 수를 의미한다.

\r\n

\r\n

\r\n


\r\n

유사도 계산 방법

\r\n

얼굴은 동일한 지역적 특징들로 구성되기 때문에 다른 객체간의 동일한 부분영역에서 비슷한 SIFT 특징점들이 검출될 수 있으며, 같은 객체의 다른 이미지 상에서 SIFT 특징점들이 표정, 빛 등의 영향으로 다른 특성을 가지고 나타날 수 있다. 따라서 테스트 이미지의 한 특징점에 대한 유사한 얼굴 클래스를 결정하기 위해 모든 훈련 이미지의 동일 부분영역의 특징점들의 거리비교를 수행하는 [9]의 특징점 보팅의 결과가 동일 객체보다 다른 객체의 클래스로 판정될 수 있다.

\r\n


\r\n

이 연구에서는 각 클래스의 통합된 템플릿과 테스트 이미지를 일대일로 비교 분석해 유사도 점수와 보팅 점수를 계산한다. 테스트 이미지의 k부분영역에 존재하는 p번째 특징점 ftest,p와 번째 클래스의 통합 템플릿 Tn의 k부분영역간의 유사도 점수 Sn,p은 식 (10)과 같이 유클리드 거리의 계산 결과들로부터 최소값을 선택해 결정한다.

\r\n

\r\n

\r\n


\r\n

테스트 이미지와 n번째 클래스의 유사도 점수 Sn은 식 (11)과 같이 모든 부분영역의 특징점들의 유사도 점수 Sn,p가 유사도 임계치 Ts보다 작거나 같은 경우 누적해 계산한다. 이때 유사도 임계치를 만족하는 특징점의 수를 카운팅하는 유사도 보팅 점수 VSn는 동시에 계산된다.

\r\n

\r\n

\r\n


\r\n

테스트 이미지에 대한 식별은 가장 큰 유사도 보팅 점수 VSn을 획득한 얼굴 클래스로 결정하며, 만약 최대 유사도 보팅 점수를 가지는 클래스가 둘이상인 경우 이들 중에서 유사도 점수 Sn 중 가장 작은 값을 가진 얼굴 클래스로 결정한다.

\r\n


\r\n

<다음호에 계속> ※ 이번 원고는 2회에 나눠서 게재되며 참고문헌은 다음회에 게재됩니다.

\r\n


\r\n


\r\n

[월간 시큐리티월드 통권 제207호(sw@infothe.com)]

\r\n


\r\n

<저작권자 : www.securityworldmag.co.kr) 무단전재-재배포금지>

\r\n