问题标签 [video-tracking]

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 回答
1187 浏览

matlab - 使用 Matlab 从视频中跟踪单个车辆时遇到困难?

我正在从事一个图像处理项目,该项目基于仅相位重建的重要性。有关更多信息,您可以在https://dsp.stackexchange.com/questions/16462/how-moving-part-pixel-intensity-values-of-video-frames-becomes-dominant-compared中阅读 geometrikal 给出的答案

项目有 2 个部分。

  1. 从道路交通视频中检测移动物体(请通过(步骤1)单击播放按钮然后(步骤2)右键单击视频然后(步骤3)单击另存为选项下载1.47 MB​​的视频)

  2. 跟踪视频中的任何单个移动对象。

现在,我在项目的第一部分非常成功。它的算法是

算法 1 建议的方法

要求:从视频中提取的输入图像序列 I(x, y, n)(其中 x 和 y 是图像尺寸,n 表示视频中的帧数)。

结果:每帧运动物体的分割掩码

  1. 对于输入视频中的每一帧,执行第 2 步,将第 2 步结果附加到结果数组 'I(x, y, n)'</p>

  2. 使用 2D 高斯滤波器平滑当前帧

  3. 使用(Eq.4.1)对整个序列 I(x, y, n) 执行 3D FFT

  4. 使用 3D DFT 的实部和虚部计算相位谱

  5. 使用 (Eq.4.2) 计算重构序列 α(x, y, n)

  6. 对于输入视频中的每一帧,执行步骤 7 到步骤 10 以获得每一帧的分割掩码,并将步骤 10 附加到生成的分割掩码数组 BW(x,y,n)'</p>

  7. 使用平均滤波器平滑重建的 Î(x, y, n) 帧。

  8. 计算当前帧的平均值

  9. 以平均值为阈值将当前帧转换为二值图像

  10. 进行形态学处理,即填充和闭合,得到当前帧运动物体的分割掩码

  11. 结束算法。

使用上述算法,我可以从视频中找到所有移动对象。现在,我想转到第二部分,即对视频中的任何单个移动对象进行跟踪。

在此处输入图像描述

如图所示,我已经达到了第一列所示的结果。我只达到了第一列的结果。但我的目标是跟踪单个车辆,如图第二列所示。(我使用 Photoshop 制作了第二列中显示的结果)

那么有人可以帮助我吗?

0 投票
1 回答
1962 浏览

opencv - 速度从另一个运动物体跟踪一个运动物体

我是计算机视觉的新手,需要一些关于从哪里开始的建议。

该项目是估计移动对象(A)相对于正在跟踪它的移动对象(B)(A)的速度。

如果我假设——我应该怎么做——

  1. 如果背景看起来是静态的(使背景单色)
  2. 如果背景在移动(更难)

我想使用 opencv 和 c++ 来做到这一点

任何关于从哪里开始的建议,一般步骤将不胜感激。提前致谢!

0 投票
1 回答
197 浏览

video - 交互式免费视点视频

我需要创建交互式免费视点视频,可以使用什么编程语言来做到这一点,有没有好的教程。是否有任何库包已经可用。

0 投票
2 回答
640 浏览

c++ - 我们如何同时使用汉明距离和坐标之间的距离来匹配特征?

众所周知,为了在 OpenCV 中跟踪对象,我们可以使用:

对于匹配特征, DescriptorMatcher使用汉明距离(相同大小的两个序列之间的差异值,而不是坐标之间的距离)。

即我们在当前帧中找到最相似的对象,但不是最接近前一个位置的对象(如果我们知道的话)。

我们如何使用来匹配汉明距离和坐标之间的距离,例如,给定两者的权重,而不仅仅是汉明距离?

它可以解决以下问题:

  • 如果我们从前一帧的位置 (x,y) 开始跟踪对象,并且当前帧包含两个相似的对象,那么我们会找到最相似的,但不是最近的。但由于惯性坐标的变化通常比相似度慢(光线的急剧变化或物体的旋转)。我们必须找到具有最近坐标的相似对象。

  • 因此,我们找到了不仅最相似,而且会给出最准确单应性的特征,因为我们排除了虽然非常相似,但在坐标上相距很远并且很可能属于其他对象的特征。

0 投票
0 回答
508 浏览

c++ - 跟踪对象时如何找到多个单应性?

众所周知,为了在 OpenCV 中跟踪对象,我们可以使用:

只有当大多数关键点具有相同的透视变换(单应性)时,我们才能找到单应性。但是如果一半的点有第一次变换,另一半有第二次不同的变换,如何找到这两个单应性呢?如何将一个点数组拆分为几个具有不同单应性的数组?

例如:

  • 为了跟踪任意形状的对象,我使用了包含对象和背景的矩形参考图像。我们移动了物体,但背景保持在原地——现在我们找不到单应性了。
  • 物体是分开的(我们正在跟踪移动的摩托车 - 摩托车停了下来,骑自行车的人走了 - 现在我们找不到单应性了)
  • 稍微改变了物体的形状(我们正在跟踪车辆,打开后备箱后没有跟踪 - 现在我们找不到单应性)

