Algorithm

[컴퓨터 비전] Feature의 종류

빠릿베짱이 2013. 1. 19. 18:03
반응형

특징은 모든 컴퓨터 비전에서 정말 가장 중요하다고 해도 과언이 아닐 것입니다.

사실 이 부분은 직접 무슨 문제를 풀어보지 않는다면, 크게 와닿지 않을 수도 있겠군요.

저도 평소에는 중요하다는 것은 알았지만, 최근에 몸 소 느끼에 되어

특징으로 사용할 수 있는 방법들에 대해 정리가 필요하단 생각을 하게 되어 이렇게 정리를 하게 되었습니다.

처음부터 다 정리는 못하니, 이미 알고있는 특징과, 새로 공부해서 얻는 특징들을 차근 차근 정리해야겠네요.

1. Haar-like Feature

- Adaboost 얼굴 검출에 빠질 수 없는 특징이죠. 의미를 보자면, 미분의 특성을 갖는데, 결국, 에지의 양 정보랄까요? 에지가 주위 이웃한 것에 대해 구한다면, haar-like는 영역을 기반으로 하기 때문에, 대충~대충 구한다? 좋게 보면 잡음에 둔감하다는 특성이 있고, 나쁘게 보자면 하나의 특징으로서는 조금 부족한 특징입니다.

이를 보완하여 좋은 특징으로 만들어준 알고리즘이 adaboost구요. 어쨋든 속도면에서는 매우 빠릅니다.

2. HOG ( Histogram of Oriented Gradients )

- 줄여서 HOG라고 많이들 하죠, 저도 이것을 안지는 얼마 안됬지만, 어찌보면 매우 간단한 특징이고, 예전부터 유사하게 많이들 사용했던 특징입니다. 약간의 아이디어와 개념에 추가된 특징이라고 생각하면 될 듯합니다. Gradient는 변화량을 의미하죠. Orientation이란 것은 방향을 의미합니다. 결국 방향을 히스토그램의 Bin으로 정의하고, 어떤 위치에서 변화가 a만큼이고, 방향이 b라면 히스토그램의 b의 위치의 빈에 a만큼을 더합니다. 모두 이렇게 누적하여 히스토그램을 만들었다면, 정규화 작업도 수행하구요. 특징을 구하는 방법은 다른 자료에도 많으니, 쉽게 습득할 수 있을 것입니다.

- 가장 중요한 이 특징의 의미는 에지의 양과 방향을 구분하는 특성을 가지고 있습니다. 물론 방향이라는 것은 어떻게 정의를 하느냐에 따라서 어떤 특성을 갖을 것인가가 다르겠죠. 또한 HOG의 경우 오버랩을 하여 구하기 때문에 어느정도 Shift에도 적응할 수 있는 능력이 있습니다. 마치 Haar-like가 영역으로 특징을 구하기 때문에 잡음에 둔감 한 것과 같이 HOG의 오버랩의 이유는 어느정도의 변화를 받아들이겠다는 의미로 볼 수 있지 않을까요.

3. LBP( Local Binary Pattern)

4. MCT( Modified Census Transform )

- 기본적으로 로컬 영역에서 대비 정보를 이용하여 표현하는 특징이다. 지역적으로만 특징을 추출하기 때문에 조도가 낮은 곳에서 잘 된다고 말한다. 직접해보진 않았지만, False 알람 상당히 많이 나올 것으로 예측되는데, 어쨋든 조명이 매우 미약한 곳에서도 잘 된다고 하니 알아놓으면 꽤나 유용할 듯 싶다.

- MCT는 CT의 수정 버젼으로, 간단하게 설명하자면, 3*3 마스크 영역의 평균을 구하고 해당 마스크 내부의 픽셀들을 평균과 비교한다. 비교하여 만약 평균보다 크다면 1, 작으면 0으로 하면, 총 9비트의 결과값이 나온다. 이를 하나로 묶어 총 2^9이 나올 수 있다. 하지만 부등호에 따라서 000000000 또는 111111111 이 나오므로 특징의 범위는 0~511, 즉 2^9-1이 된다.

 학습은 특징의 특성 상 기존 Adaboost와는 조금 차이가 있다. 이건 다음 기회에 정리해보도록 하자.

MCT Adaboost를 직접 구현해보았다.

생각보다 정말 좋았다. 한가지 단점을 뽑자면, Haar-like와 같이 윈도우를 키우면서 검출 하는 것이 아닌 영상을 다운스케일링하면서 검출해야되기 때문에, 그게 좀 안좋은 것 같다. 본인이 생각하기에는 조금 느리다는 인상을 받았다.

한가지 놀라운 점은 FPR이 상당히 낮다는 결과를 얻었다. 이유가 무엇일까 정말 많이 생각했다. 그러던 중 문득 이런 생각이 들었다. 결국 MCT도 하나의 비트만을 놓고 보면, 하르와 유사하다는 것이다. 이것이 의미하는 것은 주관적인 생각으로는 하르의 조합이라는 생각이다. 예를 들어 하르를 이용한 얼굴 검출의 경우 하나의 강분류기는 여러개의 약분류기로 구성되고, 약분류기 중 true로 인식한 분류기들의 리턴값의 합으로 얼굴인지 아닌지 결정한다. 이것은 어떤 약분류기가 true를 리턴하던지 상관이 없다. 결국 하나의 강분류기는 약분류기의 or 개념인데, MCT를 이를 좀 더 Positive 공간을 줄였다고 생각된다.

이유인 즉, MCT 각각의 비트는 하나의 하르를 나타낸다는 생각이고, 이들의 결합을 하나의 약분류기로 간주했다는 것이다.

S = { f1,f2,f3,...fn }  <---- 이것이 하르의 강분류기라면,

S = { (f1,f2,f3..f9),  (f10,f11,f12,..,f18), .... } <---------- 이것이 MCT의 강분류기라는 것이다.

결론적으로 하르의 강분류기는 어떤 경우가 되었던 임계값보다 크기만 하면 되었지만,

MCT의 분류기는 규칙에 의한 하르의 조합을 통해 새로운 특징을 만들고, 이를 잘 활용하여 부스팅을 구성하였다.

이 부분은 주관적인 판단이지만, 어느정도는 관련이 있다고 본다. 이러한 테크닉은 정말 특징 선택, 특징을 설계하는 부분에서

상당히 매력적인 기술이므로 반드시 살펴볼 필요가 있다.

관련 논문 : Face detection with the modified census transform

관련 데모 프로그램 제공 : http://www.iis.fraunhofer.de/en/bf/bsy/download/shore.html

반응형

'Algorithm' 카테고리의 다른 글

GLCM(Gray-Level Co-occurrence Matrix) & Haralick texture features  (7) 2013.03.05
Unsupervised Feature Learning and Deep Learning  (0) 2013.01.21
level set  (0) 2012.12.19
논문 정리 Contour & Segmentation  (0) 2012.12.19
영상 잡음의 종류  (0) 2012.11.06