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


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

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

2 5

2 ответа:

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

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

Взгляните на эти посты SO:

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

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

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