Active Discrete Wavelet Transform을 이용한 얼굴 특징 점 추출
상태바
Active Discrete Wavelet Transform을 이용한 얼굴 특징 점 추출
  • CCTV뉴스
  • 승인 2010.08.31 00:00
  • 댓글 0
이 기사를 공유합니다

웨이브렛 변환은 영상 처리 기술 중 가장 널리 사용되고 있는 방법이다. 본 고에서는 PC 카메라를 이용하여 취득된 얼굴 영상을 능동형 이산 웨이브렛 변환을 취하여 얼굴 영상 신호 변환을 하였다. 변환된 영상 신호에 대하여 수직, 수평 투영법을 이용하여 얼굴의 특징을 추출하였으며, 추출 결과로부터 얼굴 인식을 하였다. 제안된 능동형 이산 웨이브렛 변환을 통해 얼굴 인식률 향상을 가져왔으며, 특징 점을 신속하고 정확하게 추출할 수 있었고, 기존 이산 웨이브렛 변환을 이용한 특징 점 추출방식에 비해 향상된 정확도와 안전성을 보였다.

얼굴 인식 알고리즘

얼굴 인식 기술은 기본적으로 얼굴 검출, 얼굴 인식의 두 단계의 과정을 거쳐 이루어지며, 얼굴 검출은 인식의 전 처리 단계로써 정확한 얼굴 영역의 추출을 통해 인식기의 학습 및 분류 작업의 기반이 되기에 실제 인식기의 인식률에 가장 큰 영향을 미친다.

최근에 얼굴영상에 대한 학습을 이용한 방법이 각광을 받고 있는데, 그중에서도 사람이 직접 입력신호에 대한 답을 제시하는 지도학습(supervised learning)기법보다 입력 신호로부터 자동으로 패턴을 학습하는 자율학습(unsupervised earning)기법들이 많이 쓰이고 있다. 자율학습의 대표적인 방법론은 PCA(Principal Component Analysis)기법이다.

PCA는 트레이닝 데이터로부터 데이터를 잘 표현할 수 있는 가장 중요한 축, 즉 기저벡터(basis vector)들을 찾아 효율적으로 데이터의 차원을 줄일 수 있는 장점이 있다. 그러나 입력 영상의 크기가 커짐에 따라 기저벡터를 구하는 계산량이 매우 높고, 트레이닝 셋이 변할 때마다 기저벡터가 변화하는 단점이 있다. 그뿐만 아니라 PCA는 얼굴 전체에 대해 분석하기 때문에 조명 및 표정, 포즈의 변화에는 낮은 인식률을 보이고 있다.

전체 얼굴 영상의 특징 값을 사용하는 경우 부분적인 조명 혹은 포즈의 변화가 특징 값 전체에 영향을 주기 때문이다. 이것을 개선하기 위해서 눈, 코, 입, 귀 등의 얼굴 구성 요소를 사용하여 얼굴 인식을 수행한다. 얼굴 구성 요소를 사용하는 경우 얼굴 구성 요소마다 특징 값을 추출하므로 조명 및 포즈의 변화는 해당 영역의 얼굴 구성 요소의 특징 값에만 영향을 주게 된다.

그러므로 얼굴의 변화에 대한 특징 값의 변화를 줄일 수 있게 된다. 그리고 지역적인 특징 값을 이용하기 위해서는 쉽고 정확하게 특징 점을 추출하는 것이 중요하다. 최근 영상에 대해서 이치화, 에지 추출을 하며 적분 투영이라는 방법을 많이 사용하고 있다. 본 고에서는 이 방법을 바탕으로 능동형 웨이브렛 변환을 통해 특징 점을 찾았다.

Discrete Wavelet Transform의 이론적 배경
 
신호 처리 분야가 비약적으로 발전한 근거가 된 푸리에 변환은 시간 영역과 주파수 영역 간의 변환을 위해 기저 함수 sine, cosine 함수만 사용하였다. 하지만 푸리에 변환은 신호 데이터에 불연속성, 날카롭게 도출된 부분(고주파 성분)이 포함되면 신호의 특징 분석이 어렵고, 신호의 시간 정보와 주파수 정보를 파악할 수 없다는 단점이 있다.

