CCTV 영상에서의 얼굴 검출 기술 소개
상태바
CCTV 영상에서의 얼굴 검출 기술 소개
  • 이수진
  • 승인 2012.08.10 00:00
  • 댓글 0
이 기사를 공유합니다

연 재 순 서
1. CCTV 영상에서의 얼굴 검출 기술 소개
2. CCTV 영상에서의 얼굴 인식 기술 소개
3. CCTV 영상에서의 고성능 얼굴 인식엔진 설계 및 구현
4. 얼굴인식 기술의 성능 분석
5. 얼굴인식 기술의 상용화 동향

1. 서론
  CCTV로 입력된 영상에서 얼굴을 인식하기 위해서는 가장 먼저 얼굴검출 과정을 거쳐야 한다. 입력된 영상에 몇 사람의 얼굴이 어느 위치에 존재하는지를 정확하게 알 수 있다면 개별 얼굴 영역을 추출할 수 있고 이를 얼굴 인식 엔진에 입력해서 각 얼굴을 인식할 수 있을 것이다. 고성능의 얼굴 인식 시스템을 구현하기 위해서는 피부색, 얼굴의 포즈, 얼굴의 회전 및 기울어짐, 얼굴의 크기 변화, 표정의 변화, 조명의 변화 그리고 일부 가려진 얼굴 등 다양한 조건에서도 정확하게 얼굴을 검출해 낼 수 있는 기술이 필수적으로 요구된다.
본 고에서는 얼굴 검출을 위해 개발된 기존의 기술들을 설명하고 최근 발표된 Adab oost 얼굴검출 알고리즘의 동작 원리 그리고 상용 얼굴 검출 소프트웨어에 가장 성공적으로 사용되고 있는 MCT-Adaboost 알고리즘을 구현해 본 결과에 대해서 소개한다. 

2. 얼굴 검출 기술의 발전 역사
  2004년도 Adaboost 기반 얼굴 검출 알고리즘이 발표되기 이전에는 얼굴을 자동으로 검출하기 위해 다양한 방법들이 시도되었다. 얼굴 검출 연구 초기에 시도한 다양한 방법들 중에서 피부색을 이용한 방법과 영상패턴인식 기법인 주성분분석(Principal Comp onent Analysis) 및 신경망(Neural Network)을 이용한 방법들이 비교적 우수한 얼굴 검출 성능을 보인 것으로 평가되었다.

■ 피부색을 이용한 얼굴 검출
  피부색을 이용한 얼굴 검출에서는 다양한 조건을 모두 포함할 수 있는 얼굴영상 데이터베이스를 구축하고 모든 얼굴들의 색상을 추출해서 3개의 컬러 공간 즉, RGB, YCbCr 그리고 HSV 공간상에 매핑시켜 얼굴 색상 군집을 이루는 영역을 판단하는 규칙을 찾아낸다. 이 규칙을 이용하여 임의의 영상에서 얼굴과 같은 부류의 색상들로 이루어진 화소 군집을 찾아내고 얼굴인지 여부를 판단하였다. 스탠포드 대학[1]에서 수행한 피부색 기반의 얼굴 검출 프로젝트를 수행한 결과의 예를 [그림 1]에 도시하였다.


 
  [그림 1](b)의 얼굴 마스크 영상을 이용해서 [그림 1](a)의 컬러 원본 영상의 각 얼굴 영역에 속한 화소들이 RGB, YCbCr 그리고 HSV 공간상에서 어떤 분포를 갖는지 찾아보고 얼굴 피부색상인지의 여부를 판단할 수 있는 규칙을 찾아낸다.
  [그림 1](c)는 얼굴 색상 분포 규칙에 따라 얼굴 후보 영역으로 판단된 화소 군집들을 추출한 결과를 보인 것이다. 얼굴 후보 영역 정보를 후처리해서 최종적으로 [그림 1](d)와 같이 얼굴의 중심으로 추정되는 영역에 십자 표시를 하였다.
  이 방법은 깨끗한 컬러영상에서의 얼굴 검출 성능은 비교적 높았으나 컬러 영상에만 적용할 수 있다는 한계점이 있었고 자연 영상에서 인간의 피부색과 유사한 색상 그룹이 존재할 경우 얼굴이 아닌 영역을 얼굴 영역으로 판단하는 오검출(false alarm)이 많이 발생될 수 있었기 때문에 고성능의 얼굴 검출 방법으로 계속 발전되지는 않았다.

