두 칼라 모델의 부분연결 MLP를 사용한 피부색 검출
상태바
두 칼라 모델의 부분연결 MLP를 사용한 피부색 검출
  • CCTV뉴스
  • 승인 2011.06.07 00:00
  • 댓글 0
이 기사를 공유합니다

피부색 검출은 피부색과 비피부색에 대한 분류 문제로 정의되며, 칼라 공간에 복잡하게 분포된 피부색을 검출하기 위해 고성능의 분류기를 필요로 하고 있다. 피부색 검출을 위한 분류기들은 대부분 하나의 칼라 모델을 사용하고 있으며, 그 중 MLP(Multi Layer Perceptron)가 다른 분류기 보다 적은 파라미터를 사용하면서 좋은 분류 성능을 보이고 있다. 하지만 MLP에서 사용되는 파라미터 수는 학습 및 분류 과정에서 계산량에 영향을 주기 때문에 감소시킬 필요성이 있으며, 칼라 모델에 따라 피부색의 분포 특성이 다르기 때문에 두 개의 칼라 모델을 사용함으로써 보다 효과적인 분류기를 구성할 수 있다. 하지만 두 개의 칼라 모델을 사용할 경우 MLP의 입력 차원의 증가로 파라미터 수가 증가되는 문제가 발생한다.

따라서 본 고에서는 두 칼라 모델의 구성 성분을 조합함으로써 피부색과 비피부색의 분류 성능을 향상 시키고, 적은 수의 파라미터가 사용된 피부색 검출 방법을 제안한다. 제안한 피부색 분류기는 신경망 모델인 MLP를 사용하였으며, MLP의 연결 강도를 각 칼라모델에 따라 부분적으로 연결하는 방법을 제안함으로써 연결 강도의 수를 감소 시켰다.

실험 결과 제안한 부분연결 MLP를 RGB와 CbCr 칼라 정보로 구성 하였을 때, 38개의 연결 강도를 사용하였으며 피부색과 비피부색에 대해 91.8%의 분류율을 달성하였다.

피부색 검출은 칼라 이미지 내에 포함된 사람의 피부색 영역 추출을 목적으로 하고 있다. 그리고 추출된 피부색 영역은 앵커 프레임 검출, 손 검출, 눈 검출 그리고 얼굴 검출 등과 같은 응용분야에서 관심 있는 객체의 탐색영역을 축소시킴으로써 처리 시간을 감소시키기 위해 사용되며, 또한 크기 변화에 영향을 받지 않는 좋은 특징이다.

피부색 검출은 특정 칼라 모델의 공간에서 피부색과 비피부색에 대한 분류 문제로 정의 된다. 따라서 피부색과 비피부색을 분류하기 위한 분류기와 칼라 모델의 선택은 중요한 문제이다.

피부색 검출을 위한 가장 간단한 분류기로는 칼라 영역에서 피부의 출현 빈도가 높은 영역에 대한 임계치(Threshold)를 결정하여 사용하는 방법이 있다. 하지만 피부색은 카메라, 빛, 인종 등의 외부 환경에 따른 영향으로 칼라 공간에서 복잡하게 분포하기 때문에 임계치를 사용할 경우 검출율이 감소하는 문제점이 있다.

최근에는 외부 환경에 강인한 피부색 검출을 위해 고성능의 분류기를 이용한 방법들이 연구 되어 지고 있다. Jones은 칼라 공간에서 피부색과 비피부색의 히스토그램으로부터 각각의 조건부확률밀도함수를 추정하고, 베이지안 분류기를 이용하여 피부색 영역을 추출하였다. Greenspan는 피부색 영역 추출을 위해 칼라 공간에서 피부색에 대한 분포에 대한 Gaussian Mixture model을 사용하였다. 그리고 Boussaid은 피부색과 비피부색에 대한 칼라 정보를 신경망 모델인 MLP에 학습시킴으로써 피부색을 검출하였다.

Phung은 피부색 검출을 위한 다양한 분류 알고리즘들의 성능을 비교 평가하였으며, 베이지안 분류기가 다른 알고리즘에 비해 좋은 분류 성능을 보이고 있다.

