计算机视觉之三维重建(4)---三维重建基础与极几何

文章目录

  • 一、三维重建基础
    • [1.1 问题引入](#1.1 问题引入)
    • [1.2 线性解法](#1.2 线性解法)
    • [1.3 非线性解法](#1.3 非线性解法)
    • [1.4 多视图几何的关键问题](#1.4 多视图几何的关键问题)
  • 二、极几何与基础矩阵
    • [2.1 极几何](#2.1 极几何)
    • [2.2 极几何特例](#2.2 极几何特例)
    • [2.3 本质矩阵](#2.3 本质矩阵)
    • [2.4 本质矩阵的性质](#2.4 本质矩阵的性质)
    • [2.5 基础矩阵](#2.5 基础矩阵)
    • [2.6 基础矩阵的性质](#2.6 基础矩阵的性质)
  • 三、基础矩阵估计
  • 四、单应矩阵

一、三维重建基础

1.1 问题引入

1. 从单张图像恢复场景几何比较困难。比如下面这张图,图片上人和塔几乎高度相同,但是我们不知道人和塔离摄像机的距离,无法还原真实场景。

2. 要解决上面这个问题,我们必须有 "双眼系统" 才能解决。因为两条射线可以确定交点。但由于噪声的存在,两条直线通常不相交。我们应该如何通过两个摄像机像平面的点 p p p 和 p ′ p' p′ 以及两个摄像机内参数 K K K 和 K ′ K' K′、三角化的矩阵 R R R 和 T T T,来计算世界坐标系下的 P P P 点的坐标呢?

有线性解法和非线性解法两种。

1.2 线性解法

通过摄像机模型关系我们可以得到关于 p p p 和 p ′ p' p′ 的式子,如下图左半部分所示。 那么我们可以根据这两个式子,对于同一个点以及两个像平面点之间的对应关系,写出四个齐次方程,但是未知数只有三个,所以是一个超定齐次线性方程组,可以用齐次方程的最小二乘解来进行计算。

1.3 非线性解法

非线性解法对于下图来说,由于存在噪声,对于 P P P 点在两个平面的投影 M P MP MP 和 M ′ P ∗ M'P^* M′P∗ 与真实的像平面 p p p 和 p ′ p' p′ 存在一定的误差,所以寻找 m i n [ d ( p , M P ) + d ( p ′ , M ′ P ) ] min[d(p,MP)+d(p',M'P)] min[d(p,MP)+d(p′,M′P)]的值,仍然是一个齐次非线性方程组的问题,所以用牛顿法和 L − M L-M L−M 方法来求解。

1.4 多视图几何的关键问题

1. 摄影机几何:从一张或多张图像中求解摄像机的内外参数。

2. 场景几何:通过二至多幅图片寻找3D场景坐标。

3. 对应关系:已知一个图像的 p p p 点,如何在另一个图像上找到 p ′ p' p′ 点。

二、极几何与基础矩阵

2.1 极几何

1. 极几何:描述同一场景或者物体的两个视点图像间的几何关系。极几何主要解决的就是多视图几何的第三个问题: p p p 与 p ′ p' p′ 的对应关系。

2. 对于下图,两个平面就是指两个视点图像,也就是两个摄像机的像平面。 p p p 和 p ′ p' p′ 是两个像素点。

(1) 极平面:过点 P P P, O 1 O_1 O1, O 2 O_2 O2 的平面,也就是 P P P, p p p, p ′ p' p′ 所组成的平面,这两个平面相似。

(2) 基线: O 1 O_1 O1, O 2 O_2 O2 的连线。

(3) 极线:极平面与成像平面的交线,即 p e pe pe, p ′ e ′ p'e' p′e′ 直线。

(4) 极点:基线与成像平面的交点,即下图的 e e e, e ′ e' e′。

3. 性质:

(1) 极平面相交于基线,应该是基线在极平面上。

(2) 极线相交于极点。

(3) 对于不同的世界坐标点 P P P 和点 Q Q Q,在两个像平面的极点 e e e, e ′ e' e′ 不变。

(4) p p p 的对应点在另一个相机的极线 l ′ l' l′ 上。(对应点指的是两个相机之间的三角化 R R R, T T T 对应关系)

(5) p ′ p' p′ 的对应点在另一个相机的极线 l l l 上。

2.2 极几何特例

1. 平行视图:平行视图是指两个摄像机之间三角化没有旋转关系,只有 u u u 轴的横向平移关系,基线平行于图像平面,两个极点位于无穷远处,极线平行于图像坐标的 u u u 轴。

2. 前向平移:前向平移建立在两个摄像机具有两个方向的平移关系,但仍然保持极点位置相同,注意不是说同一个物体在同一个位置上。

通过极几何的约束,可以将搜索范围缩小到对应的极线上,而并没有做到对应点,所以存在一个方向上的误差问题。

2.3 本质矩阵

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

注:这里强调规范化摄像机。规范化摄像机有如下性质。

2. 规范化作用:我们假设有两个像平面 I I I 和 I ′ I' I′, O 1 O_1 O1, O 2 O_2 O2 分别为像平面的原点,图像 I I I 上点 p p p 的像素坐标为 ( u , v ) (u,v) (u,v),图像 I ′ I' I′ 上点 p ′ p' p′ 的像素坐标为 ( u ′ , v ′ ) (u',v') (u′,v′)。此时对于世界坐标系的欧式坐标和两个图像点上的齐次坐标必然一致。

3. 本质矩阵的关系表达式: E = T × R E=T×R E=T×R,其中摄像机 1 1 1 经过平移 T T T 变换,旋转 R R R 变换得到摄像机 2 2 2。对于世界坐标的点 P P P 投影到摄影机 1 1 1 的像平面 p p p 点,投影到摄像机 2 2 2 的像平面 p ′ p' p′ 点有下面关系成立: p ′ T [ T × R ] p = 0 p'^T[T×R]p=0 p′T[T×R]p=0,即 p ′ T E p = 0 {p'}^TEp=0 p′TEp=0,如何证明?

我们知道任意一个 I I I 上的点 p p p 经过 R R R, T T T 变换得到 I ′ I' I′ 上的点 p ′ p' p′,由于旋转矩阵 R R R 是一个正交矩阵,其转置等于其逆,有 R T R = I R^TR=I RTR=I,所以可以推出 p ′ p' p′ 在 O 1 O_1 O1 上的坐标。

过程: p ′ = R p + T p'=Rp+T p′=Rp+T,所以 p = R T p ′ − R T T p=R^Tp'-R^TT p=RTp′−RTT

注: p p p 和 p ′ p' p′ 都是规范化摄像机坐标系下的像素坐标。

2.4 本质矩阵的性质

1. p p p 对应的极线是 l ′ l' l′,对应关系 l ′ = E p l'=Ep l′=Ep。

2. p ′ p' p′ 对应的极线是 l l l,对应关系 l = E T p ′ l=E^Tp' l=ETp′。

3. E e = 0 Ee=0 Ee=0, e ′ T E = 0 e'^TE=0 e′TE=0。

4. E E E 是奇异的, r a n k rank rank 为 2 2 2。

5. E E E 有 5 5 5 个自由度 (三个平移三个旋转,由于行列式为 0 0 0,去掉一个自由度)。

2.5 基础矩阵

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

2.6 基础矩阵的性质

1. 基本上性质与本质矩阵相似,只不过由于多了两个参数 K K K 和 K ′ K' K′ 所以为 7 7 7 个自由度。

2. 基础矩阵作用:基础矩阵中包含了摄像机内参数信息,所以给了基础矩阵,我们无需知道两个摄像机的内外参数就可以建立相同场景在不同视图的对应关系。

三、基础矩阵估计

1. 首先由于 p ′ T F p = 0 {p'}^TFp=0 p′TFp=0 我们可以转化成 W F ′ = 0 WF'=0 WF′=0 的齐次形式,此时我们定义新的列向量参数为 F ′ F' F′,由于参数列向量 F ′ F' F′ 一共有 8 8 8 个有效值,所以我们只需要找 8 8 8 组点就可以解这个齐次线性方程组。解齐次线性方程组,仍然可以用齐次线性方程组的最小二乘解,通过找大于 8 8 8 个点,通过求解一个 S V D SVD SVD 问题即可。

2. 但此时有一个问题:当前的 F ′ F' F′ 与基础矩阵 F F F 并不一致,这一方面可以通过reshape来修改,但由于多组点不一定均为正确点以及噪声点的出现,可能导致 F ′ F' F′ 矩阵的秩为 3 3 3,而一般基础矩阵 F F F 的秩为 2 2 2,所以我们要进行秩 2 2 2 校正。

3. 由于计算八点法求齐次线性方程组的最小二乘解过程中,参数之间数值差异过大,导致精度较低,误差较大,所以对八个点进行归一化处理。

对每幅图像施加变换 T T T(平移与缩放),让其满足原点为图像上八个点的重心,各个点到坐标原点的均方根距离均为根号2。所以主要是计算两台摄像机的两幅图像中的 T T T 和 T ′ T' T′。

4. 归一化八点法过程如下所示:

四、单应矩阵

1. 单应矩阵的前提是在同一平面上观察的多个点,即空间平面在两个摄像机下的投影几何。

2. 单应矩阵 H H H 的作用:单应矩阵可以得到 p p p 和 p ′ p' p′ 的点对点对应关系: p = H p ′ p=Hp' p=Hp′。

H H H 只有 8 8 8 自由度,只需要 4 4 4 对点的对应关系,即可计算出 H H H,这样就可以计算出两者的关系,相较于基础矩阵更加简单,但要求也更多,世界坐标系的点必须在同一平面上。

相关推荐
youcans_7 分钟前
【微软:多模态基础模型】(5)多模态大模型:通过LLM训练
人工智能·计算机视觉·大模型·大语言模型·多模态
飞凌嵌入式10 分钟前
飞凌嵌入式T113-i开发板RISC-V核的实时应用方案
人工智能·嵌入式硬件·嵌入式·risc-v·飞凌嵌入式
sinovoip12 分钟前
Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计
人工智能·科技·物联网·开源·risc-v
搏博35 分钟前
神经网络问题之一:梯度消失(Vanishing Gradient)
人工智能·机器学习
z千鑫35 分钟前
【人工智能】深入理解PyTorch:从0开始完整教程!全文注解
人工智能·pytorch·python·gpt·深度学习·ai编程
YRr YRr43 分钟前
深度学习:神经网络的搭建
人工智能·深度学习·神经网络
威桑1 小时前
CMake + mingw + opencv
人工智能·opencv·计算机视觉
爱喝热水的呀哈喽1 小时前
torch张量与函数表达式写法
人工智能·pytorch·深度学习
肥猪猪爸1 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
LZXCyrus2 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm