计算机视觉教程1-4:对极几何基本原理图解

简介: 计算机视觉教程1-4:对极几何基本原理图解

目录

1 导论

透视几何的缺陷是图像深度信息的丢失,如图1所示,根据相似变换关系,视线上的若干平面都映射为成像面上的一个平面。


image.png

对极几何是两个透视几何模型间的几何约束关系,主要用于实现基于三角测量的双目立体视觉、深度估计等,对极几何约束只能实现点到线的映射,因此约束条件弱于透视几何。图2展示了对极几何的基本概念,其中3D世界的真实点称为物点 X X X;物点在相机成像面上形成像点 x L x_L x

L


、 x R x_R x

R


;两台透视相机间光心的连线称为基线;基线与成像面的交点称为极点 e L e_L e

L


、 e R e_R e

R


,若图像中不存在极点,则说明两个摄像机不能拍摄到彼此;像点与极点的连线称为极线,所有极线相交于极点;透视相机光心与物点确定的平面称为极平面,对于不同物点,极平面绕基线旋转,极线绕极点矩形,如图3所示。


image.png

image.png

2 对极约束推导

下面讨论两个透视模型间的关系。不妨以左侧相机为参考,设物点 L  ⁣ X = [ X Y Z ] T ^{\boldsymbol{L}}\!X=\left[

XYZ

XYZ

\right] ^T

L

X=[

X


 

Y


 

Z


]

T

,左右两相机间的变换关系为


L R T = [ R t 0 1 ] _{\boldsymbol{L}}^{\boldsymbol{R}}\boldsymbol{T}=\left[

R0t1

Rt01

\right]

L

R


T=[

R

0


 

t

1


]


则物点在右透视相机坐标系里的3D坐标为


R  ⁣ X = L R T L  ⁣ X = R [ X Y Z ] + t = [ X ′ Y ′ Z ′ ] ^{\boldsymbol{R}}\!\boldsymbol{X}=_{\boldsymbol{L}}^{\boldsymbol{R}}\boldsymbol{T}^{\boldsymbol{L}}\!\boldsymbol{X}=\boldsymbol{R}\left[

XYZ

XYZ

\right] +\boldsymbol{t}=\left[

X′Y′Z′

X′Y′Z′

\right]

R

X=

L

R


T

L

X=R


 

X

Y

Z


 


+t=


 

X

Y

Z


 



事实上,向量 t t t与成像面的交点即为极点。


根据相似关系,物点在左、右成像面上几何坐标为

