Классификатор SVM на основе функций HOG для «обнаружения объектов» в OpenCV

У меня есть проект, в котором я хочу обнаруживать объекты на изображениях; моя цель - использовать функции HOG. Используя реализацию OpenCV SVM, я смог найти код для обнаружения людей и прочитал несколько статей о настройке параметров для обнаружения объектов, а не людей. К сожалению, я не мог этого сделать по нескольким причинам; во-первых, я, вероятно, неправильно настраиваю параметры, во-вторых, я не очень хороший программист на C++, но мне приходится делать это с помощью C++/OpenCV... здесьвы можете найти код для обнаружение функций HOG для людей с помощью C++/OpenCV.

Допустим, я хочу обнаружить объект на этом изображении. Теперь я покажу вам, что я пытался изменить в коде, но у меня ничего не вышло.

Код, который я пытался изменить:

HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

Я пытался изменить getDefaultPeopleDetector()со следующими параметрами, но это не сработало:

(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS)

Затем я попытался создать вектор, но когда я хотел напечатать результаты, он кажется пустым.

vector detector;

HOGDescriptor hog(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS);

hog.setSVMDetector(detector);

Пожалуйста, мне нужна помощь в решении этой проблемы.

21
задан LihO 12 January 2014 в 01:15
поделиться