如何在物体的参考图像和场景的框架之间找到不是一个,而是两个或三个主要的单应性?

0 投票
1 回答
1953 浏览

computer-vision - 视频中多目标跟踪的卡尔曼滤波器

据我了解,跟踪算法会预测给定对象在下一帧中的位置(在已经执行对象检测之后)。然后在下一帧中再次识别该对象。尚不清楚的是跟踪器如何知道将第二帧中的对象与第一帧中的对象关联起来,尤其是当帧中有多个对象时。

我在一些地方看到使用预测和所有检测之间的欧几里德距离创建成本矩阵,并且问题被定义为分配问题(匈牙利算法)。

我对跟踪的理解是否正确?还有其他方法可以确定一帧中的对象与下一帧中的对象相同吗?

0 投票
1 回答
665 浏览

matlab - 如何在 MATLAB 中跟踪多个对象何时接触?

我有从图像 (3744x5616) 跟踪的多个对象的 x,y 像素坐标。坐标存储在称为对象的结构中,例如

每个对象都由一个数字代码唯一标识,例如

我希望能够记录任何两个对象每次进入彼此 300 像素的半径范围内。检查是否有任何对象正在接触然后记录交互中涉及的两个对象的身份的最佳方法是什么,例如对象 33 与对象 34 交互。

谢谢!

0 投票
1 回答
482 浏览

c++ - Meanshift算法跟踪目标问题计算搜索窗口的质心更新

我一直在尝试实现用于跟踪对象的 meanshift 算法,并且已经了解了所涉及的概念。

按照现在,我已经成功地从我的相机生成了一个反向投影流,它带有一个单通道色调 roi 直方图和一个单通道色调视频流,看起来不错,我知道 opencv 库中有一个 meanshift 函数,但我正在尝试实现我自己使用opencv中提供的数据结构,计算矩并计算搜索窗口的平均质心。

但由于某种原因,我无法在我的代码中找到问题,因为它不断收敛到我的视频流的左上角,以便跟踪任何输入 roi(感兴趣区域)。以下是用于计算搜索窗口质心的函数的代码片段,我觉得问题出在哪里,但不确定是什么,如果有人能指出我正确的方向,我将不胜感激:

这是我对 stackoverflow 的第二次查询,所以请原谅我忘记遵循的任何准则。

编辑

将 m00 , m01 , m10 更改为 WHILE-LOOP 中的块级变量而不是函数级变量,感谢 Daniel Strul 指出,但问题仍然存在。现在搜索窗口跳过帧边界而不是关注 roi。

0 投票
0 回答
1119 浏览

opencv - 当相机移动时,检测视频运动的最佳方法是什么?

当我的相机移动时,检测视频中物体运动(不包括相机的自我运动)的最佳方法是什么?

我有实时 50 FPS 全高清 1920x1080 视频流。相机有自我运动。

即我必须这样做:

  • 估计我的相机在第一帧和第二帧之间的运动(平移、缩放和旋转)
  • 补偿我的相机的这种移动 - 反向移动第二帧
  • 用于gpu::MOG2_GPU检测物体的运动 - 两帧之间的差异

补偿相机移动的最佳方式(最快和最好的质量)是什么?

  1. phaseCorrelate()- 只得到翻译而且很慢
  2. cv::videostab- 旨在消除抖动和视频稳定的类
  3. 为每一帧计算(gpu::SURF_GPUgoodFeaturesToTrack())并estimateRigidTransform()获得仿射变换(平移、缩放和旋转),但对于高清实时视频来说非常慢
  4. 每 50 帧(每 1 秒 1 次)计算 (gpu::SURF_GPUgoodFeaturesToTrack()) 和estimateRigidTransform()
  5. 使用方法 4,但自定义实现estimateRigidTransform()- 使用(calcOpticalFlowSF()calcOpticalFlowFarneback()DenseOpticalFlow::calc)而不是calcOpticalFlowPyrLK()https ://github.com/Itseez/opencv/blob/3942b1f36261b196a264eb35c996222848fe3c93/modules/video/src/lkpyramid.cpp#L1439

这 5 种方法中最好的是什么,如果是 4 种,那么最好的 OpticalFlow 函数是什么:

0 投票
3 回答
9222 浏览

python - OpenCV 光流断言

我正在尝试使用 python 2.7 和 openCV 2.4.11 沿着通过 dsift 获得的面部特征轮廓跟踪地标。我想在帧之间跟踪这些特征。

但是我收到以下错误。我已经检查了输入图像是 1 通道等尺寸(和无符号 8 位类型),并且与 prev 点一样:

导致问题的线路:

有谁知道我可以从哪里开始调试这个?