계층화된 3차원 피부색 모델을 이용한 피부색 분할
상태바
계층화된 3차원 피부색 모델을 이용한 피부색 분할
  • CCTV뉴스
  • 승인 2011.07.06 00:00
  • 댓글 0
이 기사를 공유합니다

피부색 영역의 검출을 위한 기존 연구들은 영상의 각 픽셀을 피부에 속하는 픽셀(피부픽셀)과 속하지 않는 픽셀(비피부픽셀)로 나누게 된다. 이때 정확한 피부색 영역을 검출하는 작업은 영상의 조명효과 및 화장에 의한 피부색 변형 등으로 매우 어려운 작업이다. 본 고에서는 피부 영역 검출을 어렵게 하는 여러 가지 요인을 포함한 영상들로부터 효율적으로 피부영역을 검출하기 위해 계층화된 피부 모델과 컨텍스트 정보를 통합하여 피부 영역 검출의 성능을 향상시키는 방법을 제안한다. 먼저 획득된 영상들로부터 뽑아낸 피부색 색깔 값들의 확률분포를 YCbCr컬러 공간에 만들고, 그 확률값에 따라 피부(Skin), 피부후보(Skinness), 비피부(Non-skin)의 3계층으로 분류한 3차원 피부색 모델을 만든다. 계층화된 피부색 모델을 이용하여 각 픽셀의 피부색 여부를 결정하고, 피부후보(Skinness)색에 해당하는 경우에는 이웃 화소의 정보를 고려하여 피부색 또는 비피부색으로 정하게 된다. 제안 방법의 사용으로 피부색이 왜곡되었거나 피부색과 유사한 객체가 포함된 다양한 영상들에서도 효율적으로 피부 영역을 분할할 수 있었다.

일반 영상에서 피부색과 같은 특정 종류의 색깔을 갖는 영역을 추출하는 작업은 매우 유용한 기술로 폭넓은 응용 분야를 가지고 있다. 특히 피부색을 갖는 영역은 활용 범위가 넓고 다양한 선행 연구들이 진행되고 있는 분야라고 할 수 있다.

일반적으로 얼굴이나 손과 같은 인체의 부분을 검출하고 추적하는 시스템들에서는 입력 영상으로부터 피부 영역을 분할(Skin region segmentation)하는 전처리 단계가 먼저 선행된다. 이는 얼굴, 손 등과 같은 관심 객체를 검색할 때 검색 대상을 전체 영상영역 대신 피부색으로 분할된 영역으로 축소시킬 수 있기 때문에 보다 정확하고 실시간 처리가 가능하게 되기 때문이다.

일반적인 피부 영역 분할 방법으로는 컬러 영상에서 각각의 단일 화소의 색상정보를 조사하여 피부색화소와 비피부색화소로 분류하는 저수준 처리방법이 사용되고 있다. 이 방법은 사람의 피부색은 다른 물체와 구분이 되는 일정 범위 내의 컬러로 구성된다는 특성에 기인한 것이다. 그러나 이러한 저수준 피부 검출 방법들은 복잡한 환경 요인을 가진 영상들의 처리에서 충분히 강건하지 못한 결과를 보여주고 있다. 즉, 다양한 컬러 영상들에서 피부색 색상 정보는 조명의 세기 및 방향에 매우 민감하게 반응하고 있고, 화장 등을 통한 색상 변형사진들에서는 좋은 결과를 보여주지 못하고 있다.

언급된 여러 문제들을 해결하기 위해 주어진 컬러 공간에서의 피부색 범위를 조절하여 피부 영역을 분류하는 알고리즘이 많이 연구 되어왔다. 이 알고리즘들은 조명 요소를 제거한 상태에서 고정된 임계 영역을 사용하는 방법과 통계적 모델을 이용하여 피부/비피부를 분류하는 방법으로 나눌 수 있다. 조명 요소가 제거된 고정된 피부색 임계영역을 사용하는 방법으로는 Sobottka와 Pitas가 HSI 컬러 공간에서 조명 요소 I를 제거한 HS평면상에서 영역을 설정한 것과 D.Chai가 YCbCr 컬러 공간에서 밝기 값 Y를 제거한 CbCr 공간에서 고정된 임계값을 사용한 것들이 있다. 이 방법은 빠른 속도로 피부색 영역을 검출해 주지만 피부색과 유사한 영역이 영상에 많이 포함된 경우 피부 화소 검출 결과가 좋지 않은 단점이 있다.

