5

我需要使用压缩算法和 OpenCV 库来实现一个软件来跟踪图像流中的移动对象。我读过 OpenCV 包含该算法的实现,但我没有找到解释如何使用 OpenCV 中可用的相应功能的示例或教程。

cvCreateConDensation函数分配CvConDensation结构并需要状态向量的维度 ( dynam_params)、测量向量的维度 ( measure_params) 和样本数 ( sample_count)。

  • 状态向量的维度应该是指物体的状态:例如,如果状态可以是被跟踪物体的中心点,那么状态向量应该包含物体中心的两个坐标,所以在这种情况下,状态向量应该是 2;以类似的方式,如果一个对象的状态是由属于其形状的S个点形成的,那么我将指定2*S作为dynam_params值(即坐标数等于2*S)。它是否正确?
  • 样本数是粒子数,因此sample_count必须将参数设置为用于跟踪对象的粒子数。
  • 测量向量的维数如何?参数的目的是measure_params什么?

cvConDensInitSampleSet函数为浓缩算法初始化样本集。哪个规则用于初始化样本集?哪个分布用于初始化样本集?给定待跟踪物体的起始位置和边界框,这个函数如何初始化样本集?

执行算法的完整交互(选择预测测量)的函数是什么?样本如何更新?

是否有任何教程详细解释了如何使用 OpenCV 中可用的功能?

4

2 回答 2

3

在 opencv 和 ross(同一作者)的问答中可以找到凝聚算法的工作示例:

http://answers.ros.org/question/55316/using-the-opencv-particle-filter-condensation/

http://answers.opencv.org/question/6985/syntax-for-particle-filter-in-opencv-243/

于 2013-07-26T10:01:31.210 回答
1

是粒子过滤器的另一种实现,使用了 OpenCV 和 GSL 库。作者提供的源代码通俗易懂。也许你可以从中学到一些东西。

于 2012-11-27T07:49:56.743 回答