그림1. 푸리에 변환과 웨이브렛 변환의 기저 함수 비교
 웨이브렛은 기본 함수로 sine, cosine 함수 외에 웨이브렛 모함수를 사용하는데, 각 주파수 영역에 따라 변화하는 다양한 기저 함수를 생성하여 사용한다. 즉, 웨이브렛에서는 시간 정보와 주파수 정보를 동시에 파악하는 게 가능하다.

그림1은 푸리에 변환의 기저 함수와 웨이브렛의 기저 함수를 비교한 것이다. (a)는 윈도우를 이용한 푸리에 변환으로, 시간과 주파수 영역에서 모양이 같은 입력 신호의 특성을 무시한 채 획일적인 변환만을 수행한다. 반면 (b)는 입력 신호의 특성에 맞춰 시간 영역에서 높은 해상도를 잘 분석할 수 있도록 너비가 넓다.

웨이브렛에 대한 각 분야의 정의는 모두 다르다. 수학에서는 웨이브렛을 '데이터나 함수, 혹은 연산자를 서로 다른 주파수 요소로 분할해주는 툴'로 정의하고 있고, 공학 분야에서는 '필터의 반복 적용으로 뽑아내는 분리된 파형'으로 정의하고 있다.

웨이브렛 변환의 종류는 크게 연속 웨이브렛 변화(continuous wavelet transform)과 이산 웨이브렛 변환(discrete wavelet transform)으로 나누어진다. 이산 웨이브렛 변환은 1985년 피랑스의 수학자 Yves Meyer에 의해 수학적인 토대가 형성되었다. Meyer는 J.Morlet과 A.Grossman에 의해 정리되어진 연속 웨이브렛 변환 이론으로부터 이분 구간 샘플링을 통한 직교 웨이브렛 및 이를 이용한 이산 웨이브렛 변환을 제시하였고, 이후 1987년 Ste phan Mallat 및 Meyer에 의해 이산 웨이브렛 변환의 한 방법으로 다해상도 분석(Multi-Resolution Analysis)방법을 발표했다. 그리고 Daubechies가 간단하면서 독창적인 방법으로 옹골받침(compactly supported)을 갖는 정규 직교 웨이브렛을 생성할 수 있는 방법을 제안하면서 현재까지 다양한 분야에서 폭넓게 응용되고 있으며, 웨이브렛 변환은 영상 압축, 노이즈 제거, 경계선 추출 등 많은 분야에서 사용 되어지고 있다.

웨이브렛 변환

웨이브렛은 수많은 애플리케이션에서 디지털 데이터를 표현하는데 매우 적합한 데이터 표현 방식이며, 데이터 전체를 표현한 근사 데이터(Approximations data)와 상세 데이터(detail data)로 표현한다. 
 



그림 3. 모체 웨이브렛의 신축 
 일단 원형 웨이브렛(prototype wavelet)을 압축/전이(dilation/ translation)하여 구한다. 수학적으로 표현하면 다음과 같다.

         (1)

여기서 a는 압축 계수이고, b는 전이 계수다. ψ(x)는 admissibility조건(진동하고, 진폭이 급히 '0'으로 수렴하며, 적분했을 때 '0')을 만족하는 함수이다. a<1으면 폭이 작은 고주파 웨이브렛이 되고, a>1면 폭이 큰 저주파 웨이브렛이 된다.

그림 3은 압축된 웨이브렛을 나타낸다. 즉, 그림 3의 표현에 따라 이산 웨이브렛 변환을 다음과 같이 얻는다. 

          (2)

여기서 j0는 임의의 시작 단계이다. Cj0(k)는 일반적으로 근사(approximation) 또는 배율조정 계수(scaling function)이고 ф(x)는 배율조정 함수이다.

dj(k)는 세부항목(detail) 또는 웨이브렛 계수(wavelet function)라는 뜻이고 ψ(x)는 웨이브렛 함수로 언급된다.

