在计算机视觉和机器人领域,单目视觉传感器(即单个摄像头)因其成本低、结构简单、信息丰富而被广泛应用。摄像头作为一种光学仪器,其成像过程并非完美无缺,会引入各种畸变。为了从图像中获取准确、可靠的几何信息,我们必须对摄像头进行标定,即确定其内部参数和外部参数。这个过程,就是单目视觉传感器的标定。它不仅是三维重建、视觉SLAM、目标测距等高级应用的基础,也是确保视觉系统精度的第一步。
单目视觉标定的核心,在于建立三维世界坐标点与其在二维图像平面上投影点之间的精确数学关系。这个关系由摄像头的内参和外参共同描述。内参,也称为相机内部参数,反映了摄像头自身的物理特性。它主要包括焦距(fx, fy)、主点坐标(cx, cy)以及畸变系数。焦距决定了成像的尺度,主点是光轴与图像平面的交点。而畸变系数则用于校正由于镜头工艺导致的图像扭曲,常见的有径向畸变(图像边缘向内或向外弯曲)和切向畸变(由于镜头与传感器不平行导致)。外参,则描述了摄像头在世界坐标系中的位置和姿态,包括一个3x3的旋转矩阵R和一个3x1的平移向量t。通过外参,我们可以将世界坐标系下的点转换到相机坐标系下。
如何获取这些参数呢?经典的标定方法离不开高精度的标定板。张正友标定法是目前最流行、最实用的方法之一。该方法使用一个打印有已知尺寸棋盘格图案的平面标定板。使用者从不同角度、不同位置拍摄多张(通常建议10-20张)标定板图像。算法会首先检测每张图像中棋盘格的角点(黑白方格的交点),这些角点在图像坐标系中的像素位置是已知的。由于棋盘格方格的物理尺寸已知,我们可以为其建立一个世界坐标系(将标定板平面设为Z=0),从而知道每个角点在世界坐标系中的三维坐标。
利用这些二维-三维点对的对应关系,标定算法通过求解一个透视投影方程(即相机模型方程)的优化问题,来估计出摄像头的内参和外参(对于每张图像都有一组独立的外参)。这个过程通常分两步进行:首先是线性初始化,通过直接线性变换等方法得到一个粗略的参数估计;然后是非线性优化,主要使用如Levenberg-Marquardt等算法,同时考虑畸变系数,对所有参数进行联合优化,最小化投影点(即用估计的参数将世界点投影到图像上)与实际检测到的图像点之间的重投影误差。当这个误差被最小化时,我们就得到了一组最优的标定参数。
在实际操作中,有几个关键点直接影响标定精度。第一是标定板的质量,图案必须清晰,尺寸需精确。第二是图像采集,需要尽可能覆盖整个图像视野,标定板应呈现多种不同的倾斜和旋转姿态,以提供充分的约束条件。第三是角点检测的精度,现代算法(如OpenCV中的函数)已经非常鲁棒,但在光照不足或图像模糊的情况下仍需注意。完成标定后,一个重要的验证步骤是观察重投影误差的均值,这个值通常应小于0.5个像素,越小表明标定越精确。
标定完成后,这些参数有何用处?其应用贯穿整个视觉流水线。在图像预处理阶段,我们可以利用求得的畸变系数对原始图像进行校正,得到无畸变的图像,这是所有定量分析的前提。在三维视觉任务中,已知内参后,如果还能通过其他方式(如PnP算法)获得目标相对于相机的外参,就可以进行姿态估计或粗略测距。在双目视觉中,单目标定是进行立体校正和三维点云重建的先决条件。
随着技术的发展,除了传统的棋盘格,圆形网格、Charuco板(融合了棋盘格和ArUco码)等标定板也被使用,它们在某些场景下能提供更稳定或更丰富的特征点。自标定和无标定板标定方法也在研究中,它们更灵活但精度通常不如基于标定板的方法。对于绝大多数工业应用和学术研究,基于张正友法的棋盘格标定因其简单、可靠、开源工具完善(如OpenCV, MATLAB工具箱),依然是无可争议的首选。
单目视觉传感器标定是一项将物理摄像头转化为精确测量工具的关键技术。理解其原理,掌握其方法,并严谨地执行,