在计算机视觉领域,理解3D世界如何投影到2D图像平面是基础中的基础。作为一名从事视觉算法开发多年的工程师,我经常需要向新人解释这个看似简单却蕴含丰富数学原理的过程。今天,我将从几何角度详细拆解图像形成的数学模型,让你不仅知道公式怎么写,更明白为什么这样建模。
想象你手持一台普通数码相机站在房间中央。当你按下快门时,房间内的三维物体如何变成照片上的二维像素?这个过程涉及三个关键坐标系转换:
这三个坐标系之间的转换关系,构成了计算机视觉中最重要的数学模型之一 - 相机投影模型。理解这个模型,是后续进行相机标定、三维重建等高级任务的前提。
提示:虽然涉及矩阵运算,但本文只需要基础的矩阵乘法知识。我会用大量图示和实际例子帮助理解抽象概念。
世界坐标系是我们定义的绝对参考系。在房间场景中,我们可以选择任意角落作为原点(0,0,0),通常的做法是:
这样,房间内任何物体点P的位置都可以用三维坐标(Xw, Yw, Zw)表示。例如,一个位于房间中央、离地1米高的物体,其坐标可能是(2.5, 3.0, 1.0)(假设房间尺寸为5m×6m)。
在实际应用中,世界坐标系的建立有几点经验:
相机坐标系是以相机光学中心为原点的三维坐标系,其定义通常为:
关键点在于:相机可以放在世界坐标系中的任意位置,指向任意方向。因此,我们需要找到世界坐标与相机坐标之间的转换关系。
这个转换包含两部分:
数学表达为:
P_camera = R·P_world + t
其中:
注意:旋转矩阵R虽然是一个3×3的矩阵,但实际上只有3个自由度(DoF),可以用欧拉角(yaw, pitch, roll)或旋转向量表示。
为了计算方便,我们通常将旋转和平移合并成一个3×4的外参矩阵(Extrinsic Matrix):
[ R | t ]
这样,坐标转换可以表示为:
P_camera = [R|t]·P_world_homogeneous
其中P_world_homogeneous是P_world的齐次坐标形式,即在原有三维坐标后加一个1:(Xw, Yw, Zw, 1)。
齐次坐标是计算机视觉中的重要概念,它允许我们用线性变换表示包括平移在内的所有刚体变换。此外,齐次坐标还能优雅地处理无穷远点等特殊情况。
得到相机坐标系下的3D点后,下一步是将其投影到2D图像平面。最常用的模型是针孔相机模型,其核心假设是:
为了数学上的便利,我们使用虚拟图像平面(位于光学中心前方),这样图像方向与世界方向一致,避免了倒像问题。
投影公式基于相似三角形原理:
u = f·Xc/Zc
v = f·Yc/Zc
其中:
将投影关系表示为矩阵形式:
[u] [f 0 0][Xc]
[v] = [0 f 0][Yc]
[1] [0 0 1][Zc]
这个3×3矩阵称为内参矩阵(Intrinsic Matrix),它包含了相机自身的几何特性。更完整的内参矩阵考虑以下因素:
因此,完整的内参矩阵K表示为:
K = [fx s cx]
[0 fy cy]
[0 0 1 ]
其中:
最后一步是将物理坐标(u,v)转换为像素坐标(u',v')。这需要考虑:
转换关系为:
u' = (u/sx) + u0
v' = (v/sy) + v0
其中:
将上述步骤整合,从世界坐标到像素坐标的完整流程为:
世界坐标→相机坐标:使用外参矩阵[R|t]
P_camera = [R|t]·P_world_homogeneous
相机坐标→图像物理坐标:投影
u = fx·Xc/Zc + cx
v = fy·Yc/Zc + cy
图像物理坐标→像素坐标:考虑像素尺寸和原点偏移
在实际编程实现时,OpenCV等库提供了现成的函数完成这些转换。但理解背后的数学原理对于调试和优化算法至关重要。
坐标系一致性:确保所有坐标系定义一致(如右手系还是左手系),否则会导致符号错误
单位统一:世界坐标单位(米/毫米)与焦距单位(像素)需要协调
矩阵乘法顺序:矩阵乘法不满足交换律,必须严格按照P'=K[R|t]P的顺序计算
畸变校正:真实镜头存在畸变,需先校正再应用上述线性模型
数值稳定性:当Zc接近0时(点在相机附近),计算结果会不稳定
问题1:投影后的点全在图像角落或外部
问题2:图像严重拉伸或压缩
问题3:投影点位置有系统性偏移
理解了投影几何后,相机标定就是求解内参和外参矩阵的过程。以下是几点实战建议:
标定板选择:使用高对比度、特征点清晰的棋盘格或圆点标定板
拍摄角度:从不同角度拍摄15-20张标定板图像,确保覆盖图像各个区域
环境光照:保持均匀光照,避免反光和阴影影响特征点检测
标定工具:推荐使用OpenCV的calibrateCamera函数,它实现了张正友标定法
结果验证:计算重投影误差,通常应小于0.5像素
动态标定:对于变焦镜头,需要在不同焦距下分别标定
在标定过程中,理解每个参数的实际物理意义非常重要。例如:
掌握这些几何原理后,你就能更自信地处理各种计算机视觉任务,从增强现实到三维重建,都建立在这个基础模型之上。