4. 相机标定(一)

在Halcon三维测量工具链中,相机标定是连接二维图像像素坐标与三维空间物理坐标的桥梁。无论是单目视觉引导、双目立体匹配,还是结构光三维重建,标定结果的精度直接决定了后续测量、定位、检测环节的可靠性。本章聚焦于Halcon环境下相机标定的完整链路:从标定板选型、图像采集规范,到内参外参求解原理,再到误差评估与重投影验证,帮助读者建立一套可量化、可复现的标定工作流。

Halcon相机标定链路图 标定板选择 类型:圆点/棋盘格 材质:陶瓷/玻璃/亚克力 尺寸:视场1/3~1/2 图像采集规范 15~20张不同位姿 覆盖视场各区域 避免反光/过曝 内参外参求解 内参:f, cx, cy, k1, k2 外参:R, T(每张图) Halcon算子:calibrate_cameras 误差评估 重投影误差 RMS < 0.3px 剔除异常图像 标定流程:创建标定板描述 → 采集图像 → 提取标定板角点/圆心 → 初始内参估计 → 非线性优化 → 误差评估 误差来源分析 • 标定板平面度误差(陶瓷优于亚克力) • 图像采集时标定板倾斜角度过大 • 光照不均导致圆心提取偏差 • 镜头畸变模型不匹配(广角/鱼眼) 优化策略 • 使用高精度陶瓷标定板(平面度<5μm) • 标定板倾斜角度控制在±30°以内 • 使用环形光源或漫射光源均匀照明 • 根据镜头类型选择畸变模型(division/poly) 标定质量关键指标 重投影误差 RMS:< 0.3 px(优秀) 主点偏差:< 10 px 焦距相对偏差:< 1% 畸变系数稳定性:多次标定标准差 < 5% 外参重投影一致性:< 0.5 mm @ 1m

4.1 标定板选择:精度与场景的权衡

标定板是相机标定的物理基准,其制造精度直接决定了标定结果的上限。Halcon支持多种标定板类型,包括经典的棋盘格(Checkerboard)、圆点阵列(Circle Grid)以及高精度陶瓷板。在实际工程中,选择标定板需要综合考虑测量精度要求、工作距离、镜头视场角以及现场环境光照条件。

圆点标定板在Halcon中通过gen_caltab算子生成描述文件,其优势在于圆心提取算法对透视变形和图像噪声具有较好的鲁棒性。Halcon的标定板描述文件(.descr)中记录了圆点间距、排列方式、标记点位置等先验信息,标定时通过find_caltab和find_marks_and_pose算子自动定位。棋盘格标定板则更适合于角点检测,但在图像模糊或大倾斜角度下,角点定位精度可能不如圆心的椭圆拟合精度。

标定板类型材质平面度适用场景Halcon支持
陶瓷圆点板陶瓷基板+铬层<5μm高精度三维测量、双目视觉完整支持
玻璃棋盘格钠钙玻璃<10μm透射光照明场景完整支持
亚克力圆点板PMMA+印刷<50μm低精度定位、快速验证完整支持
投影虚拟标定板无实体取决于投影仪大视场、柔性标定需额外开发

选择标定板尺寸时,应确保标定板在图像中占据视场面积的1/3至1/2。过小的标定板会导致外参求解不稳定,过大的标定板则可能超出景深范围或产生边缘畸变。对于远心镜头或大靶面相机,需要定制大尺寸高精度标定板。

4.2 标定流程:从图像采集到参数求解

Halcon相机标定的标准流程分为五个阶段:标定板描述生成、图像采集、标定板检测、初始参数估计、非线性优化。每个阶段都有对应的算子支持和参数控制要点。

  1. 生成标定板描述文件:使用gen_caltab生成标定板本身(可选)和描述文件。描述文件中包含圆点数量、间距、坐标系原点位置等关键信息。
  2. 图像采集规范:采集15~20张标定板图像,要求标定板在视场中呈现不同位置、不同倾斜角度(绕X/Y轴旋转±30°以内)、不同距离。避免标定板与相机光轴完全垂直,否则无法解算焦距和主点。
  3. 标定板检测:使用find_caltab定位标定板区域,再用find_marks_and_pose提取每个圆点的亚像素坐标,并初步估计每张图像的外参。
  4. 初始内参估计:通过camera_calibration算子的初始化模式,基于多张图像的同名点对应关系,线性求解内参初值(焦距、主点、畸变系数)。
  5. 全局非线性优化:以重投影误差最小化为目标,使用Levenberg-Marquardt算法对所有内参和每张图像的外参进行联合优化。Halcon中通过calibrate_cameras算子完成。

Halcon标定核心代码片段:

// 创建标定板描述文件
gen_caltab(7, 7, 0.0125, 0.5, 'caltab.descr', 'caltab.ps')
// 读取标定板图像
read_image (Image, 'calib_image_' + I)
// 查找标定板
find_caltab(Image, Caltab, 'caltab.descr', 3, 112, 5)
// 提取圆点中心及位姿
find_marks_and_pose(Image, Caltab, 'caltab.descr', 128, 10, 18, 0.9, RCoord, CCoord, StartPose)
// 收集所有图像数据后执行标定
calibrate_cameras(CalibData, 'all', 'false', Errors)

在实际操作中,find_marks_and_pose的阈值参数需要根据图像对比度调整。如果标定板图像存在反光或阴影,建议使用预处理算子emphasize或illuminate增强圆点与背景的对比度。

