计算机视觉教程1-3:图解透视几何原理(灭点、灭线)

简介: 计算机视觉教程1-3:图解透视几何原理(灭点、灭线)

目录

1 灭点(Vanishing Point)

考虑三维空间中的一条直线


{ x ( t ) = x 0 + a t y ( t ) = y 0 + b t z ( t ) = z 0 + c t

⎧⎩⎨x(t)=x0+aty(t)=y0+btz(t)=z0+ct

{x(t)=x0+aty(t)=y0+btz(t)=z0+ct


 

x(t)=x

0


+at

y(t)=y

0


+bt

z(t)=z

0


+ct



其中 ( x 0 , y 0 , z 0 ) \left( x_0, y_0, z_0 \right) (x

0


,y

0


,z

0


)为直线上一点, t t t为参数。


根据相似三角形原理,有


{ z ( t ) f = x ( t ) u z ( t ) f = y ( t ) v ⇒ { u = f ( x 0 + a t ) z 0 + c t v = f ( y 0 + b t ) z 0 + c t

⎧⎩⎨z(t)f=x(t)uz(t)f=y(t)v

{z(t)f=x(t)uz(t)f=y(t)v

\Rightarrow

⎧⎩⎨u=f(x0+at)z0+ctv=f(y0+bt)z0+ct

{u=f(x0+at)z0+ctv=f(y0+bt)z0+ct

{

f

z(t)


=

u

x(t)


f

z(t)


=

v

y(t)



⇒{

u=

z

0


+ct

f(x

0


+at)


v=

z

0


+ct

f(y

0


+bt)




其中 f f f为相机焦距。令 t → ∞ t\rightarrow \infty t→∞,则


{ u = f a c v = f b c {

{u=facv=fbc

{u=facv=fbc

}

{

u=

c

fa


v=

c

fb




当 c ≠ 0 c\ne 0 c


=0时,即空间直线与成像平面不平行时,该直线在成像平面上的投影为收敛于灭点(Vanishing Point)的线段,如图所示;当 c = 0 c=0 c=0时,则为正交投影,直线与成像面不存在透视关系,亦不存在灭点。


image.png

从灭点方程可见,灭点只取决于直线的方向,而与直线上具体的点无关,因此空间中不平行于成像平面的平行线将相交于同一个灭点。此外,相机中心与灭点连成的直线平行于原直线。

2 灭线(Vanishing Line)

将空间直线推广到空间平面可得类似的结论:空间平面与成像平面不平行时,该平面在成像平面上的投影为收敛于灭线(Vanishing Line)的区域,相互平行的空间平面在成像空间收敛于同一条灭线。灭线是该空间平面上所有空间直线灭点的集合。


空间水平面上的垂直结构在成像面上的投影可以提供相机或场景的几何信息,例如相机的姿态模式、场景物体高度推测等,列如表所示。


7ae28698fba149cc8cc4a5f97be47b73.png

3 实例分析

下面给出几个实例。

如图所示,由于垂直结构在垂直方向上不存在灭点,且灭线穿过像素平面中心,因此根据表,此时相机成像平面不存在偏角(与水平面正交)。此外,图也说明了平行平面收敛于同一条灭线(海、天、木地板),平行直线相交于同一个灭点。


image.png

图2.4.3给出了基于透视几何高度估计的实例。


image.png

首先将图2.4.2(a)所示的源图片进行畸变修正,接着按图2.4.2(b)所示进行灭点、灭线估计。根据平行直线相交于同一灭点的几何关系,找出目标物对应的灭点,以及与该灭点对应的参考物,如图2.4.2中的目标物——人,以及参考物——柜子。通过参考物的几何信息,按比例映射到目标物,完成高度估计。此外,由于成像平面中垂直方向有灭点,亦能推测此时相机姿态模式——朝下。


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


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 · 全套笔记解读
|
存储 文件存储 计算机视觉
CV:计算机视觉基础之图像存储到计算机的原理daiding
CV:计算机视觉基础之图像存储到计算机的原理daiding
|
6月前
|
机器学习/深度学习 计算机视觉
AIGC核心技术——计算机视觉(CV)预训练大模型
【1月更文挑战第13天】AIGC核心技术——计算机视觉(CV)预训练大模型
606 3
AIGC核心技术——计算机视觉(CV)预训练大模型

热门文章

最新文章