【问题标题】:Structure from Motion with Optical Flow光流运动结构
【发布时间】:2016-11-01 01:58:08
【问题描述】:

假设我有一个来自行车记录仪的视频。我想使用运动技术的结构来构建记录场景的点云。首先我需要跟踪一些点。

哪种算法可以产生更好的结果?通过使用稀疏光流(Kanade-Lucas-Tomasi 跟踪器)还是密集光流(Farneback)?我做了一些实验,但不能真正决定。他们每个人都有自己的长处和短处。

最终目标是获取场景中记录的汽车的点云。通过使用稀疏光流,我可以跟踪汽车的有趣点。但这将是非常不可预测的。一种解决方案是在图像中制作某种网格,并强制跟踪器跟踪每个网格中的一个有趣点。但我认为这将是相当困难的。

通过使用密集流,我可以得到每个像素的运动,但问题是,它不能真正检测到只有很少运动的汽车的运动。另外,我怀疑算法产生的每个像素的流动是否准确。另外,有了这个,我相信我只能获得两帧之间的像素移动(与使用稀疏光流不同,我可以在时间上获得同一有趣点的多个坐标t

【问题讨论】:

  • 您是否尝试过具有 SIFT 特征的 SfM 的常用方法?
  • 两者都用怎么样?
  • @Sunreef 我刚刚尝试了good features to track (gftt)。 SIFT 怎么能比gftt 更有帮助?
  • @Micka 考虑过。但是计算量不是很大吗?

标签: opencv opticalflow 3d-reconstruction structure-from-motion


【解决方案1】:

您的标题表示 SFM,其中包括 姿势估计

跟踪只是第一步(匹配),如果你想要视频中的点云(非常艰巨的任务)我首先会想到的是捆绑调整,它也适用于 MVE,

尽管如此,对于视频我们可以做更多的事情,因为帧彼此太接近,我们可以使用更快的算法,例如(光流),/而不是匹配 SIFT/ 并从中提取 F 矩阵,然后:

E = 1/K * F * K

回到你原来的问题,什么更好:

1) 密集光流,或

2) 稀疏一个。

显然你是离线工作,所以速度并不重要,但我会推荐稀疏的,

更新

对于 3d 重建,密集可能看起来更有吸引力,但正如你所说,它很少健壮,所以你可以使用稀疏但添加尽可能多的点,使其 半密集

我只能说出一些可以做到这一点的方法,例如 mono-slamorb-slam

最终更新

使用我之前写的半密集,但 SFM 总是假设静态对象(没有运动),否则它将永远无法工作。

实际上,使用图像中的所有像素从未用于 3d 重建(不是直接方法),并且一直 SIFT 被称赞为特征检测和匹配的方式,.. 最近所有像素都用于不同类型的校准,例如:Direct Sparse odometryLSD 被称为 Direct 方法

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 2016-04-17
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 2019-01-20
    • 2015-08-25
    相关资源
    最近更新 更多