《视觉SLAM十四讲》学习笔记-对极约束问题

对极约束

对极约束

问题描述:求取两帧图像 I 1 , I 2 之间的运动。设第一帧到第二帧的运动为 R , t ,其中心分别为 O 1 , O 2 I 1 中有一个点 p 1 对应到 I 2 的点为 p 2 . P 为两个摄像机在远处的交点。 O 1 O 2 P 称为极平面(Epipolar plane), O 1 O 2 连线与相机平面交点称为极点(Epipoles), O 1 O 2 称为基线, l 1 , l 2 为极线(Epipolar line).

以第一帧的坐标系作为基准,设 P 坐标为 P = [ X , Y , Z ] , p 1 , p 2 位置为:

s 1 p 1 = K P ,   s 2 p 2 = K ( R P + t )

其中 K 为相机内参, R , t 为坐标系的相机运动。转化为齐次等式:
p 1 = K P ,   p 2 = K ( R P + t )

x 1 = K 1 p 1 , x 2 = K 1 p 2 ,则有:
x 2 = R x 1 + t

两边左乘 t ,有:
t x 2 = t R x 1     ( x 2 t = 0 )

两边再左乘 x 2
x 2 t x 2 = x 2 t R x 1

因为 t x 2 t x 2 皆为垂直,所以左侧为0:
x 2 t R x 1 = 0

再代入 x 1 , x 2 得到:
( K 1 p 2 ) t R K 1 p 1 = 0

即:
p 2 K t R K 1 p 1 = 0

此式即为对极约束,几何意义为 O 1 , O 2 , P 共面。
将中间拆为基础矩阵和本质矩阵,可简化约束为:

E = t R , R = K T E K 1 , x 2 E x 1 = p 2 F p 1 = 0

上式中, E 本质矩阵(Essential Matrix), F 基础矩阵(Fundamental Matrix).所以相机位势估计问题变为:

  • 根据配对点的像素位置, 求出 E F ;
  • 根据 E F , 求出 R , t .

本质矩阵 E 性质:
- 尺度等价性: E 在不同尺度下等价
- 内在性质: E 的奇异值必定是 [ ρ , ρ , 0 ] 的形式
- t R 有6个自由度,而 E 有5个自由度

如何求解本质矩阵 E :
- 方法一:因为 E 有五个自由度,说明可以用五对点来求解 E 。但 E 的内在性质是非线性的,用线性的方程求解会带来问题。
- 方法二:从尺度等价性出发,用八对点来解方程。

八对点求解本质矩阵 E

考虑一对匹配点,它们的归一化坐标为 x 1 = [ u 1 , v 1 , 1 ] , x 2 = [ u 2 , v 2 , 1 ] ,根据对极约束有:

[ u 1 , v 1 , 1 ] [ e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 ] [ u 2 , v 2 , 1 ]

E 展开成向量表示, e = [ e 1 , , e 9 ] ,则线性方程为:
[ u 1 u 2 , u 1 v 2 , u 1 , v 1 u 2 , v 1 v 2 , v 1 , u 2 , v 2 , 1 ] e = 0

对其他点对,也有类似表示。把这8个点对的方程放在一起可组成一个线性方程:
[ u 1 1 u 2 1 u 1 1 v 2 1 u 1 1 v 1 1 u 2 1 v 1 1 v 2 1 v 1 1 u 2 1 v 2 1 1 u 1 2 u 2 2 u 1 2 v 2 2 u 1 2 v 1 2 u 2 2 v 1 2 v 2 2 v 1 2 u 2 2 v 2 2 1 u 1 3 u 2 3 u 1 3 v 2 3 u 1 3 v 1 3 u 2 3 v 1 3 v 2 3 v 1 3 u 2 3 v 2 3 1 u 1 8 u 2 8 u 1 8 v 2 8 u 1 8 v 1 8 u 2 8 v 1 8 v 2 8 v 1 8 u 2 8 v 2 8 1 ] e = 0

则问题变为: 如何根据已估得的本质矩阵 E ,恢复得到 R t .

不妨设 E 的SVD分解为:

E = U Σ V

其中 U V 为正交阵, Σ 为奇异值矩阵,根据之前的推断 Σ = d i a g ( ρ , ρ , 0 ) ,可知对任一 E 存在两个可能的 R t 与之对应:
t 1 = U R Z ( π 2 ) Σ U ,     R 1 = U R Z ( π 2 ) V t 2 = U R Z ( π 2 ) Σ U ,     R 2 = U R Z ( π 2 ) V

式中 R Z ( π 2 ) 表示为沿Z轴旋转90度得到的旋转矩阵。此外,由于- E E 等价,对任意的 t 取负号也会得到同样结果。所以从 E 分解到 R t 时一共存在四个可能的解。

