直接线性变换(DLT) 、P3P问题;RANSAC;相机标定;对极约束、本质矩阵(Essential Matrix)

直接线性变换(Direct Linear Transform,DLT)

s [ u v 1 ] = [ f x γ c x 0 f y c y 0 0 1 ] [ r 11 r 12 r 13 t x r 21 r 22 r 23 t y r 31 r 32 r 33 t z ] [ X w Y w Z w 1 ] s\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} =\begin{bmatrix} f_x & \gamma &c_x \\ 0 & f_y &c_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} r_{11} & r_{12} & r_{13} & t_x \\ r_{21} & r_{22} & r_{23} & t_y \\ r_{31} & r_{32} & r_{33} & t_z \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \\ 1 \end{bmatrix} suv1=fx00γfy0cxcy1r11r21r31r12r22r32r13r23r33txtytzXwYwZw1

由于 RT 一共有12维,因此,最少通过6对匹配点即可实现矩阵 RT 的线性求解,这种方法称为直接线性变换(Direct Linear Transform,DLT)。当匹配点大于6对时,也可以使用SVD等方法对超定方程求最小二乘解。

但由于 R 是一个旋转矩阵,其内部存在约束 R T = R − 1 , R R T = I , d e t ( R ) = 1 R^T=R^{-1},RR^T=I,det(R)=1 RT=R1,RRT=I,det(R)=1,实际只需要三个变量就能表示。参考罗德里格斯公式(Rodrigues’s Formula)

旋转矩阵有一些特别的性质。 事实上, 它是一个行列式为1的正交矩阵 R T = R − 1 R^T=R^{-1} RT=R1。 反之,行列式为1的正交矩阵也是一个旋转矩阵。 所以, 可以把旋转矩阵的集合定义如下:

S O ( n ) = { R ∈ R n × n ∣ R R T = I , d e t ( R ) = 1 } SO(n)=\{R\in \mathbb{R}^{n \times n}|RR^T=I,det(R)=1\} SO(n)={RRn×nRRT=I,det(R)=1}

当只有3对点时,可以考虑如下约束,进行非线性求解

[ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] T = I \left[\begin{matrix}r_{11} & r_{12} & r_{13}\\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{matrix}\right]\left[\begin{matrix}r_{11} & r_{12} & r_{13}\\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{matrix}\right]^T=I r11r21r31r12r22r32r13r23r33r11r21r31r12r22r32r13r23r33T=I

整理得:

{ r 11 2 + r 12 2 + r 13 2 = 1 r 11 r 21 + r 12 r 22 + r 13 r 23 = 0 r 11 r 31 + r 12 r 32 + r 13 r 33 = 0 r 21 2 + r 22 2 + r 23 2 = 1 r 21 r 31 + r 22 r 32 + r 23 r 33 = 0 r 31 2 + r 32 2 + r 33 2 = 1 \left\{\begin{matrix}r_{11}^2+r_{12}^2+r_{13}^2=1\\r_{11}r_{21}+r_{12}r_{22}+r_{13}r_{23}=0\\r_{11}r_{31}+r_{12}r_{32}+r_{13}r_{33}=0\\r_{21}^2+r_{22}^2+r_{23}^2=1\\r_{21}r_{31}+r_{22}r_{32}+r_{23}r_{33}=0\\r_{31}^2+r_{32}^2+r_{33}^2=1\end{matrix}\right. r112+r122+r132=1r11r21+r12r22+r13r23=0r11r31+r12r32+r13r33=0r212+r222+r232=1r21r31+r22r32+r23r33=0r312+r322+r332=1

共6个方程,再加上3对点的6个方程,从而可以利用 LM 算法求解。

三点透视问题(Perspective-Three-Point Problem,P3P)

可以利用三角几何关系列方程求解,与非线性求解等价。

在求解P3P问题时,将三个三元二次方程,转换为两个二元二次方程,最终化为一个一元四次方程,从而求出了该问题的闭式解。

RANSAC(RANdom SAmple Consensus)

RANSAC的特点主要是可以从包含大量误差的数据中拟合出较为准确的模型。

该算法不同于最小二乘法,并没有将全部数据进行计算,而是类似于剔除粗大误差将计算为有效的点用来估计模型,从而使得估计更加准确。可以将其与Kmeans算法相结合用于数据模型的估计。

位置确定问题(Location Determination Problem, LDP)中的应用:即已知一组空间点的坐标,且给定了一张图像,并知道图像中点与空间点的对应关系,求图像的透视中心点在空间中的位置与姿态。

相机标定(Camera Calibration)

如果显示器模拟图像空间姿态变换用以标定相机,那么就说明已经知道了这个单应矩阵,因此该方法用于标定相机理论不可行。

对极约束

x 2 T t ∧ R x 1 = 0 x_2^Tt^\wedge Rx_1=0 x2TtRx1=0

p 2 T K − T t ∧ R K − 1 p 1 = 0 p_2^TK^{-T}t^\wedge RK^{-1}p_1=0 p2TKTtRK1p1=0

这两个式子都称为对极约束,它以形式简洁著名。它的几何意义是O1,P,O2三者共面。对极约束中同时包含了平移和旋转。我们把中间部分记作两个矩阵:基础矩阵(Fundamental Matrix)F和本质矩阵(Essential Matrix)E,于是可以进一步简化对极约束:

E = t ∧ R , F = K − T E K − 1 , x 2 T E x 1 = p 2 T F p 1 = 0 E=t^\wedge R, F=K^{-T}EK^{-1}, x_2^TEx_1=p_2^TFp_1=0 E=tR,F=KTEK1,x2TEx1=p2TFp1=0

由于E和F只相差了相机内参,而内参在SLAM中通常是已知的,所以实践当中往往使用形式更简单的E。

本质矩阵(Essential Matrix)

由于平移和旋转各有3个自由度,故 t ∧ R t^\wedge R tR 共有6个自由度。但由于尺度等价性,故 E 实际上有5个自由度。

E具有5个自由度的事实,表明我们最少可以用5对点来求解E。但是,E的内在性
质是一种非线性性质,在求解线性方程时会带来麻烦,因此,也可以只考虑它的尺度
等价性,使用8对点来估计E——这就是经典的八点法(Eight-point-algorithm)[38,39]
。八点法只利用了E的线性性质,因此可以在线性代数框架下求解。

[ 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 ] = 0 \left[\begin{matrix}u_1&v_1&1\\\end{matrix}\right] \left[\begin{matrix}e_1&e_2&e_3\\e_4&e_5&e_6\\e_7&e_8&e_9\\\end{matrix}\right] \left[\begin{matrix}u_2\\v_2\\1\\\end{matrix}\right]=0 [u1v11]e1e4e7e2e5e8e3e6e9u2v21=0

OpenCV 中还有 7-point algorithm

参考文献

视觉SLAM十四讲:从理论到实践
视觉测量原理与方法
OpenCV官方文档
[Fischler81]Random Sample Consensus A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography
k-means++: The Advantages of Careful Seeding
Complete Solution Classification for the Perspective-Three-Point Problem
A Flexible New Technique for Camera Calibration
1997-PAMI-Richard I. Hartley-In Defense of the Eight-Point Algorithm

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值