计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》

文章目录

  • 第四章:三维重建基础与极几何
    • 1. 双视图与三角化
      • 1.1 线性解
      • 1.2 非线性解
      • 1.3 实际情况中的问题定义
      • 1.4 多视图几何的关键问题
    • 2. 极几何与基础矩阵
      • 2.1 极几何
      • 2.2 本质矩阵
      • 2.3 基础矩阵
    • 3. 基础矩阵估计
      • 3.1 八点法
      • 3.2 归一化八点法
    • 4. 单应矩阵
      • 4.1 单应矩阵推导
      • 4.2 单应矩阵估计
      • 4.3 单应矩阵性质

第四章:三维重建基础与极几何

由于从单幅视图恢复场景三维结构比较困难,并且,单视图2D到3D的映射具有多义性,如下图所示,从单视图中很难辨别塔是模型还是实物;

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第1张图片

1. 双视图与三角化

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第2张图片

只要已知直线 l l l l ′ l' l,则三维点P就是两条直线的交点。因此,只要将直线 l l l l ′ l' l映射到同一坐标系下,就可以通过 P = l × l ′ P=l \times l' P=l×l求出点 P P P的三维坐标。

此时,问题演变成了:
已知二维像素坐标 p p p p ′ p' p K K K K ′ K' K,以及两视图之间的变换矩阵 R R R T T T
求解P点的三维坐标?

此时存在两种解法:线性解和非线性解;

1.1 线性解

1.2 非线性解

最小化重投影误差

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第3张图片

1.3 实际情况中的问题定义

  • 在实际情况中,由于噪声的存在,两条直线通常不相交;
  • 且上述的线性解和非线性解都需要已知 K K K K ′ K' K R R R T T T
  • 然而,实际情况中,摄像机的内参 K K K K ′ K' K和两视图之间的变换矩阵 R R R T T T通常不可知,那么实际情况就变成了如下的问题:
    • 问题1:已知 p p p p ′ p' p,摄像机内参数 K K K K ′ K' K
    • 求解:摄像机的 R R R T T T以及P点的三维坐标?
    • 问题2:已知 p p p p ′ p' p
    • 求解:摄像机内参数 K K K K ′ K' K,摄像机的 R R R T T T以及P点的三维坐标?

1.4 多视图几何的关键问题

  • 摄像机几何:从一张或者多张图像中求解摄像机的内、外参数;
  • 场景几何:通过二至多幅图寻找3D场景坐标;
  • 对应关系:已知一个图像中的 p p p点,如何在另外一个图像中找到 p ′ p' p点;

2. 极几何与基础矩阵

2.1 极几何

极几何描述了同一场景或者物体的两个视点图像间的几何关系;

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第4张图片

极几何可以将对应点搜索范围缩小到对应的极线上;

(1)极几何特例——平行视图
计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第5张图片
(2)极几何特例——前向平移(无旋转)
计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第6张图片

2.2 本质矩阵

本质矩阵对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述;

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第7张图片

p ′ p' p O 2 O_2 O2 O 1 O_1 O1坐标系下的坐标为:
p ′ = R p ′ ∗ + T p ′ ∗ = R T ( p ′ − T ) = R T p ′ − R T T \begin{aligned} p' & =Rp^{'*} +T \\ p^{'*} & =R^T(p'-T) \\ & =R^Tp'-R^TT \\ \end{aligned} pp=Rp+T=RT(pT)=RTpRTT
∵ O 2 = [ 0 0 0 ] T O 2 ∗ = − R T T \begin{aligned} \because O_2 & =[0 \quad 0 \quad 0 ]^T \\ O^{*}_{2} & =-R^TT \\ \end{aligned} O2O2=[000]T=RTT

