Подготовка дескриптора HOG для обнаружения людей

Сначала я попробовал детектор людей по умолчанию в библиотеке OpenCV.

    HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
hog.detectMultiScale(img, found, 0, Size(8,8), Size(0,0), 1.05, 2);

Хотя он дает положительные совпадения в помещении с веб-камерой, они очень редки. Поэтому я обучил дескриптор негативными и позитивными изображениями набора данных INRIA, но на этот раз ложных срабатываний слишком много. Я не пытаюсь опустить ложные совпадения до нуля, этого было бы достаточно, чтобы снизить их до разумного уровня. Что я должен делать?

Другая проблема заключается в том, что я думаю, что люди в моих образцах видео слишком далеко, чтобы их можно было легко различить как человеческие изображения. Я пытался уменьшить размер ячейки, но не уверен, что это правильный подход. Что можно сделать по этому поводу?

Изображения будут полезны для вас, но из-за репутации я не могу их публиковать.

Спасибо

2

Решение

Проверьте opencv [doc]: http://docs.opencv.org/modules/gpu/doc/object_detection.html#gpu-hogdescriptor-detectmultiscale Кажется, вы неправильно используете интерфейс.

Вы делали оценку вашего обученного SVM и также наблюдали там плохой уровень обнаружения? Если да, вам нужно немного поиграть с параметрами тренировки или входными данными. Насколько я помню, набор INRIA включал в себя изображения людей и не людей, но только положительные участки были точно определены. Когда я тренировал классификатор свиней, выбор отрицательных образцов оказал большое влияние. Ох, а ты использовал бустинг? Повышение IIRC обеспечило значительный прирост производительности в оригинальной статье.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector