4

Я работаю над проектом, который требует обнаружения людей в сцене.HOG Person Detector: False Положительные обнаружения на фоне вычитаемых изображений

Первоначально после запуска детектора HOG на исходных кадрах определенный фоновый объект обнаруживался как человек на всех кадрах, что давало мне 3021 ложных положительных результатов.

Итак, я сделал логический шаг, чтобы удалить статический фон, применив фоновый вычитатель (BackgroundSubtractorMOG2) ко всем кадрам. Полученные кадры выглядит следующим образом:

Затем эти маски изображения были добавлены (используя bitwise_and) к исходному изображению, так что белые пиксели заменяются пикселей, составляющих человека.

Пример:

Тогда я побежал детектор HOG на этих изображениях, которые дали результаты, как это:

Как вы можете видеть, что есть много ложных срабатываний для некоторая причина. Я думал, что вычитание фона даст мне лучшие результаты, чем использование HOG на исходных изображениях.

Может кто-нибудь рассказать мне, почему в этом методе так много ложных срабатываний? И что можно сделать, чтобы улучшить обнаружение на фоне вычитаемых изображений?

+1

Не ответ, а +1 на примерах фотографий, которые вы разместили в своем посте. –

+1

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

ответ

2

Проблема в том, что вы изменили характер своего изображения, удалив фон. Таким образом, детектор HOG был обучен нормальным изображениям без искусственных черных пикселей, и теперь вы кормите его искусственно измененными изображениями, поэтому это нормально, что он будет выполнять странным образом (все еще не понимают, что обнаружение в верхней части изображение хотя ..)

Если вы хотите использовать детектор HOG поверх вычитания фона, вы должны обучить классификатор HOG функциями, взятыми из фоновых вычитаемых изображений.

Одна вещь, которую вы можете попробовать (если это не убивает производительность вашего приложения), заключается в использовании HOG-детектора на обоих изображениях, с фоном и без фона, и принимать только обнаружения, которые накладываются значительно на обоих, это может удалить некоторые ложные срабатывания с обоих изображений.

PS: HOG был специально разработан для работы с необработанными изображениями путем обнаружения сильных краев и проверки их на модели SVM. Удаляя фон, мы создаем искусственные края, которые как бы побеждают цель использования HOG. Но я думаю, вы можете использовать его для удаления ложных срабатываний, выполняя то, что я предложил в предыдущем абзаце.