使用基础矩阵校验对应点时点的顺序为何会对结果产生影响?
基础矩阵对极约束的点顺序问题本质
基础矩阵( F )的核心作用是描述两张视图之间的投影几何对应关系,它的定义本身就强绑定了两张视图的先后顺序:
- 若( F )是从第一张视图到第二张视图的基础矩阵,那么它的作用是将第一张视图中的点( x )映射为第二张视图中对应的对极线( l' = Fx )
- 对极约束的推导来自于「第二张视图中的匹配点( x' )一定落在这条对极线( l' )上」,点在线上的代数条件就是点的齐次坐标和线的齐次坐标点积为0,因此才有约束公式:
交换点后不成立的原因
基础矩阵本身不是对称矩阵,绝大多数场景下都不满足( F = F^T )。如果你需要写第一张视图点( x )、第二张视图点( x' )反过来的约束,需要用( F )的转置,也就是:
( x^T F^T x' = 0 )
而你提到的这个公式本身就不符合对极约束的定义,自然代入计算不会得到0的结果。
关于规范相机假设的说明
你提到的将第一个相机设为规范相机( [I\ 0] )只是推导基础矩阵过程中常用的简化手段,并不是基础矩阵存在的前置条件。不管你用什么方式标定、推导两张视图的基础矩阵,只要它的定义是「从视图1到视图2」的基础矩阵,对极约束的点顺序就必须是视图2的点在前、视图1的点在后,和推导时有没有用规范相机假设完全无关。
内容的提问来源于stack exchange,提问作者DeadPixel
相关产品推荐
相关产品推荐

