计算机视觉教程1-1:透视空间与透视变换

简介: 计算机视觉教程1-1:透视空间与透视变换

目录

0 写在前面


image.png

如图所示是生活中常见的透视现象,其物理本质是光的直线传播。透视也可描述为“近大远小”,如图(a)所示,其对应透视空间;若物体大小不随观察点的远近改变,如图(b)所示,则其对应欧式空间。由于人眼与相机在捕获图像时均存在透视现象,因此计算机几何基于透视空间进行研究。


image.png

1 透视空间

为直观起见,先描述二维透视空间,其原理可直接推广至三维空间。如下左图是一个二维欧式平面 R 2 \mathbb{R}^2 R

2

 ,现在引入二维透视坐标 P 2 \mathbb{P}^2 P

2

,透视坐标将欧式空间的维度扩展到三维,第三维度 w ~ \tilde{w}

w

~

表示物体与观察点的距离,约定以 w = 1 w=1 w=1为参考平面。


根据光沿直线传播的原理,从透视坐标系原点引出一条视线 l ~ \boldsymbol{\tilde{l}}

l

~

穿过欧式平面的点 A A A。不妨上下平移欧式平面,调整点 A A A与观察点的距离。欧式空间中的不同点 A A A、 A ′ A' A

在透视空间中是相同的,因为 l ~ \boldsymbol{\tilde{l}}

l

~

是同一个点在不同观察距离下的表现集合,透视空间中用直线(视线) l ~ \boldsymbol{\tilde{l}}

l

~

表示欧式空间的点。


image.png

现在保持欧式空间中的点相同,再次调整观察距离,如下图所示。观察距离越远视线越发散、信息越局部;观察距离越近视线越收敛,信息越全局——此现象可以用投影仪工作场景来说明。


image.png

定义透视空间的视线

l ~ = ( x , y , w ) \boldsymbol{\tilde{l}}=\left( x,y,w \right)

l

~

=(x,y,w)

当 w ≠ 0 w\ne 0 w


=0时, l ~ \boldsymbol{\tilde{l}}

l

~

对应欧式空间中的点 L ( x w , y w ) L\left( \frac{x}{w},\frac{y}{w} \right) L(

w

x


,

w

y


), l ~ \boldsymbol{\tilde{l}}

l

~

也称为点 L L L的齐次坐标(Homogeneous Coordinates),当 w = 0 w=0 w=0时, l ~ \boldsymbol{\tilde{l}}

l

~

对应欧式空间中的向量 L ⃗ = ( x , y ) \vec{L}=\left( x,y \right)

L

=(x,y), w = 0 w=0 w=0也体现了其在齐次变换中的平移不变性


透视空间中点与向量的运算

