3. 3D视觉基础

在机器人手眼标定与3D视觉定位任务中,理解相机如何将三维世界映射到二维图像是第一步。本章将深入剖析相机成像的几何原理,重点讲解针孔相机模型、内参矩阵与外参矩阵的数学定义与物理意义,为后续的标定与位姿解算奠定理论基础。

3.1 相机成像模型概述

相机成像的本质是一个从3D世界坐标到2D像素坐标的映射过程。这个映射通常涉及四个坐标系的连续变换:世界坐标系 → 相机坐标系 → 图像物理坐标系 → 图像像素坐标系。

核心概念: 相机成像模型描述了光线从物体表面反射,经过相机镜头光心,最终投影在感光元件上的几何关系。针孔模型是最基础、最常用的理想化模型。

下表总结了四个坐标系及其在成像过程中的作用:

坐标系名称 符号 维度 描述
世界坐标系 Ow - XwYwZw 3D 用户定义的真实世界参考系,描述物体和相机的位置
相机坐标系 Oc - XcYcZc 3D 以相机光心为原点,Zc轴指向相机前方
图像物理坐标系 o - xy 2D 位于成像平面,以光轴与平面交点为原点,单位mm
图像像素坐标系 o0 - uv 2D 位于成像平面,以图像左上角为原点,单位pixel

3.2 针孔相机模型

针孔相机模型假设光线沿直线传播,穿过一个无限小的针孔(光心),在成像平面上形成倒立的实像。为简化数学表达,通常将成像平面对称地放置在光心前方(虚拟成像平面),从而得到正立的图像。

根据相似三角形原理,空间点 P(Xc, Yc, Zc) 在相机坐标系下的坐标与其在图像物理坐标系下的投影点 p(x, y) 满足:

x = f * (X<sub>c</sub> / Z<sub>c</sub>)
y = f * (Y<sub>c</sub> / Z<sub>c</sub>)

其中,f 为相机焦距(光心到成像平面的距离)。

关键洞察: 针孔模型是一个透视投影模型,其核心特征是“近大远小”。深度 Zc 出现在分母位置,导致物体距离相机越远,其在图像上的投影越小。这是单目相机无法直接获取深度信息的根本原因。

下面的SVG图展示了针孔相机模型的几何关系与坐标系变换流程:

针孔相机模型与坐标系变换 世界坐标系 Ow - XwYwZw (3D 坐标) 外参 相机坐标系 Oc - XcYcZc (3D 相机视角) 透视投影 图像物理坐标系 o - xy (2D 毫米坐标) 内参 像素坐标系 o0 - uv (2D 像素坐标) 针孔成像几何(俯视图) 物体 (Xc, Yc, Zc) 光心 成像平面 像点 (x, y) 焦距 f 深度 Zc

3.3 内参矩阵

内参矩阵描述了相机坐标系下的3D点投影到2D像素坐标系的内部几何与光学特性。它将图像物理坐标 (x, y) 转换为像素坐标 (u, v),并引入像素的尺度因子和主点偏移。

内参矩阵 K 的数学形式为:

K = [ f<sub>x</sub>   0    c<sub>x</sub> ]
    [ 0    f<sub>y</sub>   c<sub>y</sub> ]
    [ 0     0     1  ]

其中各参数的含义如下表所示:

参数 符号 单位 物理意义
焦距在x方向 fx = f / dx pixel 焦距在像素坐标系x轴上的尺度,dx为单个像素的物理宽度
焦距在y方向 fy = f / dy pixel 焦距在像素坐标系y轴上的尺度,dy为单个像素的物理高度
主点x坐标 cx pixel 光轴与成像平面交点在像素坐标系中的u坐标
主点y坐标 cy pixel 光轴与成像平面交点在像素坐标系中的v坐标
常见误区: 初学者常误以为 fx 和 fy 是物理焦距。实际上,它们是物理焦距与像素尺寸的比值,单位是像素。如果像素是正方形(dx = dy),则 fx = fy;否则两者不同,反映了像素的非正方形特性。

完整的投影方程(从相机坐标系到像素坐标系)为:

s * [u]   =   K * [X<sub>c</sub>]
    [v]           [Y<sub>c</sub>]
    [1]           [Z<sub>c</sub>]

其中 s 为尺度因子(通常等于 Zc),用于将齐次坐标归一化。

3.4 外参矩阵

外参矩阵描述了世界坐标系与相机坐标系之间的刚体变换关系,即旋转和平移。它将世界坐标系下的3D点 Pw 变换到相机坐标系下的 Pc。

外参矩阵由旋转矩阵 R 和平移向量 t 组成:

[X<sub>c</sub>]   =   [ R   t ] * [X<sub>w</sub>]
[Y<sub>c</sub>]       [ 0   1 ]   [Y<sub>w</sub>]
[Z<sub>c</sub>]                    [Z<sub>w</sub>]
[1 ]                      [1 ]

其中:

  • R:3×3 旋转矩阵,描述世界坐标系相对于相机坐标系的姿态(朝向)。
  • t:3×1 平移向量,描述世界坐标系原点在相机坐标系下的位置。
物理理解: 外参矩阵本质上回答了“相机在世界坐标系中的哪里?朝向何方?”这个问题。在机器人手眼标定中,外参矩阵正是我们最终需要求解的目标之一——它代表了相机相对于机器人基座或机械臂末端的位姿。

下面的SVG图展示了外参矩阵如何将世界坐标系中的点变换到相机坐标系:

外参矩阵:世界坐标系 → 相机坐标系 世界坐标系 Xw Yw Zw 原点 Ow Pw 外参 [R | t] 相机坐标系 Xc Yc Zc 光心 Oc Pc 变换公式 Pc = R · Pw + t R: 3×3 旋转矩阵 t: 3×1 平移向量

3.5 完整成像方程

将内参和外参结合起来,就得到了从世界坐标系到像素坐标系的完整映射方程:

s * [u]   =   K * [ R | t ] * [X<sub>w</sub>]
    [v]               [Y<sub>w</sub>]
    [1]               [Z<sub>w</sub>]
                      [1 ]

这个方程是3D视觉定位的基石。在机器人手眼标定中,我们通过已知的3D-2D对应点对,求解外参矩阵 [R | t](即相机位姿),或同时优化内参 K 和外参(即标定过程)。

实战要点:
  • 内参标定:通常使用棋盘格标定板,拍摄多张不同角度的图像,利用张正友标定法求解 K 和畸变系数。
  • 外参求解:在已知内参 K 的前提下,通过PnP(Perspective-n-Point)算法,利用至少3个(最好4个以上)非共线的3D-2D点对求解 [R | t]。
  • 畸变校正:实际镜头存在径向畸变和切向畸变,在标定和定位前必须进行校正,否则会引入系统性误差。

下表总结了内参与外参的核心区别:

对比维度 内参矩阵 K 外参矩阵 [R | t]
描述对象 相机自身的内部几何与光学特性 相机在世界坐标系中的位姿
是否随相机移动变化 固定不变(除非变焦或更换镜头) 随相机移动而改变
自由度 4个(fx, fy, cx, cy) 6个(3旋转 + 3平移)
标定时机 出厂标定或使用前一次性标定 每次相机安装或移动后重新标定
在机器人手眼标定中的作用 已知量,用于将像素坐标反投影到相机坐标系 待求解量,建立相机与机器人之间的坐标变换

理解并掌握内参矩阵与外参矩阵的物理意义和数学形式,是后续进行手眼标定、3D重建、视觉伺服等高级任务的前提。在下一阶段的实战中,我们将基于这些知识,使用真实相机数据完成标定与定位。