하지만 베이지안 분류기에서 사용되는 피부색과 비피부색에 대한 조건부확률밀도함수를 모델링하기 위해서는 많은 파라미터가 필요하다. MLP의 경우 베이지안 분류기와 비슷한 분류 성능을 보이면서 적은 파라미터를 사용하고 있다. 그러나 MLP에서 사용되는 파라미터 즉, 연결 강도의 수는 학습 및 학습 후 분류 과정에서 계산량에 영향을 주기 때문에 감소시킬 필요가 있다.

피부색 분류기를 설계하는데 있어 칼라 모델의 선택은 분류기의 분류 특성과 입력차원을 결정하는 중요한 요소이다. 피부색 분류를 위해 사용되는 가장 기본적인 칼라 모델은 RGB이며, R(빨강색), G(녹색), B(파랑색)의 기본적인 성분으로 구성되어 있다. YCbCr은 RGB 칼라 모델의 선형적인 변환 모델로써 밝기 정보를 나타내는 Y 채널 그리고 청색, 적색의 색차를 나타내는 Cb, Cr로 구성 되어 있다. 마지막으로 HSV는 H(색상), S(채도), V(명도)의 성분으로 구성 되어 있다. 각 칼라 모델의 구성 성분들이 다르기 때문에 칼라 모델에 따라 피부색과 비피부색의 분포 특성이 다르다. 그리고 분류기 설계를 위해 선택된 칼라 모델에 따라 분류 특성이 결정된다. 따라서 두 개의 칼라 모델의 구성 성분을 조합함으로써 보다 좋은 분류 성능을 획득할 수 있다. 그러나 두 칼라 모델의 구성 성분을 조합할 경우 분류기의 입력 차원이 증가되기 때문에 피부색 분류기의 구성을 위해서는 보다 많은 파라미터가 필요한 문제점이 발생된다.

본 고에서는 두 칼라 모델의 구성 성분을 조합함으로써 피부색 분류 성능을 향상 시키고, 적은 수의 파라미터가 사용된 피부색 분류 방법을 제안한다. 제안한 피부색 분류기에서는 신경망 모델인 MLP를 사용하였으며, 각 칼라모델에 따라 부분적인 연결을 가지도록 네트워크를 구성함으로써 전체적인 연결 강도의 수를 감소시켰다.

제안한 방법의 유효성을 평가하기 위해 단일 칼라 모델을 사용하는 MLP와 제안한 부분연결 MLP에 대한 피부색 분류 성능과 사용된 전체 연결 강도 수를 비교하였다. 제안한 부분연결 MLP에서 사용된 칼라 정보는 RGB, YCbCr, 그리고 HSV 칼라 모델 중 두 개의 칼라 모델의 구성 성분을 조합하여 사용하였다. 실험 결과 제안한 MLP에서 RGB와 CbCr 칼라 정보를 사용한 경우 38개의 연결 강도를 사용하여 피부색과 비피부색에 대해 91.80%의 분류율을 달성하였다.

칼라 모델
피부색은 인종에 따른 피부색의 다양성과 주변 빛의 조건에 따른 피부색의 변화에 의해 칼라 공간에서 복잡한 형태로 분포되어 나타난다. 또한 칼라 모델에 따라 다른 구성 성분을 가지고 있기 때문에 피부색의 분포 특성이 다르게 나타난다. 그러므로 피부색 분류기의 분류 특성은 선택된 칼라 모델에 따라 결정된다. 여기서는 피부색 분류기에서 많이 사용되는 RGB, YCbCr, 그리고 HSV 칼라모델의 구성 성분과 피부색의 분포 특성에 대해 설명한다.

RGB 칼라 모델
RGB 칼라는 디지털 칼라 이미지를 저장하고 표현하기 위한 가장 일반적인 칼라 모델로 칼라 이미지를 나타내는 가장 일반적인 모델이며, R(빨강색), G(녹색), B(파랑색)의 기본 성분으로 구성된다.

그림 1은 B값의 단면에 대해 R과 G 공간에서 피부색과 비피부색의 분포를 각각 검정색과 회색으로 나타내고 있다. 피부색은 RGB 칼라 공간에서 넓게 분포하고 있으며, 비피부색과의 경계가 복잡한 형태로 나타난다.


YCbCr 칼라 모델
YCbCr 칼라는 RGB 칼라 성분들의 중복성을 감소시키며, 각 구성 성분이 통계적으로 독립적인 특성을 가지고 있다. YCbCr와 RGB 칼라 간의 변환은 선형적이며, 변환식은 다음과 같다.


Y = 0.299R + 0.587G + 0.114B
Cb = -0.1674R - 0.33126G + 0.5B
Cr = 0.05R - 0.4189G - 0.081331B                         (1)


변환식에서 Y는 밝기 정보를, Cb와 Cr은 각각 청색과 적색에 대한 색차를 나타낸다.

Y값의 단면에 대해 Cb와 Cr에서 피부색과 비피부색의 분포는 그림 2와 같으며, 각각 검정색과 회색으로 표현한다. 피부색은 Cb와 Cr 공간의 특정 범위에서 분포하고 있으며, Y값에 대해서는 전체 범위에서 넓게 분포 되어 있다.


HSV 칼라 모델
HSV는 사람의 시각 세포가 칼라 정보를 인지하는 관점과 매우 유사한 모델이며, RGB 칼라 모델에 대해 비선형 변환을 한다. 변화식은 다음과 같다.



변환식에서 RGB값은 [0, 1] 범위로 정규화된 값을 사용한다. 색상 정보를 표현하는 H는 [0, 360] 범위의 값을 가지며, 채도 정보와 밝기 정보를 표현하는 S와 V는 [0, 1] 범위의 값을 가진다.


그림 3은 V 단면에 대해 H와 S 공간에서 피부색과 비피부색의 분포를 각각 검정색과 회색으로 나타내고 있다. 피부색은 H가 [-45, 45]범위인 빨강색 부분에서 분포하고 있다.

각 칼라모델에서 피부색과 비피부색의 경계가 복잡하게 존재하기 때문에 MLP에서 피부색과 비피부색을 분류하기 위한 결정경계를 찾기 위해서는 많은 수의 연결 강도가 필요하다. 그리고 각 칼라 모델에 따라 피부색의 분포 특성이 다르기 때문에 두 개의 칼라 모델을 사용함으로써 보다 좋은 분류 성능을 가지는 MLP를 구성할 수 있다.

그러나 두 개의 칼라 모델을 사용할 경우 단일의 칼라 모델을 사용할 때 보다 많은 수의 연결 강도가 요구되는 문제점이 발생한다. 본 고에서는 두 개의 칼라 모델을 사용하여 분류 성능을 향상 시키고, 연결 강도수의 증가 문제를 해결하기 위해 칼라 모델에 따라 부분연결 MLP를 구성하였다.


피부색 검출을 위한 MLP와 부분연결 MLP
MLP는 피부색 검출, 얼굴 검출, 음성/음악분류 등과 같은 패턴분류 문제에서 많이 사용되는 신경망 모델이다. MLP는 여러 개의 뉴런을 여러 층으로 연결하고 학습을 통해 복잡한 영역을 곡면으로 둘러싸는 결정 영역을 획득할 수 있다. 따라서 칼라 공간에서 복잡한 분포를 가지는 피부색과 비피부색 분류문제에서 효과적인 분류기로 사용된다.

단일칼라 모델의 MLP
단일 칼라 모델을 사용하는 MLP의 구조는 입력층 벡터 X(1×I ) , 은닉층 벡터 H(1×J ) 그리고 출력층 벡터 Y(1×K )로 구성되어 있으며 아래 그림과 같다.