对两个向量进行叉乘:
O 1 p ′ ∗ → × O 1 O 2 ∗ → = ( R T p ′ − R T T ) × ( − R T T ) = R T T × R T p ′ \begin{aligned} \overrightarrow{O_1 p^{'*}} \times \overrightarrow{O_1 O^{*}_2} & = (R^Tp'-R^TT) \times (-R^TT) \\ & = R^TT \times R^T p' \\ \end{aligned} O1p ×O1O2 =(RTpRTT)×(RTT)=RTT×RTp

得到的向量垂直于 O 1 O 2 P O_1O_2P O1O2P 极平面,因此可得:
[ R T T × R T p ′ ] T ⋅ p = 0 [ R T ⋅ ( T × p ′ ) ] T ⋅ p = 0 ( T × p ′ ) T ⋅ R ⋅ p = 0 ( [ T × ] ⋅ p ′ ) T ⋅ R ⋅ p = 0 p ′ T ⋅ [ T × ] ⋅ R ⋅ p = 0 p ′ T ⋅ [ T × R ] ⋅ p = 0 p ′ T ⋅ E ⋅ p = 0 \begin{aligned} & [R^TT \times R^T p']^T \cdot p=0 \\ & [R^T \cdot (T \times p')]^T \cdot p=0\\ & (T \times p')^T \cdot R \cdot p=0\\ & ([T_{\times}] \cdot p')^T \cdot R \cdot p=0\\ & p^{'T} \cdot [T_{\times}] \cdot R \cdot p=0\\ & p^{'T} \cdot [T \times R] \cdot p=0\\ & p^{'T} \cdot E \cdot p=0\\ \end{aligned} [RTT×RTp]Tp=0[RT(T×p)]Tp=0(T×p)TRp=0([T×]p)TRp=0pT[T×]Rp=0pT[T×R]p=0pTEp=0

最终,本质矩阵 E = T × R = [ T × ] R E=T \times R = [T_{\times}] R E=T×R=[T×]R
计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第8张图片

2.3 基础矩阵

基础矩阵对一般的透视摄像机拍摄的两个视点的图像间的极几何关系进行代数描述。

推导思路:将一般相机变换到规范化相机,用本质矩阵来表达;
p = K [ I 0 ] P K − 1 p = [ I 0 ] P \begin{aligned} p & = K[I \quad 0]P \\ K^{-1}p & = [I \quad 0]P \end{aligned} pK1p=K[I0]P=[I0]P
则规范化相机下左右两视图的像素点坐标演变为:
p c = K − 1 p p c ′ = K ′ − 1 p ′ \begin{aligned} p_c & = K^{-1}p \\ p_c^{'} & = K^{'-1}p' \\ \end{aligned} pcpc=K1p=K1p
带入本质矩阵:
p c ′ T E p c = p c ′ T ⋅ [ T × ] R ⋅ p c = ( K ′ − 1 p ′ ) T ⋅ [ T × ] R ⋅ K − 1 p = p ′ T K ′ − T [ T × ] R K − 1 p = p ′ T F p \begin{aligned} p_c^{'T}Ep_c & = p_c^{'T} \cdot [T_{\times}] R \cdot p_c \\ & =(K^{'-1}p')^T \cdot [T_{\times}] R \cdot K^{-1}p \\ & = p^{'T}K^{'-T} [T_{\times}] R K^{-1}p \\ & = p^{'T}Fp \end{aligned} pcTEpc=pcT[T×]Rpc=(K1p)T[T×]RK1p=pTKT[T×]RK1p=pTFp

最终基础矩阵F为:
F = K ′ − T [ T × ] R K − 1 F=K^{'-T} [T_{\times}] R K^{-1} F=KT[T×]RK1
计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第9张图片

3. 基础矩阵估计

3.1 八点法

p ′ T F p = 0 p^{'T}Fp=0 pTFp=0

F有7个自由度,理论上7点可以解出F,但计算比较复杂;

(1)单点方程矩阵形式展开:
计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第10张图片
(2)选取八个点,列出齐次线性方程:计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第11张图片
(3)最小二乘求解:

通常 N > 8 N>8 N>8,为超定方程组,采用最小二乘求解: 计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第12张图片

(4)满秩矩阵分解:

上述经过最小二乘估计得到的 F ^ \hat F F^通常秩为3,为满秩矩阵,但基础矩阵 F F F的秩为2。
计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第13张图片

(5)八点法求解总结

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第14张图片
(6)八点法存在的问题

  • W矩阵中各个元素的数值差异过大;
  • SVD分解有数值计算问题
  • 导致求解结果通常有10+pixel左右的误差;

3.2 归一化八点法

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第15张图片

对每幅图像施加变换T(平移与缩放),让其满足如下条件:

  • 原点 = 图像上点的重心;
  • 各个像点到坐标原点的均方根距离等于 2 \sqrt 2 2 ;

归一化八点法的计算步骤如下:

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第16张图片

归一化八点法的精度高,推荐使用;

4. 单应矩阵

单应矩阵描述空间中的平面在两个摄像机下的投影几何;

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第17张图片

4.1 单应矩阵推导

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第18张图片

4.2 单应矩阵估计

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第19张图片

4.3 单应矩阵性质

计算机视觉之三维重建——第四章:三维重建基础与极几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》_第20张图片

你可能感兴趣的:(3D视觉,计算机视觉,算法,人工智能,极几何)