HOG для "обнаружения объекта" opencv - PullRequest
11 голосов
/ 04 октября 2011

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

Что мне нужно, так это просто реализовать детектор HOG для объектов .... Например, что он делает SIFT или SURF

Кстати, я не интересуюсь этой работой.

Спасибо ..

Ответы [ 3 ]

4 голосов
/ 05 октября 2011

вы можете взглянуть на http://szproxy.blogspot.com/2010/12/testtest.html

он также опубликовал "учебник" по HOG здесь: http://sourceforge.net/projects/hogtrainingtuto/?_test=beta

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

2 голосов
/ 08 февраля 2017

В заключение, немного упрощая, все, что вам нужно для обнаружения конкретных объектов на изображении:

  • Локализация "точек интереса" для извлечения исправлений:

Чтобы получить интересующие вас объекты, вы можете использовать некоторые алгоритмы, такие как детектор углов Harris, случайным образом или что-то просто, например, скользящие окна.

  • Из этих точек получите патчи:

Вам нужно будет принять решение о размере патча.

  • Из этих патчей вычислитедескриптор функции.(как HOG).

Вместо HOG вы можете использовать другой дескриптор функции, такой как SIFT, SURF ...
Реализация HOG не слишком сложна.Вы должны рассчитать градиенты извлеченного патча, применяя ядра Собел X и Y, после чего вам нужно разделить патч на ячейки NxM, например, 8x8, и вычислить гистограмму градиентов, угла и величины.В следующей ссылке вы можете увидеть более подробное объяснение: Учебное пособие по HOG Person Detector

  • Проверьте свой вектор признаков в ранее обученном классификаторе

OnceВы получили этот вектор, проверьте, является ли это желаемый объект или нет с помощью ранее обученного классификатора, такого как SMV.Вместо SVM вы можете использовать NeuralNetworks, например.

Реализация SVM более сложна, но есть некоторые библиотеки, такие как opencv, которые вы можете использовать.

1 голос
/ 13 ноября 2013

Существует функция extractHOGFeatures в наборе инструментов системы Computer Vision для MATLAB.

...