논문

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

객체검출을 위한 빠르고 효율적인 Haar-like 피쳐 선택 알고리즘

[cite]http://dx.doi.org/10.7840/kics.2013.38A.6.486[/cite]

1. 서론

영상에서 무언가를 찾아 검출하는 과정에는 찾고자 하는 객체를 잘 나타내는 특징, 즉 피쳐를 찾는 일이 주된 과정인 경우가 많습니다. 피쳐를 찾거나 구성하는 방법은 여러가지가 있지만 그 중 잘 알려진 방법 중 하나로 Viola, Jones에 의해 제안된 Haar-like feature를 이용하여 AdaBoost를 구성한 방법을 예로 들 수 있겠습니다.

Haar-like feature는 Haar wavelet과 비슷하게 생긴 커널을 이용하여 컨볼루션하여 특징을 계산하게 됩니다. 이 커널은 그 특성 상 integral image를 사용하여 커널의 크기에 관계없이 계산을 빠르게 할 수 있으며, AdaBoost를 이용하여 여러 종류와 크기의 Haar-like feature 중 가장 객체를 잘 구분해 낼 수 있는 것들을 골라 강인한 분류기를 만들게 됩니다.

하지만 이렇게 골라진 피쳐들 중에는 크기만 다르고 같은 형태를 갖는 등의 유사한 피쳐들이 같이 선택되어지는 문제가 있습니다. 저자는 이를 해결하기 위한 방법을 제시할 것입니다.

2. 연구 배경

Viola, Jones은 AdaBoost는 여러 종류의 Haar-like featre 중 객체를 잘 구분해 내는 피쳐들을 골라 약 분류기로 사용하고, 이들 약 분류기의 가중치 합으로 강 분류기를 구성하여 결과를 계산합니다.

학습을 진행하는 과정에서 피쳐들 중 분류 에러가 가장 적은 약 분류기를 선택하고, 그 피쳐를 사용했을 때의 잘못 판정된 샘플의 가중치를 높입니다. 다음으로 분류기를 선택할 때, 이 가중치를 반영하여 에러가 계산되므로 학습을 계속 할 수록 판정이 어려웠던 샘플들도 판정이 가능하도록 학습이 진행될 것입니다.

3. Haar-like feature 유사도와 이를 활용한 피쳐 선택 방법

학습 과정에서 약 분류기로 사용할 피쳐를 선택할 때, 샘플에 대한 분류 에러만을 고려하므로 상대적으로 비슷한 피쳐가 선택되는 일이 발생합니다. 따라서 각 피쳐간의 유사도를 계산하여 이미 선택된 피쳐와 비슷한 것들은 제외하는 방법을 생각해보도록 합시다.

3.1 피쳐 유사도

먼저 각 피쳐는 (type, x, y, width, height, cx, cy)로 나타낼 수 있다. type은 피쳐의 모양새르 나타내며, x, y는 피쳐의 위치, width, height는 크기이다. cx, cy는 피쳐의 중심점을 뜻합니다.

이를 바탕으로 피쳐간 유사도는 다음과 같이 계산합니다.

$$1 - (\frac{\min (\text{width}, \text{height})}{\min (\text{width}, \text{height}) + \text{distance}})$$

이 때 distance는 두 피쳐간 중심 좌표 사이의 거리를 뜻합니다.

3.2 제안하는 피쳐 선택 알고리즘

이제 AdaBoost 과정에서 한가지 단계를 더 추가하도록 합니다. 가장 에러가 적은 약 분류기가 선택되고 난 뒤, 나머지 모든 피쳐들 중 선택된 것과 유사한 피쳐는 이후에 선택되지 않도록 모두 제거해버립니다. 이러한 과정을 매 약분류기를 선택할 때마다 반복합니다.

5. 결론 및 추후 과제

중복하여 사용된 피쳐를 제거하였으므로, 적은 수의 피쳐들로 동일한 효과를 낼 수 있었다고 합니다.


Add a Comment Trackback