{ V ± V = V P ± V = P P − P = V P + P = M i d P ( P : P o i n t    V : V e c t o r    M i d : 中点 )

⎧⎩⎨⎪⎪⎪⎪V±V=VP±V=PP−P=VP+P=MidP

{V±V=VP±V=PP−P=VP+P=MidP

\left( P:Point\,\, V:Vector\,\, Mid:\text{中点} \right)


 

V±V=V

P±V=P

P−P=V

P+P=MidP


(P:PointV:VectorMid:中点)


齐次坐标具有如下性质:


同质性。齐次坐标的几何本质,透视空间中齐次坐标是同一点在不同观察距离下的表现形式

线性。齐次坐标下,可将对应维度欧式空间的变换线性化。例如二维欧式平面中点的平移属于非线性变换,但二维透视空间中可通过线性旋转完成欧式空间中非线性的平移,如下图。


image.png

与用透视空间的直线表示欧式空间的点类似,透视空间中用视平面表示欧式空间的直线——由于法向量唯一确定平面,因此也用该平面的法向量 l ~ \boldsymbol{\tilde{l}}

l

~

表示欧式空间的直线。


image.png

由解析几何易得,透视空间中的直线和点满足下面关系:

{ l ~ 1 × l ~ 2 = x ~ x ~ 1 × x ~ 2 = l ~

{l~1×l~2=x~x~1×x~2=l~

{l~1×l~2=x~x~1×x~2=l~

{

l

~

 

1


×

l

~

 

2


=

x

~

x

~

 

1


×

x

~

 

2


=

l

~



若透视空间中的视线在视平面上(对应欧式空间中点在直线上),则易知

l ~ T x ~ = x ~ T l ~ = 0 \boldsymbol{\tilde{l}}^T\boldsymbol{\tilde{x}}=\boldsymbol{\tilde{x}}^T\boldsymbol{\tilde{l}}=0

l

~

 

T

 

x

~

=

x

~

 

T

 

l

~

=0

2 透视变换

透视空间变换总体形式如图所示,具体而言列于表中。透视变换表征了平面间(平面上点)的映射关系


image.png


image.png

可见透视空间所有变换都是投影变换的特例,因此研究投影变换具有重要意义,其广泛用于图像校正、视角变换、图像拼接、增强现实等方面,如下图所示。


image.png

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


image.png

🔥 更多精彩专栏

目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
8月前
|
机器学习/深度学习 计算机视觉 Python
【Python计算机视觉】项目实战之图像增强imguag对关键点变换、标注框变化(附源码 超详细必看)
【Python计算机视觉】项目实战之图像增强imguag对关键点变换、标注框变化(附源码 超详细必看)
222 0
|
传感器 Web App开发 机器学习/深度学习
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
734 0
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
|
人工智能 并行计算 数据可视化
【计算机视觉】手把手教你配置stable-diffusion-webui进行AI绘图(保姆级教程)
如果说,会用各大在线的AI绘图平台来生成图像的话,算是AI绘画的小学生级别。那么,如果会使用本地化部署来运行AI绘画的话,那就已经算得上是高中毕业,进入成年啦。等你能够使用AI绘图指哪打哪,想怎么画怎么画,那就已经是大学毕业,学成归来的牛逼人物啦。
1066 1
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读
本教程依托于 Stanford 斯坦福大学的《CS231n:深度学习与计算机视觉》,对深度学习与计算机视觉方向的图像分类、CNN、RNN、目标检测、图像分割、生成模型等各个主题做了体系化的梳理。
1897 1
深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读
|
机器学习/深度学习 机器人 计算机视觉
计算机视觉教程2-8:你知道图像背景虚化效果的原理吗?(附代码)
计算机视觉教程2-8:你知道图像背景虚化效果的原理吗?(附代码)
445 0
计算机视觉教程2-8:你知道图像背景虚化效果的原理吗?(附代码)
|
传感器 机器学习/深度学习 编解码
计算机视觉教程0-2:你了解眼里所见的色彩吗?(详解RGB/HSV/Lab)
计算机视觉教程0-2:你了解眼里所见的色彩吗?(详解RGB/HSV/Lab)
280 0
计算机视觉教程0-2:你了解眼里所见的色彩吗?(详解RGB/HSV/Lab)
|
机器学习/深度学习 算法 机器人
计算机视觉教程2-7:天使与恶魔?图文详解图像形态学运算(附代码)
计算机视觉教程2-7:天使与恶魔?图文详解图像形态学运算(附代码)
170 0
计算机视觉教程2-7:天使与恶魔?图文详解图像形态学运算(附代码)
|
机器学习/深度学习 算法 机器人
计算机视觉教程2-6:八大图像特效算法制作你的专属滤镜(附Python代码)
计算机视觉教程2-6:八大图像特效算法制作你的专属滤镜(附Python代码)
384 0
计算机视觉教程2-6:八大图像特效算法制作你的专属滤镜(附Python代码)
|
机器学习/深度学习 存储 编解码
计算机视觉教程2-5:图像金字塔送她一朵玫瑰(附代码)
计算机视觉教程2-5:图像金字塔送她一朵玫瑰(附代码)
237 0
计算机视觉教程2-5:图像金字塔送她一朵玫瑰(附代码)

热门文章

最新文章