■ 주성분분석을 이용한 얼굴 검출 기법
  주성분분석(Principal Component Analysis)은[2] 고차원 데이터를 자신의 고유한 특징을 잘 유지한 채로 낮은 차원의 데이터로 변환함으로써 데이터 분석을 보다 쉽게 할 수 있는 패턴인식 기법이다.  



  예로서 [그림 2]에는 3차원 벡터공간(x1, x2, x3) 상에 4개의 데이터들이 각각 점으로 표현되어 있다. 이들 4개의 데이터들의 거리상 특징들을 가급적 그대로 유지시키면서 특징을 잘 표현할 수 있는 두 개의 고유벡터들(y1, y2)을 찾아내고 원본 데이터를 고유벡터에 투영시키면 축소된 2차원 벡터공간(y1,y2) 상에 표현할 수 있다. PCA 기반으로 영상을 표현할 벡터 공간의 차원을 줄이기 위해서는 이와 같이 고유벡터를 구하는 과정을 거쳐야 한다.  



  [그림 3]의 고유벡터(또는 EigenFace)를 찾는 과정을 [그림 4]와 같이 수식으로 표현할 수 있다. 여기에는 고유벡터를 구하기 위해 화소개수(N2) x 화소개수(N2)로 이루어진 행렬 AAT의 역행렬을 구하는 과정이 포함된다. 하지만 실제로 행렬 AAT이 너무 크기 때문에 역행렬을 구하는 것이 비현실적이므로 이를 간단히 하기 위해서 ATA의 고유벡터를 구해서 행렬 A를 구하는 방식으로 계산이 이루어진다.



  PCA기법을 이용해서 얼굴을 검출하기 위해서는 먼저 다양한 형태의 얼굴 데이터베이스를 구축하고 일정한 크기의 평균 얼굴을 구한 다음 그에 대한 고유벡터를 미리 계산해 둔다. 그리고 입력된 영상의 각 영역을 스캐닝화면서 [그림 5]에서 도시한 방식대로 얼굴의 존재여부를 판단할 수 있다. 



  PCA는 초기 연구자들의 연구에 많이 사용되었으나 조명변화나 표정변화가 심할 경우 그리고 회전된 얼굴 등에서 얼굴 검출률이 비교적 낮게 나타났으며 오검출도 많이 발생하는 한계점을 가지고 있었다. 하지만 얼굴 영상에 적용한  PCA 원리는 얼굴 인식에 매우 중요한 개념을 제공한 것으로서 여전히 다양한 형태로 개선된 연구 결과들이 많이 발표되고 있다.

■ 신경망을 이용한 얼굴 검출 기법
  신경망은 일반화 능력이 뛰어난 패턴 분류기의 일종으로 얼굴 검출에도 성공적으로 활용되었다. 신경망을 이용해서 얼굴을 검출하는 기본 원리는 얼굴 영상들(positive samp les)과 비얼굴 영상들(negative samples)을 분류할 수 있도록 신경망을 학습시키고 이를 이용해서 임의의 입력 영상에 대해서 얼굴인지의 여부를 판단하도록 한 것이다.   



  Rowley 등[3]은 [그림 6]과 같이 신경망을 이용한 얼굴 검출엔진을 구현하였다. 다양한 얼굴 영상들을 수집해서 일정한 규격의 얼굴 영역을 추출하고 이들을 다시 20x20 크기로 정규화 하는 과정을 거쳐서 신경망 훈련용 얼굴 영상들을 생성하였다.
  비얼굴 영상을 모으기 위해서 부트스트랩(boots trap) 알고리즘을 사용했으며, 신경망 훈련과정에서 비얼굴 영상이 얼굴 영상으로 인식되는(false detection) 샘플들을 모아 ne gative samples 로 신경망 훈련에 참여시켰다.
