代码之家  ›  专栏  ›  技术社区  ›  cowboysaif

为什么我们不在光流中使用视频中的运动矢量数据?

  •  1
  • cowboysaif  · 技术社区  · 7 年前

    我在opencv的光流中看到的所有实现都使用视频作为帧阵列,然后在每个图像上实现光流。这包括将图像分割成NxN块并搜索速度矢量。

    3 回复  |  直到 7 年前
        1
  •  3
  •   Pervez Alam    6 年前

    为视频编码计算的运动矢量不是“真实运动矢量”。计算目标是找到最佳匹配块以实现最高压缩。它不以最佳运动估计为目标。这就是为什么它不能很容易地用于运动估计目的。

    1. 作为运动估计算法的种子。
    2. 上述步骤之一可以用作两步运动估计算法的第一步。
        2
  •  2
  •   Marcus Müller    7 年前

    OpenCV是一种通用的图像处理框架。它接受了 ,而不是压缩视频。

    您当然可以编写一个视频解码器,它也可以将有关从编解码器到openCV的位移的信息传递给openCV,但这将是非常特定于编解码器的,因此不在openCV本身的范围内。

        3
  •  1
  •   Stefan Karlsson    7 年前

    我清楚地记得,我读过关于使用嵌入h.264和类似编解码器中的“运动”矢量进行光流/视觉运动分析的学术著作。最简单的方法是迭代估计(如Horn和Schunk)。可以简单地用解码器中的向量引导迭代算法。

    并非所有的h.264编码都具有相同的质量。特别是来自硬件有限的实时系统。在某些情况下,运动矢量可能会非常糟糕,实际上会对流量估计产生不利影响,而不是帮助。例如,我在想一款低端IP摄像机,它主要用于静态场景,在不同的光线下移动。