OpenCV 에서 물체를 검출하는 방법은 크게 Haar-like 특징을 이용하는 방법과 샘플이미지에서 직접 특징을 뽑아 사용하는 방법이 있습니다. 보통 얼굴인식에 많이 사용하는 방식이 Haar-like 이며 Markerless 검출기와 같은 것들이 후자를 이용 합니다.
Haar pattern
Haar-like 의 경우 Haar 트레이너 프로그램을 이용해 샘플을 트레이닝 하므로 비슷한 형태의 이미지를 검출 할 때 유용합니다. 쉽게 설명하면 보통명사와 같습니다. 얼굴이라는 보통명사를 검출 할 때는 Haar-like 방식을 사용합니다.
Feature Detection
이미지 특징을 이용하는 방식의 경우는 고유명사와 같습니다. 즉 보통의 얼굴이 아닌 특정 인물의 얼굴을 검출하려면 이 방식을 이용해 샘플이미지 만의 고유 특징을 사용 해야 합니다.
이외 두 방식의 가장 큰 차이점 중 하나는 바로 성능입니다. 이미지 특징을 이용한 검출의 경우 입력이미지의 특징을 매번 계산해야 하므로 cascade xml 로 저장되어 있는 Haar-like 방식에 비해 많은 자원을 필요로 합니다. 반대로 Haar-like 방식은 빠르기는 하나 미리 트레이닝을 통해 cascade xml 을 준비해야 하는 불편함이 있습니다.
최근에 OpenCV 를 연구하면서 저희 로고를 이용한 haarcascade 를 만들어 보았습니다. 혹시 관심 있으신 분은 아래 파일을 받아 테스트 해 보시기 바랍니다.
[button open_new_tab=”true” color=”accent-color” size=”large” url=”https://dl.dropboxusercontent.com/u/13116960/haarcascade/haarcascade_logo.xml” text=”Download to haarcascade_logo.xml” color_override=””]Download to haarcascade_logo.xml[/button]
[button open_new_tab=”true” color=”accent-color” size=”large” url=”https://dl.dropboxusercontent.com/u/13116960/haarcascade/lbpcascade_logo.xml” text=”Download to lbpcascade_logo.xml” color_override=””]Download to lbpcascade_logo.xml[/button]