이상 언급된 배율조정 함수는 함수나 영성의 일련의 근사를 만드는데 사용되고, 각각은 가장 가까운 이웃 근사로부터 인수 2에 의해 달라진다. 배율조정 함수는 아래 수식과 같이 정의 되었다. 
    (3)

여기서, k는 x축을 따라 фj, k(x)의 위치를 결정하고, j는 фj, k(x)의 넓이  - x축을 따라 얼마나 넓은지 또는 좁은지를 결정하고, 2j/2는 높이 또는 크기를 제어한다.

фj, k(x)의 모양이 j, ф(x)에 따라 변하기 때문에 배율조정 함수(Scaling Function)라 불린다. 현명하게 ф(x)를 선택함으로써, фjo, k(x)는 모두 측정가능하고, 제곱 적분 가능한 함수 집합인 범위 L2(R)로 만들어질 수 있다.

만약 식1을 특징 값으로 제한한다면, j=j0. 결과 전개 집합 {фjo, k(x)}는 {фj, k(x)}의 부분집합이다. 결과 전개 집합은 범위 L2(R)이 아니라, 그것의 범위 내에서 부분 공간일 것이다. Vj0는 k에 걸친 фjo, k(x)의 범위이다.

만일 f(x)∈Vjo라면, 

 
    (4)

배율조정 함수는 다해상도 분석의 네 가지 기본적인 조건을 만족한다.

1. 배율조정 함수는 정수 이동(integer translate)에 대해 직교이다.
2. 낮은 배율에서 배율조정 함수에 의해 확정된 부분공간은 높은 배율에서 확장된 공간 안에 차례로 포개어진다.



그림 4. 배율조정 함수에 의해 확장된 포개어진 함수 공간들

  (5)

3. 모든 Vi에 공통인 유일한 함수는 f(x)=0 이다.
4. 어떤 함수도 임의의 정밀도로 표현될 수 있다. 임의의 정밀하지 않는 해상도에서 특정 f(x)를 확장하기가 불가능할 지라도, 모든 측정 가능하고, 제곱 적분 가능한 함수는 j→∞에 따라 극한 내에서 표현될 수 있다 
            
    (6)

이러한 가정 하에서, 부분 공간 Vi 의 전개 함수 부분은 공간 Vj + 1 의 전개 함수의 가중치 합으로 표현될 수 있다.

수식4를 사용하여  
는 수식3에서  фj+1, n(x)를 대신하고, 변수 αn을   h ф (n)으로 바꾸면, 이는 

        (7)

이 된다.

j, k는 0으로 취하면, 

       (8) 

h ф (n)계수는 배율조정 함수 계수(scaling function coefficient)라 부른다. h ф는 배율조정 벡터(scaling vector)로 언급된다.

배율조정 함수 필요조건이 주어지면, 그것의 정수 이동과 이진 배율조정, 어떤 두 개의 이웃한 배율조정 부분 공간 Vj 와 Vj+1 사이의 차를 확장하는 것과 함께 웨이브렛 함수(wavelet function) ψ(x)를 정의할 수 있다. 그림에 있는 Wj 공간을 확장하는 모든 K∈Z에 대해서, 웨이브렛의 집합 ψ j,k(x)를 정의하면,          

                (9)

이다. 그래서, 

  (10)
배율조정 함수는 정수 웨이브렛 이동에 대해 직교이기 때문에, 그림 5에 있는 배율조정과 웨이브렛 함수 부분공간은

    (11)

여기서 ?는 공간 합집합을 나타낸다.

Vj+1에서 Vj의 직교 여집합은 Wj이고 Vj의 모든 요소들은 Wj의 요소들에 대해 직교이다. 따라서, 

 
    (12)

Discrete Wavelet Transform을 이용한 얼굴 특징 점 추출 알고리즘

이산 웨이브렛 변환은 저주파 통과 필터와 고주파 통과 필터로 구성된 필터 뱅크로 수행된다. 이때 사용되는 필터의 특성은 특수하게 설계된 것으로 직교 특성, 선형 특성, 고주파와 저주파 부분을 정확하게 분할하는 특성이 있다.