4.3 内参外参求解原理与Halcon实现

相机内参描述的是相机内部光学成像几何关系,包括焦距f(或fx、fy)、主点坐标(cx, cy)、径向畸变系数k1、k2以及切向畸变系数p1、p2。Halcon默认使用多项式畸变模型,也支持division模型用于广角镜头。外参则描述标定板坐标系相对于相机坐标系的旋转矩阵R和平移向量T,每张标定板图像对应一组独立的外参。

求解过程本质上是一个非线性最小二乘问题:给定N张图像、每张图像M个圆点,已知标定板上圆点的物理坐标(X, Y, Z=0),通过初始内参和外参将物理点投影到图像平面,计算投影点与检测到的像素坐标之间的残差,然后迭代优化所有参数使残差平方和最小。

Halcon的calibrate_cameras算子内部实现了完整的稀疏光束法平差(Sparse Bundle Adjustment),能够同时处理多相机标定(如双目系统)。对于单目系统,标定结果存储在CalibData句柄中,可通过get_calib_data提取内参矩阵和畸变系数。

经验提示:在Halcon中,标定板坐标系的原点通常定义在标定板左上角第一个圆点中心,X轴沿圆点排列方向,Z轴垂直于标定板平面向外。外参中的平移向量T表示标定板原点在相机坐标系下的三维坐标,旋转角度则通过欧拉角或旋转矩阵表示。在三维测量应用中,通常需要将外参转换为4×4齐次变换矩阵,便于后续点云拼接或机器人手眼标定。

4.4 标定误差评估:量化与诊断

标定完成后,必须对结果进行量化评估,而不是仅凭肉眼观察标定板检测是否成功。Halcon提供两类误差指标:单张图像的重投影误差和全局RMS误差。重投影误差是指将标定板物理点通过当前内外参投影到图像平面后,与检测到的像素坐标之间的欧氏距离,单位是像素(px)。

评估标准建议如下:RMS误差小于0.3px为优秀,0.3~0.5px为可接受,大于0.5px则需要检查标定流程。此外,还应检查每张图像的最大误差点,通常最大误差出现在图像边缘,这提示畸变模型可能不充分或标定板倾斜过大。

误差指标优秀合格不合格排查方向
全局RMS重投影误差<0.2 px0.2~0.4 px>0.5 px标定板平面度、图像质量
单张图像最大误差<0.5 px0.5~1.0 px>1.0 px该图像是否离焦、反光
焦距相对标准差<0.5%0.5%~1%>1%图像数量不足或位姿分布差
主点偏移量<5 px5~15 px>15 px镜头安装偏心或图像裁剪

在Halcon中,可以通过get_calib_data算子获取每张图像的误差分布,并绘制误差直方图。如果发现某张图像的误差显著大于其他图像,应剔除该图像并重新标定。此外,还可以通过交叉验证方法:将采集的图像分为两组,分别标定后比较内参一致性,若差异较大则说明标定过程不稳定。

4.5 案例拆解:高精度三维测量系统的标定优化

某精密电子元件生产线需要测量连接器引脚的三维共面度,测量精度要求±0.02mm,工作距离300mm,使用500万像素工业相机(2448×2048)搭配12mm定焦镜头。初始标定后RMS误差为0.45px,换算到三维空间约为0.035mm,无法满足精度要求。

问题诊断过程:首先检查标定板类型,原使用亚克力印刷圆点板,平面度约50μm,在300mm工作距离下引入的误差约为0.05mm,已超出预算。其次检查图像采集质量,发现部分图像存在环形光源反光,导致圆心提取偏差约0.3px。最后检查标定板位姿分布,发现倾斜角度均小于10°,导致Z方向约束不足。

优化措施:更换为陶瓷基板铬层圆点标定板(平面度3μm),调整光源角度并增加偏振片消除反光,重新采集20张图像,其中包含大倾斜角度(25°~30°)图像5张。标定后RMS误差降至0.18px,三维测量验证实验表明共面度测量重复性达到±0.012mm,满足产线要求。

复盘要点:标定板平面度误差会直接映射到三维测量结果中,在高精度场景下必须选用陶瓷板;光源均匀性对圆心提取精度影响显著,建议使用漫射光源或同轴光源;标定板位姿应包含足够的倾斜变化,否则Z方向标定精度不足。

常见误区提醒:不要使用打印在普通纸张上的标定板进行高精度标定,纸张的热胀冷缩和表面不平整会引入不可控误差。另外,标定完成后应固定镜头光圈和焦距,任何机械调整都需要重新标定。在Halcon中,如果更换了相机分辨率或裁剪了图像区域,也必须重新标定。

4.6 标定质量提升策略与总结

综合上述内容,相机标定的核心在于控制误差源。标定板精度、图像采集质量、算法参数设置三者缺一不可。在实际项目中,建议建立标准化的标定作业指导书,明确标定板型号、光源设置、图像数量、位姿要求以及验收指标。

对于Halcon用户,还可以利用calibrate_cameras的扩展功能进行多相机联合标定,例如双目系统中同时优化两个相机的内参以及它们之间的相对外参。此外,Halcon 20.11以上版本支持自标定技术,可在无标定板情况下利用场景特征进行在线标定,但精度低于离线标定,适用于动态调整场景。

最后,标定不是一次性工作。在设备运输、温度变化、镜头松动等情况下,内参可能发生漂移。建议在三维测量系统中定期执行标定验证,使用标准量块或高精度球体进行精度复核,确保系统长期稳定运行。