1. 课程导论
大家好,欢迎来到《图像畸变校正与相机标定实战》的第一章。
我是这门课的主讲。在计算机视觉领域摸爬滚打了十几年,我踩过最多的坑,就是“相机没标好”。
你想想看,一个视觉项目,从算法设计到落地部署,花了好几个月。结果一上真实场景,检测框对不准、测量尺寸差几厘米、三维重建出来全是扭曲的……
嗯,十有八九,问题出在相机标定这一步。
所以,咱们这门课的第一章,先把基础打牢。什么是图像畸变?为什么要做相机标定?它在工程里到底值多少钱?
搞明白这些,后面的路才走得稳。
1.1 什么是图像畸变?
说白了,图像畸变就是相机拍出来的照片“变形”了。
理想情况下,我们希望相机像小孔成像一样,光线笔直穿过,投影到传感器上。但现实中的镜头是一堆透镜的组合。光线经过透镜时会发生折射,导致实际成像位置和理想位置产生偏移。
这种偏移,就是畸变。
核心结论:畸变是镜头的物理缺陷,不是算法能完全消除的,但我们可以通过标定来“补偿”它。
畸变主要分两类:径向畸变和切向畸变。
1.1.1 径向畸变
这是最常见的一种。光线在镜头边缘弯曲得比中心厉害。我习惯把它叫做“鱼眼效应”。
- 桶形畸变:图像向外膨胀,像木桶一样。常见于广角镜头。
- 枕形畸变:图像向内收缩,像枕头一样。常见于长焦镜头。
我在项目中遇到过最夸张的一次,是用一个廉价USB摄像头做车道线检测。图像边缘的车道线直接弯成了弧形。如果不做校正,算法根本没法用。
1.1.2 切向畸变
这个稍微绕一点。它是因为镜头和成像平面不平行造成的。说白了,就是镜头装歪了。
切向畸变会让图像中的直线变成斜线,或者产生梯形变形。在工业相机安装时,如果固定支架有公差,就容易出现这个问题。
| 畸变类型 | 产生原因 | 典型表现 | 常见场景 |
|---|---|---|---|
| 径向畸变(桶形) | 光线在透镜边缘弯曲更大 | 图像向外膨胀 | 广角镜头、手机前置摄像头 |
| 径向畸变(枕形) | 光线在透镜边缘弯曲更小 | 图像向内收缩 | 长焦镜头、望远镜 |
| 切向畸变 | 镜头与成像平面不平行 | 直线变斜线、梯形变形 | 工业相机安装偏差、手机镜头模组公差 |
1.2 相机标定的核心思想
相机标定,到底在干什么?
我个人理解,它就是在做一件事:建立从“三维世界”到“二维图像”的映射关系。
这个映射关系,由一组参数来描述。我们把这组参数叫做相机参数。
相机参数分两类:
- 内参:描述相机本身的特性。比如焦距、主点坐标、畸变系数。这些参数决定了光线如何在相机内部投影。
- 外参:描述相机在世界坐标系中的位置和朝向。也就是旋转矩阵和平移向量。
标定的过程,就是通过拍摄已知尺寸的标定板(比如棋盘格),然后解算出这组参数。
一个小技巧:我建议初学者先用棋盘格标定板。它的角点检测算法非常成熟,鲁棒性高。圆点标定板虽然精度更高,但对光照和遮挡更敏感。
标定的数学本质,其实是一个最优化问题。我们通过最小化重投影误差,来找到最优的相机参数。
重投影误差是什么?
简单说,就是:我们把三维空间中的点,通过当前估计的相机参数投影到图像上,得到一个预测位置。这个预测位置和实际检测到的位置之间的像素距离,就是重投影误差。
误差越小,说明参数越准。
注意:重投影误差不是越小越好。如果误差小到0.01像素以下,反而要警惕过拟合。我见过有人把误差压到0.001像素,结果换一个场景就崩了。标定追求的是泛化能力,不是训练集上的极致精度。
下面这张图,展示了相机标定的核心逻辑流程:
1.3 相机标定的工程价值
说了这么多理论,它到底能解决什么实际问题?
我随便举几个例子,你就明白了。
1.3.1 三维重建与测量
这是最直接的应用。没有标定,你从图像里算出来的三维坐标全是错的。
我记得有一次做工业零件尺寸检测。客户要求精度0.1mm。我们用了高分辨率工业相机,镜头也是进口的。结果测出来总是偏0.3mm左右。
查了两天,最后发现是相机标定文件里,主点坐标差了5个像素。重新标定后,精度直接达标。
你看,一个标定参数,决定了整个项目的成败。
1.3.2 视觉SLAM与自动驾驶
在自动驾驶里,相机标定是感知系统的基石。
多相机系统的外参标定,决定了不同相机之间的空间关系。如果外参标不准,融合出来的障碍物位置会前后矛盾。
我曾经参与过一个园区无人车的项目。前视相机和侧视相机的外参差了2度。结果车在转弯时,检测到的行人位置跳来跳去。最后重新做了联合标定,问题才解决。
1.3.3 增强现实(AR)
AR的核心,是把虚拟物体“锚定”在真实世界里。这需要精确的相机位姿估计。
而位姿估计的前提,就是相机内参已经标定好了。
你玩手机AR应用时,觉得虚拟物体“粘”在桌面上很稳。这背后,是相机标定在默默工作。
| 应用领域 | 标定的作用 | 不标定的后果 |
|---|---|---|
| 工业测量 | 提供精确的像素-物理尺寸映射 | 测量误差大,无法满足公差要求 |
| 自动驾驶 | 多传感器空间对齐,障碍物定位 | 感知结果不一致,决策错误 |
| AR/VR | 虚拟物体与真实场景精确融合 | 虚拟物体漂移,沉浸感差 |
| 视觉SLAM | 提供准确的相机运动估计 | 轨迹漂移严重,地图构建失败 |
| 安防监控 | 图像畸变校正,全景拼接 | 画面扭曲,目标跟踪丢失 |
1.4 本章小结
好,我们来快速回顾一下这一章的核心内容:
- 图像畸变是镜头物理缺陷导致的成像变形,主要分径向畸变和切向畸变。
- 相机标定的本质,是求解从三维世界到二维图像的映射参数(内参、外参、畸变系数)。
- 工程价值体现在测量、定位、融合、重建等几乎所有视觉任务中。标定不准,后续一切免谈。
一句话总结:相机标定是计算机视觉的“第一性原理”。你花在标定上的时间,会在项目后期十倍百倍地省回来。
下一章,我们会深入相机成像的数学模型。我会带你手推一遍投影公式,把内参矩阵、外参矩阵、畸变模型彻底讲透。
准备好了吗?我们继续。