논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Accurate eye centre localisation by means of gradients

1. Introduction

눈의 중심 위치를 찾는 것은 컴퓨터 비전에서 중요한 문제입니다. HCI(Human-Computer Interaction)이나 얼굴 인식, 얼굴 비교 등의 영역 뿐만 아니라 HMD(Head mounted device) 같은 기기에서도 사용됩니다. 눈의 중심을 찾는 알고리즘은 크게 3가지 부류가 있는데, 특징 기반 방법, 모델 기반 방법 그리고 이 둘을 혼합한 방법으로 나눌 수 있습니다. 여기서는 특징 기반 방법으로의 알고리즘은 소개합니다. 이 알고리즘은 낮은 해상도나 비디오에서도 정확한 위치와 눈 중심 위치를 적할 수 있습니다. 특징 기반 방법이 일반적으로 사용하는 다단계구조를 그대로 따릅니다.

  1. 먼저 얼굴 검출기를 이용하여 얼굴을 찾고,
  2. 얼굴의 위치를 감안하여 대강의 눈 영역을 정의합니다.
  3. 눈 영역에서 다시 세밀하게 눈 중심을 찾습니다.

눈의 중심은 그래디언트를 이용하여 원형 패턴의 중심을 찾는데, 이를 식으로 표현하고 식을 최고로 만드는 지점을 찾게 됩니다. 또한 눈의 모양에 대한 사전 지식을 활용하여 강인성을 높였으며, 간단한 추처리를 통해서 안경이나 눈썹에 의한 문제들을 해결하였습니다.

2. Eye centre localisation

기하학적으로 원형 물체의 중심은 이미지 그래디언트의 벡터 필드를 분석하여 찾을 수 있습니다. 이것은 이전의 눈 중심을 찾는 연구들에서도 사용해온 방법입니다. 여기서는 이를 수학적으로 표현하여 이미지의 그래디언트와 눈의 중심 지점과의 관계를 설명해보도록 하겠습니다.

먼저 $ c $는 중심 중심 후보점이라고 합니다. 그리고 한 픽셀의 위치 $x_i$에서의 그래디언트를 $g_i$라고 합니다. 그리고 중심에서의 $x_i$으로의 정규화된(normalized) 벡터를 $d_i$라고 합시다. $d_i$를 유닛 벡터로 만드는 이유는 픽셀 위치에 대하여 영향을 덜 받기 위함입니다. 또한 밝기나 대비에 영향을 적게 하기 위하여 그래디언트 벡터 또한 유닛 벡터를 사용하도록 하겠습니다. 이상적인 경우 원형 물체에서 중심 위치 $c^*$는 다음의 식으로 찾을 수 있습니다.

$$c^* = \arg \max_c \{ \frac{1}{N} \sum_{i=1}^N (d_i^T g_i)^2 \}$$

$$d_i = \frac{x_i - c}{|| x_i - c||_2 }$$

$$|| g_i ||_2 = 1$$

결과적으로 이 내적으로 이루어진 목적함수는 동공의 중심에서 강한 값을 계산해낼 것입니다.

모든 픽셀에 계산을 하는 것은 어렵기 때문에 적당한 크기 이상의 그래디언트만 고려함으로써 계산 복잡도를 줄일 수 있습니다. 그래디언트는 일반적인 편미분 방법을 사용하였지만, 다른 방법으로 그래디언트를 계산하여도 결과는 크게 달라지지 않았습니다.

2.1 Prior knowledge and postprocessing

열악한 환경에서는 최대 지점을 잘 찾을 수 없게 됩니다. 또 부분 최고점이 나타나 잘못된 중심 점을 찾게될 수도 있습니다. 예를 들면, 눈꺼풀이나 속눈섭, 주름, 눈동자 안의 낮은 대비 등이 문제가 될 수 있습니다. 따라서 사전 지식을 이용하여 이러한 문제를 피하고자 합니다. 일반적으로 동공은 피부나 공막(sclera)보다 어둡기 때문에, 중심 위치의 밝기를 가중치로 사용할 수 있습니다.

$$\arg \max_c \frac{1}{N} \sum_{i=1}^N w_c (d_i^T g_i)^2$$

여기서 가중치로 사용되는 값은 중심 $c$의 픽셀 값 $I^*(c_x c_y)$ 을 사용합니다. 하지만 $I^*$ 는 원래 영상을 그대로 사용않고, 가우시안 필터 등을 이용하여 부드럽게 만든 뒤 어두운 색에 더 높은 가중치를 주기 위해 이미지를 반전시켰습니다.

이렇게 만들어진 식은 눈이 존재할 경우 눈의 중심을 정확히 잘 찾아주지만, 아직 문제가 있습니다. 중심을 찾기 전 파악한 대략적인 눈의 영역에는 아직 머리카락이나 눈썩, 안경들이 있습니다. 특히 머리카락이나 안경에 의한 반사는 이미지 그래디언트를 눈의 중심 방향을 가지지 못하도록 합니다. 따라서 후처리를 통하여 이를 극복하고자 합니다. 먼저 목적 함수의 최대 값을 기준으로 일정 이상의 크기를 갖는 것들만 남기도록 합니다. 또한 영상의 테두리에 붙어 있는 위치들은 제거해버립니다. 그 뒤에야 남아있는 값들에 대하여 최대 값을 갖는 위치를 찾아 중심 위치로 사용합니다. 실험 결과 스레스홀드 값은 크게 영향이 없었지만 보통 전체 영역에서의 최대 값의 90%를 사용하였습니다.

3. Evaluation

평가를 위한 데이터베이스로 BioID를 사용하였습니다. BioID는 152개의 흑백 영상으로, 밝기, 조명, 장소, 시간등을 다르게 하여 23개의 사람에 대한 사진으로 구성되어있습니다. 또한 자세 또한 변화되어있으며 안경을 촬영한 사람도, 눈 주변으로 곱슬 머리를 가지고 있는 사람도 있었습니다.

얼굴의 탐지에는 Viola and Jones의 방법을 사용하였습니다. 그리고 검출된 얼굴의 크기에 비례하여 눈의 영역을 추출하였습니다.

정확도를 측정하기 위해서 몇가지 방법을 사용하였습니다.

  1. worst error : $ e \leq \frac{1}{d} \max (e_l, e_r) $
  2. better error : $ e_{\text{better}} \leq \frac{1}{d} \min (e_l, e_r) $
  3. average error : $ e_{\text{avg}} \leq \frac{1}{2d} (e_l + e_r) $

여기서 $d$는 실제 두 눈의 중심 사이의 거리입니다. $e_l, e_r$은 각각 좌, 우안 중심의 실제 위치와의 차이를 뜻합니다.

결과를 분석할 때에는 다음의 기준을 사용하였습니다. 눈 중심과 눈꼬리 사이의 거리 $ e \leq 0.25 $, 홍채의 지름 $e \leq 0.10 $, 동공의 지름 $ e\leq 0.05 $ 입니다.

3.1 Results

특정 에러율에서는 다른 방법이 좋게 나타날 때도 있었으나, 평균적으로는 가장 좋은 결과를 나타내었습니다.


Add a Comment Trackback