신경망 학습결과 눈, 코 및 입중에서 얼굴 검출에 가장 큰 영향을 미치는 요소에 대해서 실험해 본 결과 눈에 가장 의존적이고 그 다음 코 마지막으로 입이란 것을 알 수 있었다. 얼굴 전체 형태가 보이면 코나 입의 일부가 가려져도 얼굴 검출에 큰 영향을 미치지 않는다는 것을 알 수 있었다. 얼굴 검출 엔진을 CMU에서 수집한 130장의 얼굴영상 데이터베이스에 적용해보고 성능을 분석하였다. 130장의 영상에는 507명의 정면 얼굴들을 포함하고 있으며 오검출 비율을 테스트하기 위해서 복잡한 배경이 있는 영상들도 포함시켰다.
실험결과 다양한 신경망 구조에 따라 최저 76.9%에서 최고 92.5%의 얼굴 검출률을 보였다. 얼굴 검출률이 높을수록 많은 수의 오검출이 발생하였으며 507명의 얼굴 중에서 38개를 찾지 못한 신경망 구조에서는 862개의 오검출이 발생하였다.
  이 연구에서 신경망이 고속 얼굴 검출에 활용될 수 있음을 입증하였지만 오검출에 대한 연구가 여전히 계속될 필요가 있다는 것을 보여주었다.

3. Adaboost기반 얼굴 검출 기술 소개
  Viola와 Jones[4]는 적응적 부스팅 알고리즘 기반의 Adaboost를 이용하여 고속으로 정확하게 얼굴을 검출할 수 있는 연구 결과를 발표하였다. Adaboost 얼굴검출 기법이 발표되면서 얼굴인식 분야의 연구들이 급속도로 발전하게 되었다. 이후 Adaboost 초기 모델을 개선하기 위해 노력한 많은 연구결과들이 발표되었으며 최근까지도 얼굴 검출에서의 한계 상황을 극복하기 위한 다양한 연구들이 계속 진행되고 있다.
Haar 피처를 사용한 Adaboost는 작은 윈도우(예: 24x24) 내에 많은 종류의 Haar 피처들을 배치하고 훈련과정을 통해서 윈도우 내의 영상이 얼굴인지 아닌지를 잘 구분해 내는 능력이 높은 순서에 따라 작은 개수의 Haar 피처집합을 찾아내는 것으로 시작된다. Adaboost 얼굴 검출기는 [그림 7]에서와 같이 선택된 Haar 피처들(예: 500개에서 1,000개 정도)로 구성된 하나의 작은 윈도우를 영상 전체에 스캐닝하면서 해당 영역에 얼굴이 포함되었는지 여부를 판단하게 된다.



■ Harr 피쳐
  [그림 8]에서와 같이 Haar 피처는 흰색 영역의 화소값들의 합과 회색 영역의 화소값들의 합 사이의 차로 표현된다. 즉, 영역간 차가 특정 임계치 이상이면 1 아니면 0으로 피처 값이 표현된다. 24x24 크기의 작은 윈도우 내에 크기와 위치를 달리하면서 180,000개 이상의 Harr 피쳐를 배치할 수 있다. 



■ 적분 영상(Integral Image)
  Haar 피처를 계산할 때는 다양한 크기의 사각형 영역 내에 존재하는 화소들의 합계를 구하는 과정이 무수히 반복된다. 이는 계산 시간이 매우 많이 소요되는 작업으로서 별도의 효과적인 계산 방식이 요구된다. Viola와 Jones에 의해 발표된 연구결과에서는 적분 영상을 만들어서 이와 같은 사각형 영역 내의 화소값들의 합계를 고속으로 처리할 수 있는 방법을 발표하였다. 즉, 원본 영상을 대상으로 적분 영상을 미리 생성해 두면 영역의 크기와 관계없이 일정하게 고속으로 사각형 영역 내 화소값들의 합계를 구할 수 있다. 적분 영상을 구하는 원리를 [그림 9]에 설명하였다.  

 