입력층의 벡터는 각 칼라 모델을 구성하는 3개의 성분을 사용하고, 출력층의 벡터는 1개로 피부색과 비피부색을 판단하는 기준이 된다. 입력층과 은닉층 그리고 은닉층과 출력층 간의 연결 강도는 각각 V(1×J )와 W(J×K ) 행렬 형태로 표현한다. 그리고 A(1×J )와 B(1×K )는 은닉층과 출력층의 바이어스(bias)이다. 은닉층 j 번째의 뉴런에 대한 입력 가중합 netj와 출력 hj은 식 (3)과 같다. 여기서 f(•)는 활성화 함수이며, 단조 증가, 연속, 미분 가능 함수의 조건을 만족하여야 한다.



출력층 k번째의 뉴런에 대한 입력 가중합 netk와 출력 yk은 식 (4)과 같다.



MLP의 학습은 목표 벡터 T(1×K )과 출력 벡터 Y(1×K )간의 오차 E가 최소가 되도록 네트워크의 모든 연결 강도 값을 결정하는 역전파(BP : Back- Propagation) 알고리즘이 사용된다. 최소 자승오차 E은 식 (5)과 같다.



그림 4의 MLP 구조에서 하나의 뉴런이 추가되면 추가된 뉴런과 이웃층의 모든 뉴런간의 연결 강도를 추가 시켜주어야 하기 때문에 식 (3)과 식 (4)의 계산량은 증가 된다. 그리고 학습과정에서 결정될 연결 강도의 수가 증가되기 때문에 학습 속도가 느려진다. 따라서 일반적인 MLP를 사용하는 피부색 분류기에서 다수의 칼라 모델을 사용할 경우 연결 강도 수가 증가되기 때문에 MLP의 동작 및 학습과정에서 계산량이 증가되는 문제가 발생한다.

또한 다수의 칼라 모델의 사용은 피부색과 비피부색에 대한 패턴공간의 차원수를 증가시키기 때문에 피부색과 비피부색의 결정 경계는 더욱 복잡해진다. 따라서 보다 많은 수의 은닉층 뉴런들이 요구되어 진다.


두 칼라 모델의 부분연결 MLP의 제안
본 고에서는 칼라 모델에 따른 부분연결 MLP를 제안함으로써 연결 강도 증가 문제를 해결하였다. 제안한 부분연결 MLP의 구조는 아래 그림 5와 같다. n=1인 부분 네트워크의 입력층은 한 칼라 모델의 모든 성분을 입력으로 사용하고, n=2인 부분 네트워크의 입력은 다른 칼라 모델의 성분 중 밝기 성분을 제외한 나머지 성분을 입력으로 사용한다. 각 부분네트워크
n의 은닉층 j번째 뉴런에 대한 입력 가중합 netj 와 출력 hj 은 식 (6)과 같다.



출력층은 모든 부분 네트워크의 은닉층 뉴런과 연결되며, 입력 가중합 netk 와 출력 yk은 식 (7)과 같다.



피부색 검출을 위해 부분연결 MLP은 칼라 모델에 따라 부분 네트워크가 구성되기 때문에 뉴런이 추가되면 추가된 뉴런과 해당 부분 네트워크의 이웃 층의 뉴런간의 연결 강도만 추가된다. 또한 피부색과 비피부색에 대한 패턴공간의 차원이 두 개의 부분 네트워크로 분할됨으로써 전체 패턴공간의 복잡성이 분산된다. 그리고 부분 네트워크들을 하나의 출력층에 통합되기 때문에 각 부분 네트워크 간의 상호작용을 통해 적은 수의 은닉층 뉴런들로 보다 좋은 분류 성능을 획득하였다.


실험 및 분석

단일 칼라 모델 MLP와 본 고에서 제안한 두 칼라 모델의 부분 연결 MLP에 대한 피부색 분류 성능과 사용된 연결 강도의 수를 비교하였다. 또한 다양한 칼라 모델을 대상으로 MLP 기반의 피부색 분류기를 설계하여 칼라 모델에 다른 분류 특성을 분석하였다.