통계적 모델 방법들에서는 GMM과 히스토그램 모델이 가장 우수하다. 이 방법들은 피부/비피부 확률 계산에서 GMM은 파라메타를 사용하고, 히스토그램 모델은 LUTs를 사용한다. 히스토그램 모델 방법은 Chang와 Jones and Rehg 등이 제안한 것으로 RGB 또는 YCbCr 컬러 공간에서 히스토그램 기술을 사용한 베이지언(Bayesian) 분류 기법이다. GMM 방법은 Terrillon이 단일 가우시안(Unimodal Gaussian) 모델과 혼합 가우시안(Gaussian Mixture) 모델을 사용한 것이 있다. 가우시안 분류 방법은 적은 양의 훈련 데이터를 필요로 하지만 지수와 루트 등 복잡한 계산을 필요로 하는 단점이 있다.

기존의 연구들은 조명효과를 제거하는 방법을 사용하여 피부색 범위를 검출하였으나 본 연구에서는 조명과 같은 주변 환경의 변화를 함께 고려한 피부색 검출 방법을 제안하고자 한다. 피부색 범위를 정하기 위해 조명조건이 포함된 해당 피부색에 대해 확률분포 값을 활용하여 컬러 공간을 피부색과 비피부색으로 분류하는 3D 피부색 모델을 제시한다. 경계 지역에 해당하는 부분에 대해서는 주변의 컨텍스트 정보를 활용하여 피부색 여부를 결정할 수 있도록 피부색 공간을 3개의 구역(Skin, Skinness, Non-skin)으로 계층화하는 방법을 사용한다.

계층화된 3차원 피부색 모델 생성

본 고에서 제안한 알고리즘의 전체적인 흐름은 그림 1과 같이 구성된다. 먼저 입력 영상을 YCbCr 컬러공간으로 변환하고, 미리 만들어진 계층화된 3차원 피부색 모델을 이용하여 컬러 영상의 각 픽셀을 피부색과 비피부색으로 분할하는 과정으로 구성하였다.


그림 1. 전체 시스템 흐름도
본 고에서 사용한 계층화된 3차원 피부색 모델은 이전의 연구에서 소개한 방법을 바탕으로  YCbCr 컬러 공간에서의 피부색 모델을 생성하였다. 피부색 모델 생성 과정은 다인종 영상 550장의 훈련 데이터를 사용하여 만들어지며 크게 3단계로 구성이 된다.

첫 번째 단계는 얼굴, 손, 팔 등과 같이 피부색이 포함된 영상으로부터 피부색 샘플을 추출하는 단계이다. 두 번째는 선택된 피부색 색깔 값을 YCbCr 컬러 공간에서의 색깔 값으로 변환하는 것이다. YCbCr 컬러 공간은 다른 컬러 공간에 비해 피부 색깔 값의 범위가 좁은 컬러 공간에 밀집되어 분포되는 특성을 가지고 있어 선택하였다.

세 번째는 피부 영역 샘플 값들을 누적하여 피부색 3차원 모델을 작성하게 된다. 3차원 피부색 모델은 YCbCr의 각 요소를 각각 X, Y, Z 축으로 할당하였고, 이들을 인덱스로 사용한 3차원 히스토그램 h[X][Y][Z]을 식(1)와 같이 학습 시켰다. 


식(1)에서 I(X,Y,Z)는 피부색 샘플 화소의 YCbCr 값을 나타내며, SP는 피부 픽셀 영역을, NSP는 비피부픽셀 영역을 나타낸다. 식(1)에 의해 학습된 히스토그램 h[X][Y][Z]의 값이 1 이상인 것은 피부 화소가 한번 이상 나타난 것을 의미한다. 인종에 따라 훈련된 컬러 공간 YCbCr에 대한 히스토그램 값을 3차원으로 표시하면 그림 2와 같이 나타난다.