■ Adaboost 훈련
  하나의 강한 분류기를 만드는 과정을 boosting이라 하며 강한 분류기들을 cascade 형태로 구성하여 최종적으로 Adaboost 얼굴 검출기를 만들게 된다. 하나의 강분류기를 만드는 boosting 알고리즘은 [그림 10]에 표현한 것처럼 다음과 같이 3단계로 이루어진다.

(1단계) 얼굴영상(positive samples)과 비얼굴영상(nega tive samples) 데이터를 수집한다.
(2단계)  18,000개 이상의 Haar 피처들 중에서 얼굴 검출률을 만족할 때까지 반복 작업을 수행하면서 얼굴과 비얼굴  을 잘 구분해 낼 수 있는 소수의 피처들을 찾는다.
(3단계) 단계 (2)에서 찾은 Haar 피처, 즉 약분류기(weak classifier)들을 모아서 하나의 강분류기(strong classifier)를 구성한다.



  강분류기들을 Cascade 형태로 연결하여 여러 단(stage)으로 구성한 Adaboost 고속 얼굴 검출기를 구성하는 과정은 [그림 11]에 표현된 것처럼 다음 4단계로 설명할 수 있다.

(1단계) 전체 단의 개수 및 각 단에서의 얼굴 검출률을 미리 정한다. 시작 단에서는 낮은 검출률을 갖지만 후반 단으로 갈수록 검출률을 높인다. 이때 각 단에서의 얼굴 검출률은 그 단의 강분류기를 구성하는 약분류기의 개수에 영향을 미치게 된다.
(2단계) 각 단에서 지정된 얼굴 검출률에 도달할 때까지 Haar 피처(약분류기)를 추가하면서 하나의 강분류기를 훈련시킨다.
(3단계) 하나의 단이 완성되면 (2 단계)의 과정을 반복하면서 다음 단의 강분류기를 훈련시킨다. 이때 이전 단의 훈련에 참가했던 negative 샘플들은 제외시키고 새로운 negative 샘플들을 추가한다. 그리고 positive 샘플의 경우 앞 단에서 구분할 수 없었던 샘플들만 다음 단의 훈련에 참가시킨다.
(4단계) 이상의 과정을 반복해서 원하는 단의 개수와 얼굴 검출률을 얻을 때까지 반복 훈련을 시켜서 최종적으로 Cascade 형태의 얼굴 검출용 Adaboost를 구성하게 된다.



 Cascade 형태의 Adaboost 얼굴 검출기를 구현[4]하고 얼굴 검출 시뮬레이션을 수행해 본 결과 기존의 얼굴 검출기들에 비해 대략 15배 정도로 검출 속도가 빨라졌으며 MIT 테스트 영상 집합에서 5개의 오검출이 발생하였지만 이전 알고리즘들보다 비교적 높은 79.9%의 얼굴 검출 결과를 얻을 수 있었다. 하지만 Adaboost 기반 얼굴 검출 알고리즘이 발표된 이후에도 더욱 고성능의 얼굴 검출기를 만들기 위한 연구들이 다양하게 진행되고 있다.

