问题标签 [particle-filter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
922 浏览

c++ - 特征点跟踪

我正在尝试使用 OpenCV 2.4.0 跟踪一系列灰度图像中的特征点集。

我已经知道如何实现 SIFT 或 SURF 来检测特征点并初步计算描述符。但是,我需要帮助来计算只有我知道位置 (u,v) 的特征点的 SIFT 描述符。SIFT 的工作示例代码如下所示。

例如,如果我使用 Haris 角点检测器来检测以下特征dv_scenePoints_t

那么在这种情况下,我将如何计算点的 SIFT 描述符dv_scenePoints_t

另外,如果我必须通过粒子过滤器跟踪特征点。然后,我将如何使用 SIFT 描述符来计算每个粒子的权重(特征点假设)。谢谢。

0 投票
2 回答
686 浏览

particle-filter - 带替换的粒子过滤器中的重采样

请帮忙。跟踪帧中对象的压缩算法步骤是:

  1. 初始化一个点并在其周围随机选择N个点,并将权重设置为1/N。

  2. 根据动态模型(恒速模型)传播点。

  3. 现在,使用观察模型计算每个粒子的权重。到目前为止,有 N 个粒子。

  4. 现在,在重采样步骤中,从上述粒子集中挑选 N 个粒子?

什么?我们如何从 N 个粒子中挑选 N 个粒子?

0 投票
1 回答
1344 浏览

python - 如何在图像python中测量角度距离

我现在正在为自主机器人研究粒子过滤器,并且无法生成预期的距离测量值来过滤粒子。我有一张用作地图的图像。每个像素代表环境中的某个缩放区域。机器人可以占据的空间是白色的,墙壁是黑色的,环境外部的区域是灰色的。

如果您不熟悉什么是粒子过滤器,我的 python 代码将创建预定数量的随机猜测,以确定它在空白空间中的位置 (x,y,theta)。然后它将使用超声波传感器以多个角度测量到最近墙壁的距离。该脚本会将这些测量值与每个猜测位置/方向的每个角度预期的测量值进行比较。与实际测量值最接近的那些将幸免于难,而不太可能正确的猜测将被消除。

我的问题是在给定角度找到最近的墙。假设传感器在 60° 处测量。对于每个猜测,我需要调整角度以考虑猜测的机器人方向,然后测量该角度与墙壁的距离。在 x 方向上很容易找到最近的墙:

问题是我不能告诉脚本以 60°、23° 或任何角度一次搜索一个像素。现在我能想到的最好的办法就是先往x方向走,找到一个黑色像素,然后用角度的切线来确定我需要向上或向下移动多少像素,但是有明显的问题这主要与角落有关,我无法想象需要多少 if 语句来解决它。还有其他解决方案吗?

0 投票
0 回答
443 浏览

point-cloud-library - 通过合并跟踪多个对象,在点云中分割场景中的对象

我有一个 RGBD 图像流。去除平面后,我对它们中的每一个进行欧几里得聚类,以提供每帧场景中存在的对象的质心。但是与这些对象中的哪一个相关联的标签会随着每一帧而不断变化。

本质上,我需要跟踪对象(可以合并和分割对象的地方)并为它们指定一个一致的标签。我有每个帧的对象的 X、Y、Z。我想知道任何可以完成这项任务的数学模型?我也无法在 PCL 中找到跟踪器的示例。但是由于我已经提取了点云的质心,所以我可以在 MATLAB/Python 中从头开始编写代码。

这是场景中存在的两个对象。

X_1,Y_1,Z_1

X_2,Y_2,Z_2

说对象 2 现在一分为二。我想跟踪这些新对象来自对象 2。在下一帧中,对象坐标将是这样的

X_1,Y_1,Z_1

X_2_1,Y_2_1,Z_2_1

X_2_2,Y_2_2,Z_2_2

0 投票
1 回答
598 浏览

matlab - 使用多变量 pdf 构造累积分布函数

我正在从一个核函数构造 2 个任意 PDF(概率密度函数)并将它们表示为 2 个列向量,让它们称为AB

这些 pdf 中的每一个都相互依赖,并且是给定上一个时间步长的信息的未知基础 pdf 的条件样本。

我的目标是创建一个由矩阵表示的联合 pdf P(A, B)的表面(编辑:由于@Roberts 的建议,我现在有点不确定如何构建它)

然后我想为此表面创建一个归一化(即[0,1])累积分布函数,以便我可以从表面随机采样。(在 Matlab 中)

在 2D 中,这只是计算cumsumpdf 的问题,即

但在 3D 中,我不是 100% 相信这是cumsum在两个方向上计算的问题,即

我希望SO会有一些想法。

在数学上,我认为它只是函数的有界双积分(或曲面积分)。

0 投票
1 回答
351 浏览

matlab - 在matlab中使用粒子滤波器去噪

我正在尝试使用粒子滤波器对图像进行降噪。它不是粒子过滤器的完整实现,我只是使用它的一部分。我是 matlab 新手,我收到以下错误

我尝试调试,但我无法找到代码出错的原因。

0 投票
0 回答
891 浏览

opencv - 我正在尝试在opencv中实现粒子过滤器进行跟踪,但它在一段时间后停止

我正在尝试根据关于汽车编程的 udacity 课程和其他一些在线视频来实现粒子过滤器。

通过减去连续帧得到粒子滤波器的测量值,即汽车的 (x,y)。

代码是

正态分布的随机数生成器由头文件中的函数完成。

该代码工作正常,但是当我打开跟踪时,它会运行一些帧并在那之后挂起。

输入文件在这里是输入文件

0 投票
2 回答
1142 浏览

c++ - 粒子滤波器中的多元高斯分布

在初始化粒子时,我需要向它添加一些高斯噪声。例如

这里rect(1)给出位置,mgd 函数提供噪声

mgd 函数的详细信息如下:

  • 功能x=mgd(N,d,rmean,covariance)
  • 生成多元高斯分布
  • 用法x=mgd(N,d,mu,sigmax)
  • 此函数N从 d 维高斯分布生成样本

我的N和 d 的值始终为 1,如何mgd在 opencv c++ 中实现该功能?

0 投票
1 回答
4353 浏览

c++ - Opencv Rect 只创建一个矩形

在我尝试实现粒子过滤器时,我首先在图像中的汽车周围手动绘制了一个矩形(x,y,w,h)(红色),然后我选取了 50 个粒子,并为它们分配了噪声,即 x=x +噪声(0,15)和y = y +噪声(0,15)。

然后我想用绿色为每个粒子绘制所有矩形,但不是显示 50 个矩形,而是只显示一个矩形。

输出看起来像这样

在此处输入图像描述

粒子xy坐标如下图,第一个条目是手动硬编码的汽车,其余都是粒子坐标。

在此处输入图像描述

0 投票
0 回答
373 浏览

opencv - 如何将 SURF 算法与粒子滤波器跟踪相结合?

我是图像处理领域的新手。我目前正在尝试使用带有 SVM 训练的 SURF 算法和用于跟踪的粒子滤波器来检测视频中的多人。到目前为止,我使用特征包从一组图像(针对人和非人)构建词汇表和聚类关键点,并使用两个 SVM 对测试数据是否为人进行分类。现在分类已经完成,我打算使用从测试数据中提取的 SURF 关键点作为粒子滤波器。

基本上,我想证明 SURF 关键点适合粒子滤波器输入,将这些点输入粒子滤波器算法,然后开始跟踪目标并同时绘制代表粒子的圆圈。

我该怎么做呢?:( 我正在尝试研究这里提供的代码https://github.com/NewProggie/Particle-Filter但我有点迷路了,因为它是 AdaBoost,当然,粒子是随机生成的。非常感谢!