OpenCV отслеживание человеческого тела

Привет, я новичок в OpenCV и пытаюсь реализовать отслеживание человеческого тела с помощью камеры, расположенной в фиксированном положении. Я провел небольшое исследование и наткнулся на метод «Гистограмма ориентированных градиентов», но, основываясь на моем понимании, он обнаруживает, а не отслеживает. Поэтому мне было интересно, как проще всего реализовать обнаружение и отслеживание человека в OpenCV?

P / S: я нашел это видео и это именно то, чего я хотел достичь.

5

Решение

Вы также можете попробовать использовать каскад HAAR для обнаружения человеческого тела. просто загрузите каскад, используя CascadeClassifier::CascadeClassifier() а затем использовать CascadeClassifier::detectMultiScale() получить области в пределах данного изображения, где был обнаружен объект (тело). настроить параметры, заданные для detectMultiScale() ускорить и повысить точность обнаружения.

вы можете найти кучу каскадов Вот в том числе один для обнаружения тела.

взгляните на эти сообщения:

4

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

Вы можете использовать HOG-детектор или скрытый svm-детектор с моделью «персона», чтобы получить ограничивающую рамку человека и затем отслеживать человека.

Отслеживание центра тяжести человека может быть выполнено с помощью следующего:
Измерьте новое местоположение центроида. Измерьте его скорость. Прогнозировать местоположение центроида следующего кадра, используя текущее местоположение кадра и скорость. Затем проверьте, близко ли новое измерение центроида к прогнозу. Если это так, то это тот же человек, что и в предыдущем кадре, если нет, то это новый человек, который вошел в кадр.

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

1

По вопросам рекламы [email protected]