그림6. 웨이브렛 필터의 주파수 응답
웨이브렛 변환은 필터 뱅크를 연속적으로 필터링하여 수행한다. 그림 7은 2차원 영상에 대해 필터 뱅크의 동작을 이용한 웨이브렛 변환의 수행 과정을 나타낸 것이다. 필터링은 컨벌루션으로 수행된다. 웨이브렛 변환 과정에서는 각각 필터링한 뒤 데이터의 크기를 절반으로 줄이는 다운 샘플링이 수행된다.


그림 7. 2차원 웨이브렛 변환
 
2차원 처리를 수행할 때, 분리성을 만족해야한다. 그러므로 먼저 세로 방향으로 웨이브렛을 수행한 뒤 가로 방향으로 웨이브렛을 수행하면 2차원 웨이브렛 변환이 가능하다. 수행 결과 중에 부영상 네 개가 생성된 것을 확인할 수 있는데, 여기서 LL은 가장 낮은 저주파 영상을 나타내며, 순차적으로 LH, HL, HH 순으로 높은 주파수 영상을 생성하게 된다. 그중에 HH 영상은 고주파 영상이다. 웨이브렛 변환의 결과로 형성된 부영상의 대역별 배치는 아래 표1과 같다.



표 1. 웨이브렛 결과 분할 구조
본 고에서는 Haar필터를 사용하며 실험을 진행했다. Haar필터는 1909년 독일 수학자 Haar가 함수 직교계의 이론을 설명하기 위해 설명한 필터로서, 여러 가지 필터 중에 구조가 제일 간단하고, 다른 필터보다 대칭성이라는 성질을 가지고 있으며, 그에 따라 기억 용량도 절감되고, 영상의 경계를 다루는 데에도 쉽게 적용될 수 있다. Haar 필터의 구조는 다음 수식과 같다. 

 
 (13)

여기서, 



표1과 같이 나오는 결과 영상에 따라 f 21(x,y). 즉, LH 수평 방향의 고주파 영상은 사람 얼굴에 있는 특징 점이 잘 나타나는 것을 볼 수 있다. 그래서 본 고는 이 영상으로부터 후처리를 하며 얼굴 특징 점을 추출한다.

먼저 추출된 LH 영상에 대하여 단순 경계를 구하고 경계선을 분할하기 위해서 이치화를 수행한다. 이치영상 생성 시 반복적인 계산에 의하여 가장 좋은 임계값을 선정하여 원 영상에 대해서 이치화를 수행하였다.

다음으로 경계 단순화 과정에서 얻은 이치영상에서 픽셀값이 255인 현재 위치의 픽셀과 주변의 픽셀을 비교하여 주변의 픽셀값이 0일 때, 현재 위치를 자동으로 경계선을 결정하는 방법으로 에지를 검출하였다. 에지 검출 시, 대부분 에지 추출 마스크는 잡음에 대해 민감하므로, 작은 잡음이라도 그것을 에지로 간주하여 추출하는 경우가 많다. 이러한 단점을 보완하는 캐니 마스크를 이용한 에지 추출 기법이 있는데, 실제로 잡음에 민감하지 않게 하며 강한 에지를 추출하는 것에 목적을 둔다.

Canny Mask에 따르면 에지 추출기에 있어서 다음의 세 가지 기준을 만족해야 한다고 한다.
첫째, 탐지성(good detection): 모든 실제 에지를 탐지하는 능력
둘째, 국부성(good localization): 실제 에지와 탐지된 에지의 차이를 최소화
셋째, 응답성(clear response): 각 에지에 대하여 단일한 응답

세 가지 조건을 만족하는 캐니 마스크를 이용한 기법은 여러 가지가 있으며, 기본적인 원리는 아래와 같다.

1. 가우시안 스무딩 필터링

     (14) 

       (15)

2. X, Y 축으로 기울기의 크기를 계산

    
            (16)

      (17)

3. 정해진 기울기 방향에 따라 non-maxima suppression을 적용
이것은 정해진 기울기 방향에 존재하는 equalized pixel값 중 maximum을 제외하고 0으로 지정하는 것으로 최소한의 에지를 구할 수 있게 한다.

