3

我在 c 中使用 opencv-2.4.3,我被人脸跟踪部分卡住了,我想使用粒子过滤器进行跟踪,我在 opencv-2.1 版本中得到了它,但是新的 opencv 版本似乎没有这个过滤器或者可能是名称将有所不同,有没有人使用过 opencv-2.4.3 并且可以告诉我如何在 opencv-2.4.3 中使用粒子(冷凝)过滤器

4

3 回答 3

5

粒子滤波器是贝叶斯推理方法的一种非常具体的实现。Condensation 是一种特殊的粒子滤波器,由于它已被用于跟踪视觉对象,因此它变得越来越流行。然而,粒子过滤器应该被看作是一个框架,或者是一个可以为每个问题实例化的架构。

据我所知,OpenCV 包含压缩算法,但您必须提供似然函数。老实说,我不会使用冷凝来跟踪人脸,因为它可能无法正常工作:人脸的外观变化很大,而且很难定义一个动态模型来跟踪人脸在序列中的潜在变化。

有很多更先进、更可靠的面部跟踪方法(仅提及一种,在线外观模型,http://www.cs.toronto.edu/~fleet/research/Papers/cvpr-01A.pdf)。但是,如果您想要一些简单的东西,我会开始使用人脸检测器,例如由级联(http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html#cascade-classifier)和链接检测提供的人脸检测器与cv::KalmanFilter::KalmanFilter. 此外,您将获得与使用 冷凝的结果大致相同的结果cv::CamShift

于 2013-03-28T17:24:35.687 回答
0

正如 marcos.nieto 所说,粒子过滤器是一种近似工具,可以加快对象的建模(对象的描述)和搜索过程(而不是像分类器那样对搜索窗口的每个像素进行贪婪搜索)。

此外,建模更新率不足以覆盖突然的外观变化,如果你增加它,你的跟踪器最终会漂移。

我建议尝试结合使用VideoSurveillance级联分类器来构建一个基于对象的跟踪器,该跟踪器具有跨帧响应的数据关联。

于 2013-03-29T09:16:25.620 回答
0

尽管您主要使用 OpenCV,但请查看 Accord.NET Extensions 库中粒子过滤算法(以及卡尔曼)的 C# 实现。样品包括在内。链接: https ://github.com/dajuric/accord-net-extensions

于 2014-08-08T22:06:37.817 回答