{ x L = f L X Z y L = f L Y Z z L = f L ⇒ L  ⁣ x = f L Z     L  ⁣ X    { x R = f R X ′ Z ′ y R = f R Y ′ Z ′ z R = f R ⇒ R  ⁣ x = f R Z ′     R  ⁣ X

⎧⎩⎨⎪⎪xL=fLXZyL=fLYZzL=fL

{xL=fLXZyL=fLYZzL=fL

\Rightarrow ^{\boldsymbol{L}}\!\boldsymbol{x}=\frac{f_L}{Z}\,\,^{\boldsymbol{L}}\!\boldsymbol{X}\,\,

⎧⎩⎨⎪⎪⎪⎪xR=fRX′Z′yR=fRY′Z′zR=fR

{xR=fRX′Z′yR=fRY′Z′zR=fR

\Rightarrow ^{\boldsymbol{R}}\!\boldsymbol{x}=\frac{f_R}{Z'}\,\,^{\boldsymbol{R}}\!\boldsymbol{X}


 

x

L


=f

L


 

Z

X


y

L


=f

L


 

Z

Y


z

L


=f

L



L

x=

Z

f

L



 

L

X


 

x

R


=f

R


 

Z

X


y

R


=f

R


 

Z

Y


z

R


=f

R



R

x=

Z

f

R



 

R

X


结合齐次变换关系,有


R  ⁣ x = f R Z ′ ( R L  ⁣ X + t ) = f R Z ′ ( R Z f L ⋅ L  ⁣ x + t ) = α R L  ⁣ x + β t    ^{\boldsymbol{R}}\!\boldsymbol{x}=\frac{f_R}{Z'}\left( \boldsymbol{R}^{\boldsymbol{L}}\!\boldsymbol{X}+\boldsymbol{t} \right) \\=\frac{f_R}{Z'}\left( \boldsymbol{R}\frac{Z}{f_L}\cdot ^{\boldsymbol{L}}\!\boldsymbol{x}+\boldsymbol{t} \right) \\=\alpha \boldsymbol{R}^{\boldsymbol{L}}\!\boldsymbol{x}+\beta \boldsymbol{t}\,\,

R

x=

Z

f

R



(R

L

X+t)

=

Z

f

R



(R

f

L


Z


L

x+t)

=αR

L

x+βt


其中 α \alpha α、 β \beta β为两个与尺度有关的常数。将等式两边同时与向量 t t t做外积,有


R  ⁣ x × t = ( α R L  ⁣ x + β t ) × t ^{\boldsymbol{R}}\!\boldsymbol{x}\times \boldsymbol{t}=\left( \alpha \boldsymbol{R}^{\boldsymbol{L}}\!\boldsymbol{x}+\beta \boldsymbol{t} \right) \times \boldsymbol{t}

R

x×t=(αR

L

x+βt)×t


线性化为


t ∧ R  ⁣ x = α t ∧ R L  ⁣ x {\boldsymbol{t}^{\land}}^{\boldsymbol{R}}\!\boldsymbol{x}=\alpha \boldsymbol{t}^{\land}\boldsymbol{R}^{\boldsymbol{L}}\!\boldsymbol{x}

t

 

R

x=αt

R

L

x


两边同乘 R  ⁣ x T ^{\boldsymbol{R}}\!\boldsymbol{x}^T

R

x

T

,考虑到 R  ⁣ x T ^{\boldsymbol{R}}\!\boldsymbol{x}^T

R

x

T

与向量 R  ⁣ x × t ^{\boldsymbol{R}}\!\boldsymbol{x}\times \boldsymbol{t}

R

x×t垂直,故


α R  ⁣ x T t ∧ R L  ⁣ x = 0 \alpha ^{\boldsymbol{R}}\!\boldsymbol{x}^T\boldsymbol{t}^{\land}\boldsymbol{R}^{\boldsymbol{L}}\!\boldsymbol{x}=0

α

R

x

T

t

R

L

x=0


消去常数 α \alpha α,即得


R  ⁣ x T E L  ⁣ x = 0 {^{\boldsymbol{R}}\!\boldsymbol{x}^T\boldsymbol{E}^{\boldsymbol{L}}\!\boldsymbol{x}=0}

R

x

T

E

L

x=0


其中 E = t ∧ R \boldsymbol{E}=\boldsymbol{t}^{\land}\boldsymbol{R} E=t

R称为本征矩阵(Essential Matrix),表征了同一物点在两个透视相机成像面上像点的几何约束关系。


下面引入相机内参矩阵,将像点映射到像素平面


{ L  ⁣ ⁣  u = K L L  ⁣ x R  ⁣ ⁣  u = K R R  ⁣ x

{Lu=KLLxRu=KRRx

{Lu=KLLxRu=KRRx

{

L

u=K

L


 

L

x

R

u=K

R


 

R

x



代入上式即得


R  ⁣ u T F L  ⁣ u = 0 { ^{\boldsymbol{R}}\!\boldsymbol{u}^T\boldsymbol{F}^{\boldsymbol{L}}\!\boldsymbol{u}=0}

R

u

T

F

L

u=0


其中 F = K R − T E K L − 1 \boldsymbol{F}=\boldsymbol{K}_{R}^{-T}\boldsymbol{EK}_{L}^{-1} F=K

R

−T


EK

L

−1


称为基本矩阵(Fundamental Matrix),表征了同一物点在两个透视相机像素面上像素点间的几何约束关系。


本征矩阵与基本矩阵表征了两个透视模型对极几何的代数特征,以上二式共同构成对极约束(Epipolar Constraint)。


🚀 计算机视觉基础教程说明


image.png

🔥 更多精彩专栏

目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
6月前
|
机器学习/深度学习 人工智能 监控
计算机视觉技术的基本原理与应用
计算机视觉技术的基本原理与应用
|
6月前
|
机器学习/深度学习 算法 计算机视觉
详细介绍CNN卷积层的原理、结构和应用,并探讨其在图像处理和计算机视觉任务中的重要性
详细介绍CNN卷积层的原理、结构和应用,并探讨其在图像处理和计算机视觉任务中的重要性
472 0
详细介绍CNN卷积层的原理、结构和应用,并探讨其在图像处理和计算机视觉任务中的重要性
|
机器学习/深度学习 存储 编解码
计算机视觉的基本原理
计算机视觉的基本原理
291 0
|
人工智能 并行计算 数据可视化
【计算机视觉】手把手教你配置stable-diffusion-webui进行AI绘图(保姆级教程)
如果说,会用各大在线的AI绘图平台来生成图像的话,算是AI绘画的小学生级别。那么,如果会使用本地化部署来运行AI绘画的话,那就已经算得上是高中毕业,进入成年啦。等你能够使用AI绘图指哪打哪,想怎么画怎么画,那就已经是大学毕业,学成归来的牛逼人物啦。
1043 1
|
传感器 Web App开发 机器学习/深度学习
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
690 0
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
|
机器学习/深度学习 自然语言处理 算法
一文了解:计算机视觉领域下自监督学习方法原理
一文了解:计算机视觉领域下自监督学习方法原理
910 0
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读
本教程依托于 Stanford 斯坦福大学的《CS231n:深度学习与计算机视觉》,对深度学习与计算机视觉方向的图像分类、CNN、RNN、目标检测、图像分割、生成模型等各个主题做了体系化的梳理。
1875 1
深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读
|
机器学习/深度学习 机器人 计算机视觉
计算机视觉教程2-8:你知道图像背景虚化效果的原理吗?(附代码)
计算机视觉教程2-8:你知道图像背景虚化效果的原理吗?(附代码)
411 0
计算机视觉教程2-8:你知道图像背景虚化效果的原理吗?(附代码)
|
存储 文件存储 计算机视觉
CV:计算机视觉基础之图像存储到计算机的原理daiding
CV:计算机视觉基础之图像存储到计算机的原理daiding

热门文章

最新文章