실험 데이터
본 고에서 피부색 분류 실험을 위해 사용된 이미지 집합 그리고 피부색과 비피부색의 픽셀의 수는 표1과 같다. VALID Dataset는 106명의 사람에 대해 5가지 다른 실내조명 환경의 칼라 이미지로 구성되어 있고, Weber''s Dataset는 27명의 사람에 대해 다양한 빛의 세기를 가지는 실내외 환경의 칼라 이미지로 구성되어 있다. 전체 실험 데이터는 2개의 Dataset과 Web에서 수집된 데이터로 구성되어 있으며, 총 1,220개의 칼라 이미지를 사용하였다.


실험 결과

본 고에서는 MLP 기반의 피부색 분류기들의 학습을 위한 훈련 패턴 집합으로 표1의 피부색 픽셀과 비피부색 픽셀들 중 각각 8%를 랜덤하게 추출하여 사용하였다. 그리고 활성화 함수는 양극성 시그모이드 함수를 사용하였고, 학습 알고리즘으로는 역전파 알고리즘을 사용하였다.

실험 결과에 대한 평가 파라미터는 CDR(Correct Detection Rate), FDR(False Detection Rate) 그리고 CR(Overall Classification Rate)을 사용하였다. CDR은 실험에 사용된 피부색 픽셀 중 올바르게 검출된 비율을 나타내며, FDR은 비피부색 픽셀 중 피부색으로 오검출된 비율을 나타낸다. 그리고 CR은 실험에 사용된 전체 픽셀 중 올바르게 분류된 비율을 나타낸다.

실험에 사용된 MLP 기반의 피부색 분류기들은 표 2와 같다. 단일 칼라 MLP는 하나의 칼라모델의 성분을 피부색 검출을 위해 사용하고, 은닉층 뉴런은 [6,15] 범위의 수를 사용하였다. 제안한 두 칼라 모델의 부분연결 MLP는 n=1인 부분 네트워크는 하나의 칼라모델의 모든 성분을 사용하고, n=2인 부분 네트워크는 밝기 성분은 제외한 두 개의 성분을 사용하였다. RGB 칼라 모델의 경우 모든 성분의 조합으로써 밝기 값이 결정됨으로 피부색의 분포범위가 적은 R과 G를 사용하였다. 그리고 [5,8] 범위의 은닉층 뉴런수를 사용하였으며, 각 부분 네트워크의 은닉층 뉴런수는 입력 뉴런수 보다 크거나 같게 설정하였다.

그림 6은 연결 강도 수에 따른 각 분류기의 CDR를 나타내고 있다. x축에서 연결 강도수는 W와 은닉층의 뉴런수는 N으로 나타내고 있으며, 제안한 MLP의 경우 각 부분 네트워크에서 사용된 뉴런수를 표현하였다.

y축은 FDR= 10%일 때 CDR를 나타내고 있다. MLP들의 구성에 있어 HSV칼라 모델의 구성 성분이 사용되면 은닉층 뉴런 수에 따른 CDR의 변화가 큰 것을 알 수 있다. 그리고 단일 칼라 MLP와 비교 하면, 사용된 연결 강도의 수는 감소하였고, CDR은 증가 한 것을 알 수 있다.


표 3과 그림 7은 그림 6에서 최대 CDR인 연결 강도를 사용한 MLP들에 대한 분류율과 ROC(Receiver Operating Characteristic) 곡선을 나타내고 있다. 표 3에서 최적의 Max CR를 가지는 제안한 MLP의 RGB_CbCr과 단일 칼라 MLP의 YCbCr를 비교하면, 사용된 연결 강도는 18개 감소하였으며, Max CR은 0.94% 증가하였다.


    

그림 7은 FDR에 대응 되는 CDR를 나타낸 그래프로 제안한 MLP들이 단일 칼라 MLP들보다 좋은 성능의 곡선을 나타내고 있다.


그림 8은 피부색의 밝기에 따른 각 MLP들의 피부색에 대해 올바르게 검출된 픽셀수를 나타내고 있다. YCbCr은 각 구성 성분이 독립적이기 때문에 다른 구성 성분의 영향 없이 피부색의 밝기 값에 따른 분석이 가능하다. 따라서 YCbCr 중 밝기 정보를 나타내는 Y값에 따른 발생 빈도를 분석하고, 각 Y값에 따른 MLP들의 피부색에 대해 올바르게 검출된 픽셀수를 분석한다.