그림 2. 3D 피부색 모델
그림 2의 그림들은 인종에 따라 피부 컬러 값의 범위가 피부색 컬러 공간 영역 내에서도 차이가 난다는 사실에 기초하여 인종별(1행: 백인, 2행: 흑인, 3행: 황인)로 히스토그램을 3차원으로 표시한 것과 모든 인종의 값을 합친 결과(4행)를 보여주고 있다. 여기서, Y, Cb, Cr값은 0≤Y <256. 77≤Cb≤133, 130≤Cr≤180의 범위를 갖는다. 그림 2의 (a)는 가로축 Y값에 대해 세로축 Cr값, 깊이 Cb로 나타낸 것이고, (b)는 세로축 Cb값, 깊이를 Cr값으로 보여주고 있다.

위의 3차원 피부색 영역을 살펴보면 중간 밝기에서는 영역이 크게 나타나고 양쪽으로 갈수록 피부색에 해당하는 영역이 계속적으로 줄어드는 것을 확인할 수 있다. 따라서 기존의 논문과 같이 밝기 값을 무시하는 것이 아니라 본 고에서 제시한 것과 같이 밝기 값을 고려하여야 피부색 영역의 검출에서 높은 검출 정확성을 얻을 수 있다는 사실을 확인할 수 있다.

생성된 3차원 피부색 모델로부터 피부색과 비피부색 영역에 대한 경계를 정확하게 분류하는 것은 거의 불가능하다. 그리하여 다양한 입력 영상을 통해 획득한 피부색 확률 값 p(x|Skin)에 따라 모든 색깔값을 3개 계층으로 분류하였다. 계층화된 각각의 영역은 높은 피부색 확률 값을 갖는 피부색(Skin) 영역, Skin과 Non-skin 사이의 확률 값을 갖는 피부색 후보 영역(Skinness), 그리고 아주 낮은 피부색 확률 값을 가진 비피부색(Non-skin) 영역으로 구분하였다. 아래의 그림 3의 (a)는 그림 2의 3차원 피부색 공간에서 밝기(Y)값이 90(위쪽 행), 128(중간행), 180(아래쪽 행)일 때의 단면도 모습이다.


그림 3에서 회색 부분은 히스토그램의 값이 거의 0인 부분이고, 흰색은 낮은 값을 갖는 부분, 그 안쪽에 속하는 검은색 부분은 히스토그램 값이 높은 부분을 나타낸다.

피부색 후보 영역을 너무 크게 잡거나 너무 작게 잡으면 전체적인 효율성이 떨어지게 된다. 그리하여 본 연구에서는 아래의 식(2)와 같이 피부색 후보 영역을 설정한다. 


식 (2)에서 P(YCbCr|Skin)은 h[X]Y][Z]/Tc이다. 여기서 Tc는 피부색 모델 훈련에 사용된 전체 피부픽셀의 개수를 나타낸다. 그리고 임계값 t1과 t2는  실험을 통해 피부후보 영역이 적당한 크기를 갖도록 식 (3)의 방법으로 선택하였다. 


식(3)에서 FRR은 피부 화소가 비피부 화소로 나타난 미검출률(FRR : False Rejection Rate)을 나타내고, FDR은 배경이나 객체와 같이 비피부화소가 피부화소로 검출되는 오검출률(FDR : False Detection Rate)을 나타낸다.

컨텍스트 정보에 의한 피부색 분류

특정 컬러 값을 갖는 화소에 대해 앞에서 개발한 계층화된 피부색 모델을 바탕으로 피부화소에 해당하는지를 결정하여야 한다. 만약 어떤 화소의 색깔값이 Skin 영역과 Non-skin 영역에 속하면 명확하게 구분이 되지만, 해당 색깔값이 Skinness에 속하게 되면 Skin 여부를 결정하는 추가 작업을 하여야 한다. 이를 위해 피부색은 일정 크기 이상으로 모여 있어야 한다는 특징을 활용하여 결정하게 된다.

