从3D世界到2D像素:揭秘计算机视觉的空间变换之旅
全局3D参考系
定义真实世界中物体的绝对位置
特点:
• 原点:场景中的固定点
• 单位:实际物理单位(米、毫米等)
• 坐标:(Xw, Yw, Zw)
• 用途:描述物体在真实世界中的绝对位置
以相机为中心的3D坐标系
光心为原点,光轴为Z轴
特点:
• 原点:相机光心(投影中心)
• Z轴:沿光轴方向(向前)
• 坐标:(Xc, Yc, Zc)
• 用途:简化透视投影计算
成像平面上的2D坐标系
物理单位的图像平面坐标
特点:
• 原点:主点(光轴与成像平面交点)
• 单位:物理单位(毫米)
• 坐标:(x, y)
• 用途:透视投影的中间结果
数字图像的离散坐标系
以像素为单位的图像坐标
特点:
• 原点:图像左上角像素(0,0)
• 单位:像素
• 坐标:(u, v),整数值
• 用途:数字图像处理和显示
(Xw, Yw, Zw)
真实3D位置
(Xc, Yc, Zc)
旋转+平移
(x, y)
透视投影
(u, v)
缩放+偏移
其中:
• R 是 3×3 旋转矩阵,描述相机相对于世界坐标系的姿态
• T = [tx, ty, tz]ᵀ 是平移向量,描述相机在世界坐标系中的位置
• 旋转矩阵 R 是正交矩阵,满足 R⁻¹ = Rᵀ
• 这个变换将世界坐标系中的点转换到相机坐标系
推导过程:
根据相似三角形原理:
• f 是相机的焦距(单位:mm)
• 注意:Z坐标必须为正值(物体在相机前方)
参数说明:
• dₓ, dᵧ:每个像素在 X, Y 方向上的物理尺寸(mm/pixel)
• (u₀, v₀):主点在像素坐标系中的位置(通常接近图像中心)
• 坐标原点从图像中心移动到左上角
• Y轴方向可能需要翻转(图像坐标系Y轴向下)
内参矩阵 K:
外参矩阵 [R | T]:
参数说明:
• fx = f/dₓ, fy = f/dᵧ:像素焦距
• (u₀, v₀):主点在像素坐标系中的坐标
• R:3×3 旋转矩阵,T:3×1 平移向量
• 完整的投影矩阵 P = K[R | T] 是 3×4 矩阵
关键问题:从单张图像无法直接获得深度信息Z
解决方案:
• 立体视觉:使用两个相机进行三角测量
• 深度传感器:结合RGB-D相机
• 先验知识:已知物体尺寸或场景约束
关键理解:
• 每个步骤都是可逆的(除了深度信息的丢失)
• 旋转和平移是刚体变换,保持形状和大小不变
• 透视投影是非线性变换,远处物体看起来更小
• 像素化是离散化过程,可能引入量化误差
| 变换类型 | 公式 | 用途 | 误差特性 |
|---|---|---|---|
| 世界→相机 | Pc = R·Pw + T | 坐标系转换 | 标定精度影响 |
| 相机→图像 | x = f·Xc/Zc y = f·Yc/Zc |
透视投影 | 深度敏感 |
| 图像→像素 | u = fx·Xc/Zc + u0 v = fy·Yc/Zc + v0 |
数字化 | 量化误差 |
| 深度估计 | Z = f·B/d | 双目测距 | 误差∝Z² |
| 深度精度 | σZ = Z²/(f·B)·σd | 误差分析 | 距离平方关系 |
| 视场角 | FOV = 2·arctan(w/2f) | 系统设计 | 线性关系 |