后续为了检查哪个解是正确的时候,可以把任意一点代入四个解中,当该点在两个相机下的深度皆为正的深度时(即解为正数),即可确认该解是所述问题的正确的解。
剩下的问题:如何确认解出的 E 满足内在性质
假设对 E 做SVD分解后,奇异值矩阵 Σ = d i a g ( ρ 1 , ρ 2 , ρ 3 ) , 不妨设 ρ 1 ρ 2 ρ 3 ,构造:

E = U d i a g ( ρ 1 + ρ 2 2 , ρ 2 + ρ 3 2 , 0 ) V

即把求出的矩阵投影到 E 的流形上,即可保证其满足内在性质。更简单的做法是直接将奇异值矩阵取为diag(1, 1, 0)使得 E 具有尺度等价性。

单应矩阵

单应矩阵(Homography) H :描述了两个平面之间的映射关系。它描述了处于共同平面上的一些点在两张图像之间的变换关系。
假设图像 I 1 I 2 有匹配好的点 p 1 p 2 ,这些特征点落在平面上,平面满足方程:

n P + d = 0

整理有:
n P d = 1

则:
p 2 = K ( R P + t ) = K ( R P + t ( n P d ) ) = K ( R t n d ) P = K ( R t n d ) K 1 p 1

这是一个关于图像坐标 p 1 p 2 的变换,为方便把中间这部记为 H , 于是:
p 2 = H p 1

为求解 H ,类似于 E 的做法,将上式展开:
[ u 2 v 2 1 ] = [ h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ] [ u 1 v 1 1 ]

为简化问题,实际上常常乘以一个非0因子使得 h 9 = 1 ,即乘上 1 / ( h 7 u 1 + h 8 v 1 + h 9 ) ,再次展开得到式子:
u 2 = h 1 u 1 + h 2 v 1 + h 3 h 7 u 1 + h 8 v 1 + h 9 v 2 = h 4 u 1 + h 5 v 1 + h 6 h 7 u 1 + h 8 v 1 + h 9

注意到 h 9 = 1 , 整理后可得到:
u 2 = ( h 1 u 1 + h 2 v 1 + h 3 ) ( h 7 u 1 + h 8 v 1 ) u 2 v 2 = ( h 4 u 1 + h 5 v 1 + h 6 ) ( h 7 u 1 + h 8 v 1 ) v 2

由此可见一对匹配点可构造两项约束,于是自由度为8的单应矩阵可通过4对匹配点来算出。构造方程如下:
[ u 1 1 v 1 1 1 0 0 0 u 1 1 u 2 1 v 1 1 u 2 1 0 0 0 u 1 1 v 1 1 1 u 1 1 v 2 1 v 1 1 v 2 1 u 1 2 v 1 2 1 0 0 0 u 1 2 u 2 2 v 1 2 u 2 2 0 0 0 u 1 2 v 1 2 1 u 1 2 v 2 2 v 1 2 v 2 2 u 1 3 v 1 3 1 0 0 0 u 1 3 u 2 3 v 1 3 u 2 3 0 0 0 u 1 3 v 1 3 1 u 1 3 v 2 3 v 1 3 v 2 3 u 1 4 v 1 4 1 0 0 0 u 1 4 u 2 4 v 1 4 u 2 4 0 0 0 u 1 4 v 1 4 1 u 1 4 v 2 4 v 1 4 v 2 4 ] [ h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 ] = [ u 2 1 v 2 1 u 2 2 v 2 2 u 2 3 v 2 3 u 2 4 v 2 4 ]

解线性方程可得到 H .此法称为直接线性变换法(Direct Linear Transform).

同本质矩阵相似,为验证 H ,对 H 做SVD分解后可得到四组旋转矩阵与向量,考虑以下事实:
1) 成像的地图点的深度是否全为正值?若是可排除两组解。
2) 场景中的平面的法向量。若场景平面与相机平面平行,又可排除一组解,其法向量 n 的理论值应为 1 .
可以看到最后的解是通过场景事实筛选而获得的。

问题讨论:

1) 尺度不确定性问题:对 t 归一化时,会导致单目视觉的尺度不确定性(Scale Ambiguity). 当对两张图的 t 归一化时,相当于固定了尺度,即 t 的单位为1,称之为单目SLAM的初始化。要求初始化的两张图像须有一定程度的平移。
2) 初始化的纯旋转问题:若相机发生的是纯旋转,导致 t 为零,会导致无法求解 R . 因而要求:单目初始化不能只有纯旋转,必须要有一定程度的平移。
3) 多于八对点的情况:不妨设线性化后的对极约束等式中,左侧的系数矩阵为 A :

A e = 0

只用八点法的话, A 的大小为8*9; 当多于八对点时,可以通过最小化二次型来求解:
min e A e 2 2 = min e e A A e

这样就求出了在最小二乘意义下的矩阵。也可以通过Random Sample Concensus(随机采样一致性)来求解。

猜你喜欢

转载自blog.csdn.net/luohuiwu/article/details/80722439
今日推荐