피부색이 일정 크기 이상으로 모여 있어야 한다는 특징 때문에 Skinness에 속한 픽셀의 색깔값은 해당 픽셀의 이웃 픽셀들의 색깔값을 고려하여 Skin 여부를 결정하는 것이 더 효율적이다.

따라서 Skinness에 속한 픽셀의 피부색 영역을 결정하기 위해서는 주변 화소의 픽셀 정보인 컨텍스트(인접한 화소) 정보를 활용하는 방법을 개발하여야 한다. 이때 고려할 이웃화소의 범위를 그림 4와 같이 3개의 패턴을 비교하여 선택하게 된다. 주어진 범위는 화소 f(x,y)로부터의 거리가 1, 약 1.5, 약 2.5 의 범위 안에 들어오는 화소들로 선택한 예들이다.

그림 4에서 가운데 흰색으로 표시된 f(x,y)가 Skinness에 속하는 화소이고, 회색 영역은 피부색(Skin)과 비피부색(Non-skin)을 결정하기 위해 참조할 인접 화소의 범위를 나타낸다. 본 연구에서는 식(4)와 같이  D(x,y)값을 계산하여 피부색 여부를 결정하게 된다.



M은 그림 4의 마스크를 의미한다. 계산된 D(x,y)가 t1값 보다 크면 f(x,y)는 피부화소가 되고 그렇지 않으면 비피부화소가 된다.

실험 및 결과

제안된 모델을 이용하여 피부색을 분류한 시스템의 성능을 분석하기 위한 다양한 실험을 하였다. 기존 시스템과의 비교를 위해서는 통계적 접근 방법으로 유사한 흐름을 갖는 베이지언 방법과 비교를 하게 된다. 이때 사용된 제안 방법과 베이지언 방법을 위해 사용된 테스트 샘플 영상은 표 1에 주어진 것과 같이 약 1000장의 일반 영상을 사용하였다. 영상들은 디지털 카메라로 촬영된 600장과 인터넷으로부터 획득한 400장의 영상들로 그 해상도는 240×320에서 640×768이다.


대부분의 영상들은 정면과 약 45도 이내의 각을 갖는 측면 얼굴을 포함한 컬러 영상이고, 이 영상들로부터 약 26,122,231개 화소를 반자동으로 추출하여 모델 구현을 위한 학습 데이터로 사용하였다. 본 고의 제안 방법과 성능을 비교할 베이지언 방법도 같은 영상을 대상으로 하였으며, Skin 화소 훈련을 위해 32,442,338 pixel을, Non-skin 화소 훈련을 위해 41,712,898 화소를 사용하였다.


그림 5는 표1의 훈련데이터를 사용하여 생성한 피부색 모델을 기준으로 제안방법에 따른 피부색 픽셀을 검출한 결과들을 보여준다. 원본 영상은 기존 방법으로도 오류가 많이 발생하는 배경과 얼굴 피부색이 많이 유사한 영상을 대상으로 한 실험이다. 이때 사용한 컬러영상의 색상모델은 YCbCr이고, Skin과 Non-skin을 결정하기 위한 파라미터 값은 t1=30%와 t2=5%로 선택하였다. 그림 5의 (a)는 입력 컬러 영상을 나타내며, (b)는 피부색 모델에서 Skin과 Skinness의 모든 영역에 의해 검출된 그림에서 흰색(white)으로 색칠된 부분은 피부색 모델의 Skin 영역에 포함된 영역을 나타내고, 회색(gray)으로 색칠된 화소들은 Skinness 영역을 나타내며, 검은 색으로 표시된 부분은 Non-skin 영역이 된다.