4. 경계값(double thresholding 또는 hystersis) 수행
이 방법은 에지를 이루는 픽셀값의 편차가 클 경우 단일한 threshold값이 적용된다면 에지의 일정부분이 제거되는 것을 방지하기 위해 사용되어진다.

T-low, T-high 두 개의 threshold가 사용되어지며 T-high값은 T-low값의 2배이다. T-high보다 큰 값은 에지로 간주되며, T-low보다 작은 값은 non-edge로 간주된다. T-low와 T-high사이의 값은 주변에 T-high 이상인 값이 있을 경우 에지로 간주된다. 즉 에지의 추이를 통해 판단하는 방법이 사용된다.

추출된 에지 영상으로부터 수평방향과 수직방향의 투영을 구한다. 얼굴 영상에 사람 머리, 눈, 코, 입의 휘도값이 얼굴상 다른 부분과 다르기 때문에 휘도값이 변한 점을 찾아서 얼굴 특징 점을 찾을 수 있다. 만약 얼굴 영상을 I(x, y), 분해능을 M*N으로 가정하면, 원 영상에 대해 수평방향 투영은 영상에 한 행에 있는 모든 픽셀값을 더하여 얻은 투영 곡선이다. 이 곡선은 얼굴 영상에 수직 방향의 휘도 변화를 표시한다. 정의는 다음과 같다. 

    (18)

같은 원리를 이용하며, 수직방향 투영은 영상에 한 줄에 있는 모든 픽셀값을 더하여 얻은 투영 곡선이다. 이 곡선은 얼굴 영상에 수평 방향의 휘도 변화를 표시한다.

정의는 다음과 같다.

   (19)

얼굴의 길이는 Width, 높이는 Height(H)로 가정하자. 얼굴 구성 요소에 따라 눈의 위치는 얼굴 높이의 1/3H 근처에 있고, 눈과 코의 거리 및 코와 입 사이의 거리는 약 (1/4)*H 이다. 아래 표시한 그림과 같다. 

 

그림 9. 얼굴 분배도
수평 투영을 통해 얼굴 특징 점끼리의 수직 위치를 정할 수 있다. 즉, 각 위치에 따라 일정한 범위를 취하며 얼굴을 아래 방식으로 분해한다.


그림 10. 얼굴 분해도
그림 10에 보는 바와 같이 얼굴을 눈 구역(a), 코 구역(b), 입 구역(c)으로 분해했다.

수직방향 투영을 구할 때 각 특징 점이 차지하고 있는 소구역에 대해 투영을 한다. 수직 투영은 투영 곡선상 영점과 비영점의 변화를 통해 눈, 코, 입의 수평 좌표 위치를 결정할 수 있는데, 눈 구역에 대해 투영을 하면 다음과 같다.



그림 11. 눈 구역에 대해 수직 투영 예상도
같은 원리로 코 구역과 입 구역에 투영을 통해 각 수평 위치를 알 수 있다.

수직 투영과 수평 투영을 구한 후 얼굴 구성 요소에 따라 얼굴 특징 점의 위치를 알 수 있다. 본 고 중에서 아래 7개 특징 값을 선정하며 실험을 진행한 얼굴 구성 견본도는 아래와 같다.



그림 12. 얼굴 특징 점 구성도
그림 12에 x1은 좌측 눈의 우 좌표, x2는 우측 눈의 좌 좌표, x3은 코의 좌 좌표 점, x4는 코의 우 좌표 점, x5는 코의 중심 좌표, x6은 입술의 좌 좌표 점, x7은 입술의 우 좌표 점, x8은 입술의 중심 좌표 점, y1은 눈의 수직 좌표, y2는 코의 수직 좌표, y3은 입술의 수직 좌표.

특징 점끼리의 서로 관계는

이상과 같이 구해진 특징 값을 데이터베이스에 저장시켜, 얼굴 인식 단계에서 구해지는 특징 값을 데이터베이스에 저장했던 값과 비교하여 인식 결과를 가져온다. 인식할 때 MMSE(Minimum Mean Squared Error)원리를 취하며 두 값 사이에 최소 오차를 구하고, 이를 통해 얼굴인식을 진행한다. 수식으로 표현 하면,

     (20)

