详解Flow Vector Bound (FVB) 约束

Posted 猛龙过江ing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解Flow Vector Bound (FVB) 约束相关的知识,希望对你有一定的参考价值。

梦回芳草思依依,天远雁声稀。——(五代)李煜《喜迁莺·晓月坠》

前两天看文献,看到有用Flow Vector Bound (FVB) 约束剔除图像中的动态匹配的。于是,我找了一篇文献仔细研究了一下,发现这个点子还不错,可以作为对极约束的一个很好的补充。

退化的运动主要发生在运动的物体与相机处于相对静止时。在实际情况中一个常见的情形是相机在纯平移状态下紧跟着一个运动的物体。我们假设相机的平移量为是静态点X在图像中对应的点,其中可以被表示为。将世界坐标系附加到第一个帧图像的相机中心,则相机矩阵分别为。如果z为场景中特征点X的深度,则点X的非齐次坐标为。现在点X在第二个视角中的图像坐标。联立两个式子,我们可以得到

这个式子描述了特征点在图像中的移动。从图像中的点开始,沿着由点和极点确定的直线运动。运动的幅度取决于平移量t和深度z。值得注意的是对于纯平移运动的相机, 极点(Focus of Expansion,FOE)。图像点沿着从极向外辐射的线移动,也称为FOE。

如果我们知道了一个场景点的深度z,我们可以预测它在极线上的位置。距离相机近的点比距离远的点移动的更快。在缺少深度信息的情况下,我们对三维点设定一个可能的深度区间。令为特征点可能深度的上限和下限。然后我们可以确定对应的点在极线上的位移的最大值和最小值。如果一个点的唯一幅度不在最小值和最大值之间,那么它很有可能是一个动态的特征点。

当相机与一个向前移动的机器人保持相对静止时,静态特征点的向远离极点方向移动,而动态点的图像可能出现向极点移动。这些动态点在极线方向的位移量将在边界之外,所以在发生移动时会被检测到。因此,它能够检测一个常见的退化运动,这是对极约束不能检测到的。

参考

1.          Kundu, A.; Krishna, K.M.; Sivaswamy, J. Moving object detection by multi-view geometric techniques from a single camera mounted robot. In Proceedings of 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems; pp. 4306-4312.

以上是关于详解Flow Vector Bound (FVB) 约束的主要内容,如果未能解决你的问题,请参考以下文章

lower_bound() 函数使用详解

vector 牛逼 +lower_bound+ upper_bound

vector成员函数

Django之 CVB&FVB

upper_bound 和 find 给出不同的结果

flow 使用详解 + 小结