嗨,我是 OpenCV 的新手,我正在尝试使用放置在固定位置的相机来实现人体跟踪。我做了一些研究,发现了方向梯度直方图方法,但根据我的理解,它的作用是检测而不是跟踪。因此,我想知道在 OpenCV 上实现人体检测和跟踪的最简单方法是什么?
P/S:我找到了这个视频,这正是我想要实现的。
嗨,我是 OpenCV 的新手,我正在尝试使用放置在固定位置的相机来实现人体跟踪。我做了一些研究,发现了方向梯度直方图方法,但根据我的理解,它的作用是检测而不是跟踪。因此,我想知道在 OpenCV 上实现人体检测和跟踪的最简单方法是什么?
P/S:我找到了这个视频,这正是我想要实现的。
您也可以尝试使用 HAAR 级联进行人体检测。只需使用加载级联CascadeClassifier::CascadeClassifier()
,然后用于CascadeClassifier::detectMultiScale()
获取给定图像中检测到对象(身体)的区域。调整给定的参数detectMultiScale()
以加快和提高检测精度。
你可以在这里找到一堆级联,包括一个用于身体检测的级联。
看看这些 SO 帖子:
您可以使用带有“人”模型的 HOG 检测器或潜在 svm 检测器来获取人的边界框,然后跟踪该人。
可以通过以下方式跟踪人的质心: 测量新的质心位置。测量它的速度。使用当前帧位置和速度预测下一帧质心的位置。然后检查质心的新测量值是否接近预测值。如果是,那么它与前一帧中的人是同一个人,如果不是,那么它是一个新人进入该帧。
也许您应该跟踪边界框而不是质心。您的帧速率足够高,也许您可以只绘制边界框而忘记跟踪。