1. 서 론
비밀번호나 다른 사용자 식별 방법의 경우 노출이 되거나 암기를 해야 한다는 단점이 존재하나, 생체인식의 경우 이러한 단점을 보완할 수 있어, 현재 네트워크, 금융 서비스 등 많은 분야에서 사용이 되고 있다. 특히 이중 얼굴인식의 경우 홍채인식이나 지문인식과 같은 다른 인식기술과는 다르게 비 접촉식으로 사용자의 불쾌감이나 불편함이 적다는 장점이 있어 많은 분야에서 사용되고 있다. 하지만 현재 사용되고 있는 2차원 얼굴인식의 경우 명암도를 바탕으로 인식을 수행하기 때문에 데이터베이스 구축 당시의 조명과 다른 조명 상태에서 인식을 수행할 경우 인식률이 저하될 수 있다는 단점이 있다[1]. 또한 2차원 인식의 경우 인식 대상자가 정면을 바라본 상태에서 인식을 수행하여야 하는데, 신체적 특징이나 환경적인 요인에 따라 정면을 바라보고 인식을 수행하였다고 하여도 실제 입력되는 영상은 정면에서 조금씩 회전된 영상을 획득하게 된다.
이와 같은 단점을 보완하기 위해 본 연구에서는 3차원 스캐너를 통해 획득한 3차원 형상을 이용하여 인식을 수행하며, 3차원 형상을 이용하였을 경우 2차원에서는 존재하지 않는 얼굴 형상의 깊이 데이터를 획득하여 사용하기 때문에 조명에 영향을 최소화 할 수 있다. 또한 X, Y, Z축 좌표를 이용하여 회전된 얼굴 형상을 정면으로 회전시키는 포즈보상을 전처리 단계에서 수행할 수 있다.
포즈보상을 거친 얼굴 형상은 Point Signature기법을 수행하여 깊이 데이터를 추출한다. 본 논문에서는 반원을 사용한 경우, 여러 개의 원을 사용한 경우, 그리고 여러 특징점을 설정한 경우의 깊이 데이터를 추출하였다. 추출된 데이터를 그대로 인식에 사용할 경우 고차원 데이터로 인식 속도 및 성능의 저하가 발생할 우려가 있다. 따라서 패턴분류기에 사용하기 적합한 저차원 데이터로 축소하기 위해 PCA알고리즘을 사용하며, PCA알고리즘을 통해 집단의 특징을 잘 표현하는 저차원 데이터로 축소하여 인식을 수행한다.
인식성능은 다항식을 기반으로 한 RBFNNs를 이용하며, 실험에 사용하는 파라미터의 최적화는 입자군집 최적화 알고리즘을 사용하였다. 본 논문에서는 깊이 데이터 추출 방법 및 추출된 데이터에 따른 인식 성능을 비교 및 해석하였다.
2. 3차원 얼굴 형상 취득 및 전처리 과정
1장에서는 3차원 얼굴 형상 획득 방법과 전처리 과정에 대하여 설명한다. 2차원 인식[1]의 경우 서론에서도 언급했듯이 조명과 포즈 변화와 같은 환경적인 요인에 따른 인식성능의 저하가 발생하며, 이와 같은 단점을 보완하기 위해 본 연구에서는 3차원 얼굴 인식을 수행한다. 3차원 얼굴 형상은 3D 스캐너를 통해 획득하며 전처리 단계로 포즈보상을 수행하여 정면 얼굴 형상을 획득한다. Point Signature기법을 통해 인식에 사용하기 위한 얼굴 형상의 깊이 데이터를 추출하고, PCA 알고리즘을 통해 저차원 데이터로 축소 후 인식을 수행한다.
2.1 3차원 얼굴 형상 획득
3차원 얼굴인식을 수행하기 위해 3D 스캐너를 사용하며, 3차원 스캐너는 국내 3D 스캐너 기업인 Onscans사의 IU-50C Face Scanner를 이용하였다. 구조 광 방식을 사용하여 얼굴의 전체 형상을 획득하였으며, 획득한 얼굴 형상은 점 구름의 형태를 띠고 있다. 얼굴 인식은 2차원에서는 존재하지 않는 얼굴의 깊이 데이터를 추출하여 사용하기 때문에 조명 변화에 강인하다는 장점이 있다. 추출된 얼굴 형상은 아래 그림 1과 같다.
그림 1점 구름 형태의 얼굴 이미지 형상 Fig. 1 Facial image shape of point cloud form.
2.2 전처리 단계 : 포즈보상
2차원 얼굴인식의 경우 인식 대상자가 정면을 바라본 상태에서 인식을 수행하여야 하는데, 실제로 인식대상자가 정면을 바라보았다고는 하나 개인의 신체적 특징이나 환경적인 요인에 인하여 조금 회전된 얼굴 영상이 입력되게 된다. 이와 같은 단점을 보완하기 위해 3차원 인식에서는 획득한 3차원 얼굴 형상을 정면으로 회전시키는 포즈보상을 수행하며, 정면으로 회전된 얼굴 형상을 통해 정확한 깊이 데이터추출이 가능하다. 포즈보상의 수행은 아래 단계와 같이 이루어진다.
[단계 1] 미간점과 코 밑점을 기준으로 하여 새로운 Y'축을 설정[단계 2] 양 눈 끝점을 기준으로 하여 새로운 X'축을 설정[단계 3] 새롭게 설정된 X'축과 Y'축을 기준 좌표계의 위치[단계 4] 기준좌표계와의 오차를 최소화시키는 방식으로 포즈보상을 수행
그림 2포즈보상의 절차 Fig. 2 Procedure of pose compensation.
2.3 깊이 데이터 추출 : Point Signature
정면으로 위치한 얼굴 형상에서 Point Signature기법을 수행하여 깊이 데이터를 추출한 후 얼굴 인식을 수행한다[2]. Point Signature 기법은 거리정보를 각도에 대한 1차원 공간신호로 표현하는 방법으로 한 점을 기준으로 깊이 정보를 추출하여 얼굴 형상의 곡률 정보를 추출할 수 있다. 깊이 데이터의 추출은 아래 단계와 같이 이루어진다.
[단계 1] 깊이 데이터 추출을 위한 각도와 반지름을 설정[단계 2] 기준점을 설정하며, 법선 벡터를 생성[단계 3] 법선벡터를 중심으로 하는 반지름 R의 원을 얼굴에 투영[단계 4] 각도에 해당하는 부분의 깊이 데이터를 추출
그림 3Point Signature 과정 Fig. 3 Process of Point Signature.
하지만 실제로 포즈보상을 수행하여 얼굴 영상을 정면으로 회전시킨다고는 하나 많이 회전된 얼굴 형상의 경우 손실되는 데이터가 발생할 수 있는데, 이와 같이 손실될 데이터는 인식 성능의 저하를 유발할 수 있다. 따라서 본 논문에서는 기존 Point Signature 기법과 동시에 반원을 기반으로 한 깊이 데이터 추출과 기준점을 2개 이상 설정하여 깊이 데이터를 추출하는 방법을 사용한다.
그림 4데이터 손실의 발생 Fig. 4 Generation of data loss.
추출된 깊이 데이터는 정면과 좌, 우측 포즈 변화에 상관없이 포즈보상을 수행하여 정면으로 위치시키기 때문에 각도에 따라 유사한 깊이 데이터를 획득하게 된다. 기준점을 2개 이상 사용할 경우 눈 끝점을 기준점으로 선정하며, 이 경우 눈 기준점의 위치를 얼굴이 회전되는 방향에 맞추어 좌측, 우측 다르게 사용하여 손실되는 데이터를 최소화 하였다.
그림 5기준점의 설정 Fig. 5 Setting of reference points.
2.4 데이터 차원 축소 : PCA Algorithm
추출된 깊이 데이터의 수는 Point Signature기법에 따라 다르지만 그대로 RBFNNs 패턴분류기의 입력으로 사용할 경우 고차원 데이터로 인식 속도 및 성능의 저하가 발생할 수 있다. 따라서 인식을 수행하기 전에 저차원 데이터로 축소하기 위해 PCA 알고리즘을 수행한다[3]. PCA 알고리즘은 집단의 특징을 잘 나타내는 벡터를 찾아내는 알고리즘이다.
[단계 1] 인식후보의 얼굴 벡터 집합 구성
[단계 2] 평균과 분산을 기준으로 이미지 정규화 수행
[단계 3] 평균 얼굴 벡터를 계산
[단계 4] 인식후보 얼굴 벡터와 평균 얼굴 벡터와의 차이 벡터를 계산
[단계 5] 인식후보 얼굴에서 공분산 행렬을 계산
[단계 6] M개의 고유벡터에서 가장 큰 고유값을 갖는 M'개만을 선택
[단계 74] 각 인식후보 얼굴과 고유벡터와의 사영을 통해 가중치를 획득
그림 6PCA(주성분 분석법) 알고리즘 Fig. 6 PCA(Principal Component Analysis) Algorithm.
3. 다항식 기반 RBFNNs 패턴분류기의 구조 및 최적화
기존 RBFNNs 패턴분류기의 경우 신경회로망의 구조를 기반으로 하고 있으며, 신경회로망은 인간의 두뇌를 구현하기 위한 알고리즘으로서 입력층, 은닉층, 출력층 이 3 가지로 구분할 수 있다. 은닉층에서는 각 노드마다 입력변수의 개수만큼 활성함수가 존재하며, 활성함수는 방사형 기저함수 신경회로망의 형태를 하고 있다. 입력데이터는 전처리 과정을 거쳐 은닉층의 입력으로 들어가게 되고 은닉층에서 활성함수로 변환된 출력이 연결가중치 값과 곱해져 출력층의 최종 출력으로 얻어진다.
3.1 다항식 기반 RBFNNs의 구조
본 논문에서는 기존의 RBFNNs를 확장한 다항식 기반 RBFNNs패턴분류기를 이용하여 인식 성능을 확인한다. 구조적 모듈로는 기존의 모델과 동일한 입력층, 은닉층, 출력층 이 3가지로 구분할 수 있으나, 기능적 모듈로서 조건부, 추론부, 결론부 이 3가지로 구분이 가능하다.
그림 7다항식 기반 RBFNNs 패턴분류기의 전체 구조 Fig. 7 Overall architecture of polynomial based RBFNNs pattern classifier.
다항식 기반 RBFNNs패턴분류기의 구조[4, 5, 6]는 위 그림 7과 같다. 기존 패턴분류기는 은닉층에서 방사형 기저함수로서 가우시안 함수를 사용한 반면 다항식 RBFNNs 패턴분류기는 은닉층에서 FCM클러스터링을 사용하였다. FCM클러스터링은 소속정도를 퍼지집합으로 출력하여 활성함수의 형태로 나타내 주며, FCM클러스터링의 적합도를 이용하여 은닉층에서의 활성함수의 형태를 표현하였다. 그리고 상수항인 연결가중치를 다항식의 형태로 확장하여 표현하였으며, 이와 같은 표현을 통해 아래 식 (8)의 퍼지 규칙 표현과 같은 언어적 관점에서의 해석이 가능하다.
또한 다항식 기반 RBFNNs는 다차원 입, 출력 문제 해결이 용이하며, 네트워크 특성이 강인하고, 예측능력이 우수하다는 장점이 있다.
3.2 FCM 클러스터링
클러스터링 알고리즘은 비슷한 패턴, 속성, 형태 등의 기준을 통해 데이터를 분류하는 알고리즘이다. 본 논문에서는 데이터와 각 클러스터와의 거리를 기준으로 소속정도를 측정하여 데이터를 분류하는 FCM클러스터링 알고리즘을 사용하였으며, 이를 통해 다항식 기반 RBFNNs 은닉층의 활성함수 형태를 표현하였다. FCM클러스터링은 아래 단계를 통해 수행된다.
[단계 1] 클러스터의 개수, 퍼지화 계수를 선택하고 소속함수(U(0))를 초기화 한다.
[단계 2] 각 클러스터에 대한 중심 벡터를 구한다.
[단계 3] 중심과 데이터와의 거리를 계산하며, 이를 통해 새로운 소속함수(U(1))를 계산한다.
[단계 4] 오차가 허용범위 안에 도달하면 알고리즘을 종료하고, 그렇지 않으면 단계 2로 돌아간다.
3.3 최적화 알고리즘 : PSO 알고리즘
다항식 기반 RBFNNs 패턴분류기를 이용하여 인식 성능을 획득하는 과정에서 데이터 학습을 위해서는 학습 속도와 성능을 보다 효율적으로 하기 위한 파라미터 설정이 필요하다. 이를 위해 본 논문에서는 입자군집 최적화 알고리즘 (PSO 알고리즘)[7]을 이용하였으며, PSO 알고리즘은 다음과 같은 단계를 통해 파라미터 최적화를 수행한다.
[단계 1] 초기 Swarm과 Particle Velocity를 랜덤하게 생성[단계 2] 초기 Particle을 pbest로 선정하며, 그 중 최적의 값은 다시 gbest로 선정[단계 3] 아래 식(14)를 통해 관성하중 값을 계산하며, 관성하중 값을 근거로 하여 식(15)을 이용하여 j번째 Particle Velocity를 계산
[단계 4] Particle Velocity를 바탕으로 Particle의 위치정보를 수정
[단계 5] 각 Particle의 적합도와 pbest의 적합도를 비교하여 재설정하고, 최적해의 pbest와 gbest를 비교하여 재설정[단계 6] 종료조건이 만족할 때까지 탐색을 계속하며, 최종적으로 최적의 위치정보를 가지는 gbest가 생성
PSO알고리즘은 물고기나 새 때와 같은 무리의 행동 양식을 바탕으로 한 최적화 알고리즘으로 복잡하고 불확실한 영역에서의 탐색이 가능하며, 간단한 수학 연산자를 사용하였기 때문에 이론이 간결하며, 다른 확률적 방법보다 안정적인 수렴특징을 가진다는 특징이 있다.
4 시뮬레이션 및 결과 고찰
4.1 실험의 전체 개요
본 논문에서는 2차원 얼굴인식의 단점을 보완하기 위해 3차원 스캐너를 통해 획득한 3차원 얼굴 형상을 이용하여 얼굴인식을 수행하여 3차원 얼굴인식의 수행 과정은 아래 그림 8과 같다.
그림 83차원 얼굴인식의 절차 Fig. 8 Procedure for 3D face image recognition.
먼저 3차원 스캐너를 통해 획득한 얼굴 형상은 전처리 과정으로 포즈보상을 수행하며, 깊이 데이터 추출 방법에 변화를 주어 데이터를 획득하고, 그에 따른 인식성능을 확인 및 비교한다. 본 논문에서는 코 끝점 하나를 기준으로 하여 깊이 데이터를 추출하는 방법과 코 끝점과 양 눈 끝점을 기준으로 사용하여 깊이 데이터를 추출하는 방법을 사용하며, 깊이 데이터 추출에 사용하는 원의 형태는 완전한 원의 형태와 반원을 사용, 원의 개수는 1개부터 3개까지 사용하여 깊이 데이터를 획득하였다.
그림 92개의 기준점(코, 눈)을 기반으로 한 원 또는 반원특징 포인트에 의해 추출된 깊이 데이터 Fig. 9 Depth data extracted by full or semi-circle feature points based on Two reference points(nose, eye).
추출되는 깊이 데이터의 분포는 각 기준점에 따라 위 그림 10과 같이 획득이 가능하며, 정면 형상이나 좌측, 우측형상에 상관없이 유사한 깊이 데이터의 분포를 보인다. 실험에 사용한 데이터베이스의 구성은 수원대학교 IC&CI 연구실 인원 18명으로 진행하였으며, 학습 및 검증 데이터는 각 인원의 포즈변화에 따른(좌 30° 좌 15°, 좌측정면, 우측정면, 우 15°, 우 30°) 6개의 영상을 입력하여 총 108개의 데이터를 이용하였다. 정면 영상을 좌측, 우측 2개로 나누어 사용한 것은 깊이 데이터 획득 과정에서 눈 좌표점을 사용할 경우 포즈에 따른 눈 좌표 설정이 다르기 때문이며, 테스트데이터는 임의 좌측(약 22°,) 임의 우측(약 22°)의 영상을 입력받아 총 36개의 데이터를 사용하였다. 또한 실험데이터는 6-fold cross validation을 이용하여 아래 표와 같이 학습, 검증, 테스트를 분할하여 실험을 진행하였다.
그림 10추출된 깊이 데이터 분포 Fig. 10 Distribution of the extracted depth data.
표 1k-묶음 교차 검증법을 위한 데이터의 분할 Table 1 Splited dataset for k-fold cross validation
그림 11k-묶음 교차 검증법에 의한 제안된 모델의 생성 Fig. 11 Generation of the proposed model by k-fold cross validation.
6-fold cross validation을 사용함으로서 각 포즈별 데이터가 한번 씩 검증 데이터로 들어가게 되며, 각각의 모델에서 얻은 성능의 평균을 하나의 모델로서 평가하는 방식으로 인식을 수행한다. 또한 효율적인 학습을 위한 파라미터 탐색 범위 및 초기 최적화 파라미터는 아래 표와 같이 설정하였다.
표 2파라미터 탐색 범위 Table 2 Search range of parameters
표 3초기 최적화 파라미터의 설정 Table 3 Setting of initial optimization parameters
4.2 실험 결과
획득한 깊이 데이터를 다항식 기반 RBFNNs 패턴분류기의 입력으로 하여 인식 성능을 확인하였으며, Case1의 경우 코 끝점만을 기준점으로 사용한 경우의 실험 결과이며, Case2는 코 끝 점과 눈 끝점을 기준점으로 사용하였을 때의 실험 결과이다.
표 4실험 결과(Case1, Case 2) Table 4 Results of each experiment(Case1, Case2)
표 5각 실험의 비교 결과 Table 5 Comparative results of each experiment
그림 12개별 모델의 비교 결과의 그래프 Fig. 12 Graph of comparative results of individual models.
실험 결과는 위 표 4와 같다. Case1의 경우 코 끝점만을 기준으로 하여 깊이 데이터를 추출하였으며, 회전된 얼굴 영상에서의 인식 성능 향상을 위해 반원을 같이 사용하여 인식을 수행하였으며, 완전한 원보다 반원을 사용한 경우가 인식 성능이 더 높게 나오는 것을 확인할 수 있다.
Case2의 경우는 얼굴 점과 눈 끝점을 이용하여 추출한 깊이 데이터를 사용하였다. 눈 점의 경우 완전한 원 1개를 사용하였으며, 코 점은 완전한 원과 반원을 사용한 경우를 나누어 인식 성능을 확인하였으며, 완전한 원을 사용한 경우보다 반원을 사용한 경우가 인식 성능이 더 높게 나오는 것을 확인할 수 있으며, Case1과 Case2를 비교하였을 때 코 끝점만을 사용한 Case1보다 눈 점을 같이 사용한 Case2가 인식 성능이 전반적으로 높게 나오는 것을 확인할 수 있었다.
5 결 론
본 연구에서는 3차원 형상의 깊이 데이터를 이용한 3차원 인식 시스템을 제안하였다. 기존 방법에서 사용하던 Point Signature 기법과 Multiple Point Signature 기법에서 추가적으로 반원을 사용한 경우와 다른 기준점을 사용한 경우 (눈 기준점을 추가)의 인식 성능을 확인 및 비교하였다. 실험 결과 눈 점을 같이 기준점으로 설정한 경우가 코 끝점만을 설정한 경우보다 인식성능이 전체적으로 높게 나오는 것을 확인할 수 있었으며, 원의 개수가 2개 이상인 경우 완전한 원보다는 반원을 기반으로 한 경우가 인식성능이 더 높게 나오는 것을 확인할 수 있었다. 이와 같은 결과를 통해 본 논문에서 제안한 특징 추출 방법이 기존의 특징 추출 방법보다 더 높은 인식 성능 획득이 가능하다는 것을 확인하였다.
참고문헌
- Y. Wang, C. Chua and Y. Ho, "Facial Feature Detection and Face Recognition from 2D and 3D Images," Pattern Recognition Letters, Vol. 23, pp. 1191-1202, 2002. https://doi.org/10.1016/S0167-8655(02)00066-1
- C. Chua, R. Jarvis, "Point Signature: A New representation for 3D Object Recognition," International Journal of Computer Vision Vol. 25, No.1, pp. 63-85, 1997. https://doi.org/10.1023/A:1007981719186
- H. Addi and L. J. Williams, "Principal component analysis," Wiley Interdisciplinary Reviews: Computational Ststicstics, vol. 2, no. 4, pp. 433-459, 2010. https://doi.org/10.1002/wics.101
- S. B. Roh, S. C. Joo, W. Pedrycz, and S. K. Oh, "The development of fuzzy radial basis function neural networks based on the concept of information ambiguity," Neurocomputing, Vol. 73, No.13-15, pp. 2464-2477. 2010. https://doi.org/10.1016/j.neucom.2010.05.006
- S. K. Oh, W. Pedrycz, B. J. Park, "Polynomial-based Radial Basis Function Neural Net works realized with the Aid of Particle Swarm Optimization," Fuzzy Sets and Systems, Vol. 163, pp. 54-77, 2011. https://doi.org/10.1016/j.fss.2010.08.007
- S-K. Oh, W-D. Kim, and W. Pedrycz, ‟Polynomial based radial basis function neural networks (P-RBFNNs) realized with the aid of particle swarm optimization," Fuzzy Sets and Systems, Vol. 163, No. 1, pp. 54-77, 2011 https://doi.org/10.1016/j.fss.2010.08.007
- J. Kennedy and R. Everhart, "Particle Swarm Optimization," Proc. of IEEE International Conference on Neural Networks," Vol. 4, pp. 1942-1948, 1995.