그림 5의 (b)에서 회색으로 표시된 영역을 살펴보면 실제 피부색으로 포함되어야 할 부분과 배경에 포함될 부분이 함께 공존함을 알 수 있다. 또한 회색 부분 중 Skin 영역과 인접한 위치에 있는 화소들은 실제 피부색에 해당하는 영역이 되고, 피부색과 일정거리 이상 떨어진 영역에 존재하는 회색 영역은 배경에 해당한다는 사실을 확인할 수 있다. 이를 바탕으로 그림 4의 패턴 (c)를 사용하여 피부후보픽셀의 Skin 또는 Non-skin을 결정하여 검출한 결과가 그림 5의 (c)이다. 그림 5에서 (f)는 (c)의 결과에서 검은색이 아닌 부분을 원래의 컬러로 표시한 것이며, (d)와 (e)는 각각 그림 4의 패턴 (a)와 (b)를 사용한 결과이다. 제안 방법은 배경화면이 피부색과 유사한 넓은 부분(기둥 및 배경)을 가지고 있음에도 불구하고 좋은 결과를 보여주고 있다.

기존 시스템과의 성능을 비교 분석하기 위해서는 본 시스템과 유사한 통계적 접근 방법을 사용하고 있는 베이지언 방법과 비교하였다. 이때 베이지언 방법에서 Skin 화소 분류 조건 확률밀도함수는 다음의 식 (5)를 사용한다.


식 (5)에서 p(x|Skin)은 Skin 화소일 확률을 나타내고, p(x|Non-skin)는 Non-skin 확률을 나타낸다. T는 선택된 문턱치 값이다.


그림 6은 베이지언 방법과 수정 베이지언 방법에 의해 검출된 결과와 제안 방법에 의해 검출된 결과 영상을 나타낸다. 그림 6의 (b)는 베이지언 방법에서 수식 (5)의 분수 값이 T-ε 와 T+ε 사이의 범위이면 Skinness로 간주하는 수정 베이지언 방법으로 후처리를 한 결과 영상이다. 이는 기본 베이지언 방법보다는 오검출률을 많이 줄일 수 있었다. 그러나 본 고의 제안 방법이 오검출률을 현저하게 줄일 수 있다는 것을 그림 6을 통해 확인할 수 있다.

두 방법 모두 실제 피부색이 검출되는 피부색 검출률(True Skin Detection Rate:TDR)은 베이지언 방법 93.25 %, 제안방법 93%로 유사한 검출율을 갖는다.

그러나 피부색이 아닌 화소가 피부색으로 검출되는 오검출률(False Skin Detection Rate: FDR)은 제안 방법보다 베이지언 방법이 더 높았다. 결과적으로 제안 방법이 피부검출율/오검출율(TR/FR)에서 우수함을 보여주기 때문에 피부색을 더 정확하게 검출함을 알 수 있다.


이 방법을 여러 영상에 대해 실험한 결과가 그림 7에 제시되어 있다. 그림 7에서 (a)는 입력 영상이고, (b)는 본 고에서 제안한 방법에 의해 피부색을 검출한 결과이고, (c)는 베이지언 방법을 사용하여 피부색을 검출한 결과이다.

대부분의 실험 영상에서는 제안 방법이 베이지언 기법에 의한 방법보다 오검출율과 미검출율이 낮은 좋은 결과를 보여주고 있다는 사실을 확인할 수 있었다. 단지, 맨 아래쪽 사진에서는 얼굴색과 유사한 옷에 붙은 금장색으로 인해 오검출율이 크게 떨어지지 못하고 두 방법의 결과가 유사함을 확인할 수 있다. 그러나 전반적으로 제안된 방법에 의한 실험 결과에서는 피부색과 유사한 색을 배경에 포함하고 있거나 4번째 행의 그림에서 보듯이 조명 조건의 변화에 따른 피부색 영역의 일부가 왜곡된 경우들에 대해 컨텍스트 정보를 활용한 방법으로 좋은 결과를 얻을 수가 있었다.

그림 7에 있는 영상과 직접 촬영한 영상들에 대해 다양한 파라미터 값에 대해 실험한 결과로부터 검출 성능을 나타내는 오검출율과 실검출율을 비교하여 표 2에 나타내었다.


