假设我有一个来自驱动器录像机的视频。我想用运动结构技术来构建所记录场景的点云。首先,我需要跟踪一些点。
哪种算法可以产生更好的结果?使用稀疏光流(Kanade-Lucas-Tomasi跟踪器)还是密集光流(Farneback)?我做了一些实验,但还不能决定。他们每个人都有自己的优点和缺点。
最终目标是获得场景中记录的汽车的点云。通过使用稀疏光流,我可以跟踪汽车的有趣点。但这将是不可预测的。一种解决方案是在图像中制作某种网格,并强制跟踪器在每个网格中跟踪一个有趣的点。但我认为这很难。
通过使用密集流,我可以得到每个像素的运动,但问题是,它不能真正检测到只有很少运动的汽车的运动。此外,我怀疑算法产生的每个像素流是否那么准确。另外,有了这个,我相信我只能得到两个帧之间的像素运动(不像通过使用稀疏光流,我可以得到同一有趣点的多个坐标沿着时间t
)
你的标题表明SFM包括姿态估计,
跟踪只是第一步(匹配),如果你想从视频中获得点云(非常困难的任务),我首先想到的是捆绑调整这也适用于MVE,
然而,对于视频我们可以做得更多,因为帧彼此太近,我们可以使用更快的算法,如(光流),/比匹配SIFT/并从中提取F矩阵,然后:
E = 1/K * F * K
回到你最初的问题,哪个更好:
1)密集光流,或
2)稀疏的。
显然你是离线工作,所以速度不重要,但我会推荐稀疏的,
对于3d重建,密集可能看起来更有吸引力,但正如你所说,它很少有鲁棒性,所以你可以使用稀疏,但添加尽可能多的点,使其半密集,
我不能说出几个方法可以做到这一点,如mono-slam或orb-slam
最终更新像我前面写的那样使用半密集,但是SFM总是假设静态对象(没有移动),否则它永远不会工作。
在实际中使用图像中的所有像素是从未用于3d重建的(不是直接方法),而SIFT总是被称赞用于特征检测和匹配的方法,…最近,所有的像素点都被用于不同的校准方法,例如:直接稀疏测距法和LSD称为直接方法