相机系列——透视投影:针孔相机模型

作者:木一

引言

上文我们提到,三维相机是对真实世界成像的模拟 ,为了让三维物体在计算机屏幕上呈现出来的图像符合人眼观察效果,通常采用透视投影 方式模拟相机成像,为了简化计算,可以用针孔相机模型 来描述透视投影成像过程。

针孔相机模型

针孔相机模型 是一种简化的光学成像模型,基本原理是中心透视投影,将三维空间中的物体通过针孔投影到二维成像平面上。这种模型忽略了镜头畸变、光线衍射等复杂因素,使得计算和分析变得相对简单,因此也广泛应用于计算机视觉和图形学领域。

针孔相机模型 图源@作者

为了能够用数学语言来描述针孔相机模型,需要建立四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系,三维物体在二维图像上的成像过程通过坐标系变换来表达。

四个坐标系 图源@作者

1、 世界坐标系

世界坐标系是描述客观世界的绝对坐标系,由于相机可以位于客观世界中的任意位置,需要建立一个基准坐标系来描述相机的位置,并且用它来描述环境中任意空间点的位置,用**(** Xw, Yw, Zw **)**表示世界坐标值。

2、 相机坐标系

相机坐标系是以相机光心为参考点建立起的三维坐标系,用于描述任意空间点在相机空间中的位置,建立方式为:以相机光心为坐标原点,相机主光轴为Z轴,平行于图像平面水平方向作为X轴,平行于图像平面垂直方向作为Y轴,用**(** Xc, Yc, Zc **)**表示相机坐标值。

3、 图像坐标系

图像坐标系是定义在成像平面上的二维平面坐标系,以实际物理单位(mm)表示,建立方式为:以相机主光轴与图像平面的交点为原点,交点称为像主点,X轴平行于图像水平方向向右,Y轴平行于图像垂直方向向下,用**(** x, y **)**表示图像坐标值。

4、 像素坐标系

在计算机中数字图像是经离散化处理后以像素矩阵方式进行存储的,因此建立像素坐标系以描述相机图像,像素坐标可以理解为像素在图像平面中的位置索引。建立方式为:以图像平面左上角为原点,u轴平行于图像坐标系的X轴,水平向右,v轴平行于图像坐标系的Y轴,垂直向下,用**(** u,v **)**表示像素坐标值。

坐标变换

相机成像可以理解为是将三维空间中的物体投影到二维图像平面上的过程,投影过程最终在三维空间点和图像平面点之间建立映射关系,因此可以通过三维空间点与二维图像平面点之间的坐标转换来表达投影过程。

坐标转换流程包括:

坐标变换 图源@作者

1、世界坐标系 => 相机坐标系

世界坐标系转换到相机坐标系的过程是刚体变换,通常采用平移矩阵R 和旋转矩阵T 来表示变换过程。齐次坐标以及矩阵变换可以参考博文:用矩阵表述变换与齐次坐标 - 简书

旋转平移变换 图源@作者

2、相机坐标系 => 图像坐标系

相机坐标系到图像坐标系是真正的投影过程,基本原理是中心透视投影,根据三角形相似原理,可推知空间点与它的像点关系如下:

投影变换 图源@作者

3、图像坐标系 => 像素坐标系

数字图像是经离散化处理后以像素矩阵方式进行存储的,图像坐标在图像平面以物理单位表示,像素坐标在图像平面以像素坐标表示,图像坐标与像素坐标的转换关系为:

像素离散化 图源@作者

其中dx、dy表示单个像素实际物理尺寸的宽和高。

图像坐标系到像素坐标系的转换用矩阵表示为:

综合以上变换,可以得到完整的坐标变换过程如下:

其中,透视投影过程和像素离散过程组合后的变换矩阵称为相机内参矩阵 ,平移、旋转过程的变换矩阵称为相机外参矩阵

相机畸变

实际的相机成像过程受镜头影响,往往无法遵循严格的线性变换,这会导致最终的图像产生畸变(失真),镜头引起的畸变主要分为径向畸变切向畸变

相机畸变 图源@作者

径向畸变: 越远离光轴的光线越向内弯曲,导致正方形成像后变成桶形,这也称桶形畸变 。反之如果越 离光轴的光线越向外弯曲则为枕形畸变

径向畸变 图源@作者

**切向畸变:**切向畸变是透镜与成像平面不完全平行的制造缺陷造成的。

在实际应用中,通常采用多项式拟合模型来表示相机畸变,通用公式表示为:

其中图像坐标通过归一化平面坐标 表示,(x,y)表示实际图像坐标,(Xdistorted, Ydistorted)表示畸变后的图像坐标。归一化平面坐标参考:https://blog.csdn.net/ouyangandy/article/details/96840781

常用的多项式拟合畸变模型为:

其中:

基于畸变模型,可以对图像进行畸变校正,即计算畸变图像点的正确位置,对图像进行像素重映射和插值处理,以纠正图像畸变导致的变形现象。

畸变纠正(左:畸变图像,右:畸变纠正图像) 图源@作者

文章参考:

什么是归一化的平面坐标_归一化平面-CSDN博客

相机径向和切向畸变及去畸变 - 知乎

用矩阵表述变换与齐次坐标 - 简书

https://www.cnblogs.com/weststar/p/11836266.html

OpenCV: Camera Calibration and 3D Reconstruction


关注Mapmost,持续更新GIS、三维美术、计算机技术干货

Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。

欢迎进入官网体验使用:Mapmost------让人与机器联合创作成为新常态

相关推荐
兔兔不爱吃萝卜5 天前
相机标定原理
计算机视觉·相机
图灵追慕者21 天前
机器视觉中光源镜头和相机的关系
数码相机·相机·机器视觉·光源·镜头
赤瞳&1 个月前
电脑连接海康相机并在PictureBox和HWindowControl中分别显示。
c#·相机
卧蚕土豆1 个月前
【有啥问啥】张正友标定法浅谈
计算机视觉·相机·1024程序员节
双子座断点1 个月前
QT 机器视觉 1.相机类型
qt·计算机视觉·相机
程序小旭1 个月前
机器视觉入门基础相关概念一 ——单目相机模型
机器视觉·相机模型
格瑞@_@1 个月前
8.three.js相机详解
相机·three.js相机·正投影相机·透视投影相机
xiangxiang-1 个月前
单目相机和双目相机定位
c++·算法·相机
꧁༺℘₨风、凌๓༻꧂1 个月前
相机光源选型速记
计算机视觉·相机
听雨云烟1 个月前
Qt+VS2019+大恒相机相机回调方式总结
c++·qt·视觉检测·相机