표2에서 t1=30%일 때 t2값이 1%에서 5%로 점점 커짐에 따라 TDR은 유사하나 FDR은 점점 감소함을 알 수 있다. 특히 컨텍스트를 고려할 마스크 영역이 패턴 A 보다는 패턴 C와 같이 더 넓은 공간을 고려할 때 더욱 줄어드는 것을 알 수 있다. 제안 방법을 기존의 대표적인 시스템인 베이지언 방법과 시간적인 측면과 검출효율 측면에서 비교하여 보았다. 먼저, 실행 시간을 비교하기 위해 약 100여 장의 영상을 인터넷이나 직접촬영을 통해 획득하였다. 그 사진의 일부가 그림 7에 주어져 있다. 이 사진들을 대상으로 기존의 베이지언 방법과 제안 방법에 의한 실행 시간을 비교한 것이 표 3과 그림 8에 주어져 있다.


그림 8. 제안방법과 베이지언 방법에 의한 피부검출 수행 시간
표 3은 평균 수행시간을 나타낸 것이고 그림 8은 각 영상에 대한 수행시간을 표시한 것이다. 표 3과 그림 8에서 보듯이 베이지언 방법과 제안 방법은 실행시간 측면에서는 거의 차이가 없음을 확인할 수 있다.


검출 효율에서는 오검출율이 적게 나오는 것이 좋은 방법이라고 할 수 있다. 따라서 기존 방법과의 비교를 위해 같은 오검출율을 보일 경우 어떤 방법이 더 실 검출율을 높게 유지하는가를 비교하기로 하였다. 즉, 실검출율/오검출율이 높은 값을 보여야 피부색 검출 시스템의 성능이 매우 높게 된다. 그리하여 오검출율이 10%에서 20%, 30%로 변해 감에 따라 실 검출율이 어떻게 되는가를 비교·분석해 보았다.

표 4는 FDR 값을 10%, 15%, 20%로 할 경우 제안 방법과 베이지언 방법에 의한 TDR의 비율을 나타낸 것이다.

이 방법에 의하면 제안 방법이 오검출을 낮게 유지하여도 TDR이 베이지언 방법보다 높음을 알 수 있다.   

입력 영상에서 피부색을 검출할 때는 오검출율을 낮추는 것이 매우 중요하므로 오검출율에 대한 기준이 주어 졌을 때 실 검출율이 어떤 변화를 보이는가를 나타낸 것이 그림 9이다. 그림 9는 베이지언 방법과 제안 방법에서 FDR을 기준으로 TDR 값의 변화를 나타낸 ROC(Receiver Operating Characteristic) 곡선을 그린 것이다. 아래의 그림에서도 제안된 방법이 베이지언 방법보다 오류 검출률(FDR)이 같은 경우 피부 화소 실검출률(TDR)이 더 높은 것을 알 수 있다.


결론

본 고에서 다양한 조명 조건의 변화와 피부색과 유사한 배경이 포함된 영상에서 3차원 피부색 모델과 컨텍스 정보를 활용한 정확한 피부색 화소 검출 방법을 제안하였다.

제안된 방법은 YCbCr 컬러 공간을 사용한 3차원 피부색 모델을 생성하여 조명의 효과를 많이 제거할 수 있었다. 또한 계층화된 피부색 모델과 영상의 이웃 화소의 정보를 통합하여 피부색 검출 알고리즘을 제안하였다. 영상에서 피부영역을 분할할 때, Skinness 영역에 해당하는 부분은 컨텍스트 정보(이웃 화소의 값)를 이용한 필터링을 통해 피부색 여부를 결정하였다. 이 필터링을 통해 피부색 일부가 왜곡되어 검출되지 못하는 미검출률 및 피부색과 유사한 배경이 피부색으로 검출되는 오검출률을 낮출 수 있었다. 여러 영상의 실험을 통해 제안 방법이 피부색 픽셀을 많이 검출하면서 동시에 오검출율을 낮출 수 있다는 것을 TDR/FDR 비율 값의 변화를 통해 확인하였다. 또한 피부 영역에 대한 검출을 위해 필요한 실행 시간에서는 기존의 방법인 베이지언 방법과 거의 차이가 없음을 확인하였다. 

 


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