OpenCV人体跟踪

时间:2013-10-20 16:56:39

标签: c++ opencv object-detection video-tracking

您好我是OpenCV的新手,我正在尝试使用放置在固定位置的相机来实现人体跟踪。我做了一些研究,我遇到了直方图梯度方法,但根据我的理解,它的作用是检测而不是跟踪。因此,我想知道在OpenCV上实现人工检测和跟踪的最简单方法是什么?

P / S:我发现了这个video,这正是我想要实现的目标。

2 个答案:

答案 0 :(得分:4)

您也可以尝试使用HAAR级联进行人体检测。只需使用CascadeClassifier::CascadeClassifier()加载级联,然后使用CascadeClassifier::detectMultiScale()获取给定图像中检测到对象(正文)的区域。调整给detectMultiScale()的参数,以加快并提高检测的准确性。

你可以找到一堆级联here,包括一个用于身体检测的级联。

看看这些SO帖子:

答案 1 :(得分:1)

你可以使用HOG探测器或潜伏的svm探测器和“人”模型来获取人的边界框然后跟踪人。

可以通过以下方式跟踪人的质心: 测量新的质心位置。测量它的速度。使用当前帧位置和速度预测下一帧质心的位置。然后检查质心的新测量是否接近预测。如果是,那么它与前一帧中的人是同一个人,如果不是,那么它就是进入该帧的新人。

也许您应该跟踪边界框而不是质心。你的帧速率足够高,也许你可以只绘制边界框并忘记跟踪。