4. MCT-Adaboost기반 얼굴 검출 엔진의 구현
  Viola와 Jones가 발표한 Adaboost 얼굴 검출 기술[4]을 바탕으로 더욱 다양한 조건의 영상에서 얼굴을 고속으로 정확하게 검출하기 위한 연구 결과들이 많이 발표되었다. 최근 얼굴 검출 성능이 가장 우수한 알고리듬들 중 하나로 평가되고 있는 MCT(Modified Census Transform) 기반의 Ada boost를 이용한 얼굴 검출 엔진[5]을 구현하고 얼굴 검출 성능을 실험해 보았다.
  3x3 영역에서 중심 화소에 대한 주변 화소들의 밝기 변화에 따라 9개 비트 패턴으로 생성되는 MCT 피쳐를 정의하면 한 픽셀에 대해서 511개의 구조적 요소(Structural Elem ents)를 얻을 수 있다. 얼굴 검출 윈도우의 각 픽셀 위치에 대해 MCT기반 약분류기(Weak Classifier)를 정의할 수 있다. 훈련과정을 통해 약분류기들을 선택하여 생성한 강분류기(Strong Classifier)들을 4단으로 연결하여 만든 얼굴 검출기를 [그림 12]에 도시하였다.



  얼굴 검출 윈도우 크기가 22x22인 경우 기존 Adaboost 학습 알고리즘에서는 약 180,000개 이상의 약분류기를 대상으로 강분류기를 생성하는데 비해 MCT 기반 Adaboost의 경우 단지 484개의 화소 위치에 해당하는 약분류기들만 대상으로 하기 때문에 고속으로 얼굴 검출기를 학습시킬 수 있다는 장점이 있다. 그리고 기존 Haar 피쳐에 비해 분류능력이 비교적 높은 것으로 알려진 MCT 피쳐를 사용해서 강분류기를 구성하였기 때문에 피부색, 얼굴의 포즈, 얼굴의 회전 및 기울어짐, 얼굴의 크기 변화, 조명의 변화, 표정의 변화, 그리고 일부 가려진 얼굴 등 다양한 조건에서도 정확하게 얼굴을 검출해 낼 수 있다는 장점을 가지고 있다. 본 연구실에서 구현한 MCT-Adaboost기반 얼굴 검출기를 이용하여 MIT+CMU 얼굴 데이터베이스 및 스탠포드대학 얼굴 영상에서 얼굴을 검출한 예들을 [그림 13]에 도시하였다.



  얼굴 검출 실험결과 다양한 조건에서의 얼굴 영상들을 고속으로 검출할 수 있었고 특히 얼굴의 크기가 달라지거나 일부 가려진 얼굴들도 비교적 잘 검출 해낼 수 있었다. 일부 회전된 얼굴들을 검출하는데 실패하였으나 이는 훈련용 얼굴 데이터베이스를 좀 더 신중히 선택하면 개선할 수 있을 것으로 보인다.

5. 결론
  본 고에서는 얼굴 인식분야에서 중요한 전 단계인 얼굴 검출 기술의 발전 과정에 대해서 설명하였다. 기존에 연구되었던 피부색을 이용한 얼굴 검출, PCA를 이용한 얼굴 검출 그리고 신경망을 이용한 얼굴 검출 등에 대해서 간략하게 소개하였으며 Adaboost 얼굴 검출 알고리즘의 구현 및 동작 원리도 상세하게 소개하여 최근에 가장 성공적으로 사용되고 있는 MCT-Adaboost 얼굴 검출 알고리즘과 비교해 볼 수 있도록 하였다.
  현재 가장 우수한 얼굴 검출 성능을 보이고 있는 MCT-Adaboost 얼굴 검출 알고리즘을 직접 구현해보고 얼굴 검출 실험을 수행한 결과도 소개하였다.
 

[참고문헌]
[1] W. Mohsin, N. Ahmed and C. Mar, "Face Detection Project", Stanford University, Digital Image Processing, 2003.
[2] M. Turk and A. Pentland, "Face Recognition Using Eigenfaces", Computer Vision and pattern Recognition, pp.586-591, 1991.
[3] H. Rowley, S. baluja and T. Kanade, "Neural Network-Based Face Detection", Pattern Recognition and Machine Intelligence, pp. 1-27, 1998.
[4] P. Viola and M. Jones, "Robust Real-Time Face Detection", International Journal of Computer Vision, pp. 137-154, 2004.
[5] B. Froba and A. Ernst, "Face Detection with the Modified Census Transform", International Conference on Automatic Face and Gesture Recognition, 2004.




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