다랄과 트릭스는 수천 장의 보행자 영상과 보행자가 아닌 영상에서 HOG 특징 벡터를 추출하였고, 이 두 특징 벡터를 구분하기 위해 SVM 알고리즘을 사용했습니다. SVM은 두 개의 클래스를 효과적으로 분리하는 능력을 가진 머신 러닝 알고리즘입니다.6 다랄과 트릭스는 수천 개의 보행자 특징 벡터와 보행자가 아닌 특징 벡터를 이용하여 SVM을 훈련시켰고, 효과적인 보행자 검출 방법을 완성시켰습니다. HOG와 SVM을 이용한 객체 검출 기술은 이후 보행자 검출뿐만 아니라 다양한 형태의 객체 검출에서도 응용되었습니다.
OpenCV는 HOG 알고리즘을 구현한 HOGDescriptor 클래스를 제공합니다. HOGDescriptor 클래스를 이용하면 특정 객체의 HOG 기술자를 쉽게 구할 수 있습니다. 또한 HOGDescriptor 클래스는 보행자 검출을 위한 용도로 미리 계산된 HOG 기술자 정보를 제공합니다. 그러므로 이 절에서는 HOGDescriptor 클래스를 이용하여 간단한 보행자 검출 예제 프로그램을 만드는 방법에 대해 알아보겠습니다.
HOGDescriptor 클래스를 이용하려면 먼저 HOGDescriptor 객체를 생성해야 합니다. 보행자 검출이 목적이라면 HOGDescriptor 클래스의 기본 생성자를 이용하여 객체를 생성하면 됩니다. HOGDescriptor 클래스의 기본 생성자는 검색 윈도우 크기를 64×128로 설정하고, 셀 크기는 8×8, 블록 크기는 16×16, 그래디언트 방향 히스토그램 빈 개수는 9로 설정합니다. 그러므로 기본 생성자에 의해 만들어지는 HOG 기술자 하나는 3780개의 float 실수로 구성됩니다. 다음은 보행자 검출을 목적으로 HOGDescriptor 클래스 객체 hog를 선언하는 예제 코드입니다.
HOGDescriptor hog;
6 SVM 알고리즘에 대해서는 15.3절에서 자세히 설명합니다.