라고 하면, 오차는 아래 수식으로 표현될 수 있다. 

      (21)

Tj : 측정한 얼굴 특징 값,  Dij : 연습한 얼굴의 특징 값

실험

실험 절차도



그림 13. 시스템 구성도

실험 결과도 


그림 14. Haar 웨이브렛 실험 결과 


그림 15. 이치화 결과 영상




그림 16. 캐니 마스크를 이용한 에지 효과도
그림 15와 16에서 보는 바와 같이 주 특징 정보를 포함하고 있는 수평방향 고주파 영상 LH에서는 원하는 경계 단순화와 경계 선분할을 위해 실험 임계값 T=165로 하여 치환한 후, 불필요 요소인 고립점, 돌출부위, 경계 중복점을 제거하였고, 축소된 대역공간에서는 경계 정보를 보존 시켰다.

투영 곡선에 따라 곡선 상에 나오는 46이라는 값은 바로 얼굴상 눈의 수평 좌표이다. 그 다음 곡선에 나오는 최댓값인 76, 103은 코와 입의 수평 좌표이다.



그림 17. 수평 방향 투영 결과도



그림 18. 수직 방향 눈 투영 결과도



그림 19. 수직 방향 코 투영 결과도



그림 20. 수직 방향 입 투영 결과도 

 실험 결과에 대해 고찰

 본 고에서는 PC 카메라에 들어오는 동영상에서 취득한 50장의 정면 얼굴 영상에 대해 실험을 진행하였다. 얼굴 영상의 크기는 256*256, 실험의 환경은 마이크로소프트사의 Visual C++6.0을 사용하였다.

실험 결과에 따라 웨이브렛 변환을 통해 수평방형의 고주파 영상을 이용하며 이치화, 에지 추출과 수평 투영, 수직 투영 처리를 통하여 얼굴 특징 점을 찾을 때 정확도가 일반 방법보다 더 높게 나타나는 것을 볼 수 있었다. 이 방법은 다음과 같은 이점을 가지고 있다.

1. 여러 영상에 대해 강한 특징 추출 효과를 가지고 있다.
2. 임계값 적용을 통해 관조에 대해 미치는 영향을 최소화 시킬 수 있다.
3. 휘도 투영 기술을 사용하며 얼굴 및 얼굴 특징 점의 위치를 신속하고 정확하게 측정할 수 있다.

능동형 웨이브렛 변환을 통한 얼굴 인식과 일반적인 얼굴인식의 인식률을 나타낸 것이 표 2다. 표 2에서 보는 것과 같이 능동형 웨이브렛 변환을 통하여 인식률이 향상되는 것을 볼 수 있다. 
  
결론

웨이브렛 변환은 영상 처리 기술 중 가장 널리 사용되고 있는 방법이다. 본 고에서는 웨이브렛 변환이 신호의 국부적인 특징을 잘 분석하는 특성을 이용하여 얼굴 영상에 대해 능동형 이산 웨이브렛을 수행했다.

얼굴 인식은 복잡성과 고난이성을 가지는데, 예를 들면 얼굴 표정 변화에 따라 입과 귀 위치의 변화, 얼굴 영상이 기울어질 때 특정 점을 어떻게 정확하게 추출 할 것인지, 나이 변화에 따라서 얼굴 특징 점의 변화 등이 있다.

따라서 얼굴 인식을 정확하게 측정하기 위해서 많은 연구가 이루어지고 있으며, 본 고에서는 능동형 이산 웨이브렛 기법을 적용하여 얼굴 인식률 향상을 시도하였다.

제안한 방법은 기존 얼굴 인식 알고리즘보다 향상된 인식률을 가져왔으나, 획득 영상의 다양성에 따라 저하되는 인식률을 향상시키기 위한 연구가 계속되어야 한다고 판단된다.

본 고에서 제안한 방법을 바탕으로 한 인식 알고리즘 개발은 얼굴 인식 분야의 발전에 큰 효과를 가져 올 것으로 사료된다. 


 

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.