【发布时间】:2012-06-17 17:23:21
【问题描述】:
很多资源说有两种类型的光流算法。而Lucas-Kanade是一种稀疏技术,但我找不到稀疏和密集的含义?谁能告诉我密集光流和稀疏光流有什么区别?
【问题讨论】:
标签: image-processing computer-vision opticalflow
很多资源说有两种类型的光流算法。而Lucas-Kanade是一种稀疏技术,但我找不到稀疏和密集的含义?谁能告诉我密集光流和稀疏光流有什么区别?
【问题讨论】:
标签: image-processing computer-vision opticalflow
简单的解释是,稀疏技术只需要处理整个图像中的一些像素,密集技术处理所有像素。密集技术速度较慢但可能更准确,但根据我的经验,Lucas-Kanade 准确度可能足以满足实时应用程序的需要。 Gunner Farneback 的光流算法是密集光流算法(最流行)的一个示例。
要了解流量质量的概览,请查看基准页面,例如KITTI 或 Middleburry 数据集
【讨论】:
稀疏光流为您提供图像中一些“有趣特征”的流向量。
密集的光流尝试为您提供整个图像的流 - 每个像素最多一个流向量。
【讨论】:
首先,Lucas-Kanade 不是稀疏光流技术。这么多人相信的原因,是由于广泛传播的误解。自从 OpenCV 中 Lucas-Kanade 的第一个实现被标记为 SPARSE 以来,这种误解成为了公认的事实,并且直到今天仍然如此。为什么 Lucas-Kanade 应该被称为稀疏的论点适用于任何密集流算法。如果你坚持 Lucas-Kanade 是稀疏的,那么所有流算法都是稀疏的,区分它们是没有意义的。
稀疏流与点跟踪相同,密集流由视频上的向量组成,表示固定位置的运动估计。
您可以在 this tutorial that I wrote 中阅读有关所有这些的更多信息,我还展示了 Lucas-Kanade 如何与其他任何算法一样密集(尽管不那么准确)。
【讨论】:
稀疏光流 - Lucas-Kanade 方法计算稀疏特征集的光流(例如,使用 Shi-Tomasi 算法检测到的角点)。 密集光流 - Gunner Farneback 的算法计算帧中所有点的光流。 Gunner Farneback 在 2003 年的“基于多项式展开的两帧运动估计”对此进行了解释。
【讨论】:
稀疏光流适用于特征(边缘、角落等)。密集光流设计用于所有像素。第一个的优点是它通常更快,而第二个可以提供比第一个更多像素的估计值。
【讨论】:
稀疏光流为您提供一些有趣(角)点的速度向量,这些点是使用 Shi-Tomashi、Harris 等算法预先提取的。提取的点与当前一起传递到您的 [光流函数]图像和下一个图像。任何好的光流函数都应该使用上述角点检查正向的光流,并使用回溯来交叉检查它是否遵循相同的点。
另一方面,密集光流可以参考这里:http://www.cs.toronto.edu/~fleet/courses/cifarSchool09/flowChapter05.pdf
【讨论】: