【MV】Camera Calibration Fundamentals: Image Formation 文章目录相机标定——成像基本原理1、相机成像小孔成像透镜系统2、欧式空间与射影空间3、相机标定坐标系齐次坐标摄像机坐标与世界坐标之间的变换关系像平面坐标与摄像机坐标之间的变换关系图像坐标与像平面坐标之间的变换关系三维计算机视觉相机标定——成像基本原理1、相机成像成不了像都是白色的点如何成像在物体和胶片之间增加一块带有小孔的屏障小孔成像大光圈曝光时间短、模糊图像小光圈曝光时间增加、高亮度图像如何又快又清晰——透镜透镜系统凸透镜聚光的原理又快又清晰按下快门的时候蓝色的挡板复位光可以打到后面的 sensor 上eyepiece / viewfinder目镜 / 取景器中看到的是正立的像反射了好几次下面左图是按下快门拍照的场景下面右图是么有按下快门view finder 看到的是正立缩小的像2、欧式空间与射影空间同侧是虚像平面Virtual Image Plane物体 ↓ Virtual Image Plane ↓ Camera Center虚像平面就是为了简化针孔相机模型而人为假想放在针孔前方的一块成像平面它不真实存在但能让图像保持正立使投影公式更加简单直观因此成为计算机视觉和相机标定中的标准表示方式。成像过程就是三维空间坐标到二维图像坐标的变换这是一个投影过程降维、丢失深度信息相机矩阵camera projection matrix就是建立这种三维到二维的投影关系3、相机标定相机标定指建立相机图像像素位置与场景点位置之间的关系即求解相机模型的参数。坐标系相机模型——坐标系点 P在世界坐标系中的坐标( X , Y , Z ) (X,Y,Z)(X,Y,Z)在相机坐标系中的坐标( x , y , z ) (x, y, z)(x,y,z)在像平面坐标系中( x ′ , y ′ ) (x, y)(x′,y′)在图像坐标系中( u , v ) (u, v)(u,v)四个坐标系齐次坐标齐次坐标齐次坐标最大的意义是将旋转、平移、缩放和透视投影等几何变换统一表示为矩阵乘法从而极大地简化了计算机视觉和计算机图形学中的数学推导与计算。把原本需要矩阵 加法才能完成的几何变换统一变成一次矩阵乘法。“加一维统一变换一次矩阵解决所有几何变换。”为什么还要发明齐次坐标原因只有一个普通坐标没办法把平移写成矩阵乘法。例如点(2,3)向右移动5向上移动2结果(7,5)写成公式x ′ x 5 xx5x′x5y ′ y 2 yy2y′y2发现这里有加法不是矩阵乘法。例如向右 5向上 2以前做不到现在可以[ 1 0 5 0 1 2 0 0 1 ] \begin{bmatrix} 1 0 5 \\ 0 1 2 \\ 0 0 1 \end{bmatrix}​100​010​521​​乘[ 2 3 1 ] \begin{bmatrix} 2 \\ 3 \\ 1 \end{bmatrix}​231​​得到[ 7 5 1 ] \begin{bmatrix} 7 \\ 5 \\ 1 \end{bmatrix}​751​​成功平移也变成矩阵乘法。这就是齐次坐标最大的意义。摄像机坐标与世界坐标之间的变换关系旋转 Z 轴XY 轴不变旋转 X 轴YZ 轴不变旋转 Y 轴XZ 轴不变最终的旋转矩阵可以写成R R 1 R 2 R 3 R R_1R_2R_3RR1​R2​R3​还是 3x3 矩阵光转不行还要平移推导一下[ x y z 1 ] [ R ∣ t ] [ X Y Z 1 ] \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} [R | t] \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix}​xyz1​​[R∣t]​XYZ1​​[ R t 0 T 1 ] [ X Y Z 1 ] [ ( r 11 X r 12 Y r 13 Z ) t x ( r 21 X r 22 Y r 23 Z ) t y ( r 31 X r 32 Y r 33 Z ) t z ( 0 ⋅ X 0 ⋅ Y 0 ⋅ Z ) 1 ] \begin{bmatrix} R t \\ 0^T 1 \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} \begin{bmatrix} (r_{11}X r_{12}Y r_{13}Z) t_x \\ (r_{21}X r_{22}Y r_{23}Z) t_y \\ (r_{31}X r_{32}Y r_{33}Z) t_z \\ (0 \cdot X 0 \cdot Y 0 \cdot Z) 1 \end{bmatrix}[R0T​t1​]​XYZ1​​​(r11​Xr12​Yr13​Z)tx​(r21​Xr22​Yr23​Z)ty​(r31​Xr32​Yr33​Z)tz​(0⋅X0⋅Y0⋅Z)1​​简化得到[ x y z 1 ] [ R [ X Y Z ] t 1 ] \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} \begin{bmatrix} R \begin{bmatrix} X \\ Y \\ Z \end{bmatrix} t \\ 1 \end{bmatrix}​xyz1​​​R​XYZ​​t1​​这里平移就是齐次坐标的目的把平移可以转化为矩阵相乘像平面坐标与摄像机坐标之间的变换关系z zz越大离得远y ′ yy′越小也即成的像也越小根据相似三角形得到像平面y ′ yy′与相机坐标系 (x,y,z) 的关系同理也可以得到像平面x ′ xx′与摄像机坐标系 (x,y,z) 的关系OP 连线上所有点在像平面上都是p pp把z zz略去就是相似关系图像坐标与像平面坐标之间的变换关系u uu、v vv是图像坐标系x ′ xx′、y ′ yy′是像平面坐标系f x f_xfx​和f y f_yfy​的单位都是像素三维计算机视觉三角化解决点在哪儿姿态估计解决相机在哪儿相机标定解决相机长什么样稀疏重建解决很多点在哪儿而 SfMStructure from Motion则把这些步骤串联起来同时恢复相机轨迹和三维场景。相机标定 知道相机参数 │ ▼ 姿态估计Pose 知道相机在哪里 │ ▼ 三角化Triangulation 恢复一个点的3D坐标 │ ▼ 稀疏重建Sparse Reconstruction 恢复很多特征点形成稀疏点云 │ ▼ SfMStructure from Motion 把以上步骤串起来同时恢复相机轨迹和场景SfM 包含了姿态估计和三角化稀疏重建则是三角化不断重复后的结果。概念对应现实中的工作相机标定校准测量仪器确保尺子准确姿态估计记录每次站在什么位置、朝哪个方向测量三角化根据两个观测点计算一个建筑角点的位置稀疏重建把成千上万个角点都测出来形成建筑骨架SfM完整的测绘流程边移动边测量最终得到测绘轨迹和建筑三维骨架双目视觉 已知相机姿态 三角化SfM通常只有一台相机在移动相机姿态未知需要先估计每张图片的姿态再进行三角化和重建。SfM 未知相机姿态 姿态估计 三角化 重建。相机标定负责认识相机姿态估计负责定位相机三角化负责定位一个点稀疏重建负责定位很多点而 SfM 则负责把这些步骤组织起来仅凭多张图片恢复整个三维世界和相机运动轨迹。

相关新闻

最新新闻

C语言学习20260715-柔性数组及实例

C语言学习20260715-柔性数组及实例

C语言学习20260715-柔性数组及实例 学习目标 理解什么是柔性数组(Flexible Array Member, FAM)。掌握柔性数组的核心特性与使用规则。学会使用 malloc 和 realloc 对柔性数组进行内存分配与扩容。深入理解柔性数组相比“结构体指针”方案的优势。 什么是…

2026/7/15 21:35:01
图数据库选型:Neo4j vs NebulaGraph vs Dgraph的场景对比

图数据库选型:Neo4j vs NebulaGraph vs Dgraph的场景对比

图数据库选型:Neo4j vs NebulaGraph vs Dgraph的场景对比 一、图数据库的选型困境 图数据库市场在2025年达到38亿美元规模。选型却远比关系型数据库复杂。关系型数据库有SQL标准,迁移成本可控。图数据库各有独特的查询语言。Neo4j用Cypher,Ne…

2026/7/15 21:35:01
Python医学影像分析完整入门教程:DICOM读取、预处理、病灶分割实战

Python医学影像分析完整入门教程:DICOM读取、预处理、病灶分割实战

文章目录摘要一、前期准备:环境搭建与核心库说明1.1 依赖库安装1.2 公开测试数据集获取二、基础实操1:使用pydicom读取单张DICOM影像三、基础实操2:SimpleITK读取DICOM序列(整套CT扫描)四、医学影像核心预处理&#xf…

2026/7/15 21:35:01
2026年秋招必看!有见求职全套秋招辅导服务揭秘,收费贵不贵?

2026年秋招必看!有见求职全套秋招辅导服务揭秘,收费贵不贵?

行业背景与市场机遇每到毕业季,“最难就业季”都成为热点话题。2025年高校毕业生人数突破1200万,再创历史新高,但市场能提供的高质量岗位却未同步增长。同时,结构性失业加剧,文科、商科毕业生就业难,而新能…

2026/7/15 21:35:01
万字详解Java枚举:从基础语法到底层原理,吃透实战用法

万字详解Java枚举:从基础语法到底层原理,吃透实战用法

哈喽,各位Java开发者!在日常开发中,我们经常需要定义固定范围的常量,比如订单状态、性别、季节、操作类型等。早期我们习惯用 public static final 定义常量,但这种方式存在类型不安全、可读性差、无业务关联等诸多问题…

2026/7/15 21:35:01
基于Multisim与74系列芯片的自动售货机仿真系统设计

基于Multisim与74系列芯片的自动售货机仿真系统设计

1. 自动售货机仿真系统设计概述第一次用Multisim搭建自动售货机仿真系统时,我对着闪烁的数码管发呆了半小时——这玩意儿居然真的能靠几块74系列芯片实现完整交易流程!这个项目完美融合了数字电路基础知识和工程实践,特别适合电子爱好者入门。…

2026/7/15 21:30:00

月新闻