그림 8에서 x축은 Y성분의 값을 나타내고, y축은 FDR=10%일 때의 임계값에 의해 피부색으로 올바르게 검출된 픽셀 수를 나타내고 있다. 그리고 실선은 각 밝기 값에 대한 피부색의 발생 빈도를 나타내고, 굵은선은 피부색으로 올바르게 검출된 픽셀 수를 나타낸다. 단일 칼라 MLP 중 RGB와 YCbCr의 경우 낮은 밝기값을 가지는 피부색 픽셀에 대한 검출 되지 않고 있으며, HSV은 검출된 비율이 낮다.


반면, 제안한 MLP들의 경우 모든 밝기 값에서 높은 검출율을 보이고 있다.

그림 9는 MLP들의 피부색 검출 결과를 나타내고 있다. 그림 9(a)는 빛이 사람의 앞쪽에 있는 실내 영상이며, 단일 칼라 MLP들의 경우 빛에 영향에 의해 사람의 그림자 부분이 피부색으로 오검출 되었으며, 제안한 MLP들은 정확히 피부색 영역들이 검출된 것을 알 수 있다. 그림 9(b)은 그늘진 곳에 사람이 존재하는 실외 영상이며, 단일 칼라 MLP들의 경우 피부색 영역들 중 미검출 영역이 많이 존재하는 것을 알 수 있다.


먼저 제안한 MLP와 단일 칼라 MLP에서 사용된 평균 연결 강도 수와 FDR=10%일 때 평균 CDR를 비교하면 연결 강도 수는 평균 23개 감소하였고 CDR은 2.11%의 성능 향상을 달성 하였다. 피부색의 밝기에 따른 검출을 비교해 보면 제안한 MLP의 경우 모든 밝기에서 높은 검출율을 보이고 있다.

즉, 제안한 칼라 모델의 부분 연결 MLP는 각기 다른 칼라 모델 정보가 적용된 부분 네트워크간의 상호작용을 통해 보다 적은 수의 연결 강도를 사용하여 단일 칼라 MLP 보다 높은 분류 성능을 보이고 있으며, 피부색의 밝기에 강인하다. HSV 칼라 정보를 사용한 경우 일반적으로 많이 사용되는 칼라 정보인 RGB 칼라 정보로부터 변환식이 복잡하며, 또한 HSV와 RGB는 서로 비선형 변환이다. 따라서 RGB 칼라와 YCbCr 칼라 정보가 사용된 부분연결 MLP가 보다 구현이 용이하다.

결론

본 고에서는 두 칼라 모델 정보의 조합을 통한 부분 연결 MLP에 기반한 피부색 검출 방법을 제안하였다. 제안한 방법은 MLP의 구성에 있어 칼라 정보에 따라 부분 네트워크를 구성함으로써 MLP의 입력 차원 증가에 따른 전체 연결 강도수의 증가 문제를 해결하였으며, 입력 차원에 대한 복잡성을 각 부분 네트워크로 분산시켰다. 또한 각 부분 네트워크간의 상호작용을 통해 단일 칼라 정보를 사용하는 MLP보다 높은 피부색 분류율을 획득하였으며, 피부색의 밝기에도 강인한 피부색 검출기를 구성하였다.

실험 결과 RGB와 CbCr 칼라 정보를 사용한 경우 38개의 연결 강도를 사용하여 피부색과 비피부색에 대해 91.80%의 분류율을 나타내었으며, 밝기값에 따른 분류실험 결과 밝기값에 영향을 거의 받지 않고 피부색이 검출되기 때문에 다양한 응용에서 효과적으로 사용할 수 있다.

대부분의 피부색 검출 방법은 픽셀단위의 칼라 정보만을 사용하고 있기 때문에 주변 환경의 영향으로 검출된 영역에 대한 의미정보를 판단하기 어려운 문제가 발생되고 있으며, 이러한 문제를 해결하기 위해서는 영역단위의 피부색 검출에 대한 연구가 필요하다.



 

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