OpenCV Отслеживание Человеческого Тела
Привет я новичок в OpenCV, и я пытаюсь реализовать отслеживание человеческого тела с помощью камеры, расположенной в фиксированном положении. Я провел небольшое исследование и наткнулся на гистограмму метода ориентированных градиентов, но на основе моего понимания, что он делает, это обнаружение вместо отслеживания. Поэтому мне было интересно, какой самый простой способ реализовать обнаружение и отслеживание человека на OpenCV?
P/S: Я нашел это видео, и это именно то, чего я хотел достичь.
2 ответа:
Вы также можете попробовать использовать каскад Хаара для обнаружения человеческого тела. просто загрузите каскад с помощью
CascadeClassifier::CascadeClassifier()
, а затем используйтеCascadeClassifier::detectMultiScale()
для получения областей в пределах данного изображения, где был обнаружен объект (тело). отрегулируйте параметры, заданные вdetectMultiScale()
, чтобы ускорить и повысить точность обнаружения.Здесь вы можете найти множество каскадов , включая один для обнаружения тела.
Взгляните на эти посты SO:
Вы можете использовать детектор HOG или скрытый детектор svm с моделью "человек", чтобы получить ограничивающую рамку человека, а затем отслеживать человека.
Отслеживание центроида человека может быть выполнено с помощью следующих действий: Измерьте новое положение центроида. Измерьте его скорость. Спрогнозируйте местоположение центроида следующего кадра, используя текущее местоположение и скорость кадра. Затем проверьте, близко ли новое измерение центроида к предсказанию. Если это так, то это тот же человек, что и в предыдущий кадр, если нет, то это новый человек, который вошел в кадр.
Возможно, вам следует отслеживать ограничивающую рамку вместо центроида. Если частота кадров достаточно высока, возможно, вы могли бы просто построить ограничивающую рамку и забыть о слежении.