4. 图像采集与相机标定

视觉对位贴合系统的精度与稳定性,首先取决于图像采集链路的质量。本章围绕“硬件选型—接口连接—软件获取—图像预处理”四个环节展开,帮助学员建立从物理世界到数字图像的完整工程认知。在Halcon项目中,相机、光源、镜头与采集卡的匹配程度,往往比算法本身更决定项目成败。

图像采集与相机标定工程链路 硬件选型 相机:分辨率/帧率 镜头:焦距/畸变 光源:颜色/角度 接口:GigE/USB3.0 图像采集 Halcon grab_image 异步采集/触发模式 曝光/增益控制 图像尺寸/格式 图像预处理 灰度化/ROI提取 滤波/增强 畸变校正 标定板映射 标定输出 相机内参 畸变系数 像素当量 mm/px 手眼矩阵 关键决策点 精度要求 → 分辨率与镜头畸变控制 | 节拍要求 → 曝光时间与采集帧率 | 环境光 → 光源波长与偏振方案 常见风险点 · 镜头畸变未校正导致对位偏差 · 光源反光导致特征提取不稳定 工程建议 · 标定板至少采集15张不同位姿 · 使用Halcon校准助手自动评估重投影误差 Halcon核心算子 open_framegrabber / grab_image calibrate_cameras / change_domain

4.1 相机选型:从精度与速度出发

核心原理:相机选型的本质是匹配“视场、分辨率、帧率、接口”四个维度与项目需求。在视觉对位贴合中,通常需要亚像素级定位精度,因此分辨率必须留有裕量。例如,贴合精度要求±0.02mm时,像素当量应达到0.005mm/px以下,即视场为20mm×20mm时,至少需要4000×4000分辨率。

选型参数计算公式/依据对位贴合项目建议
分辨率视场(FOV) / 最小特征尺寸 × 5~10倍200万~1200万像素,视场大小决定
帧率节拍时间 / (采集+处理+运动时间)静态对位≥15fps,动态飞拍≥60fps
传感器类型CCD全局曝光 vs CMOS卷帘运动场景选全局曝光CCD或全局CMOS
像素位深8bit/10bit/12bit低对比度场景选10bit以上
接口GigE/USB3.0/CameraLinkGigE最通用,USB3.0性价比高

判断方法:先确定最小检测特征(如Mark点直径0.2mm),再计算所需像素当量。Halcon中可通过 image_points_to_world_plane 验证实际像素当量是否满足精度要求。若视场为30mm×30mm,精度要求±0.01mm,则像素当量需≤0.003mm/px,分辨率至少10000×10000,此时需考虑拼接或选用高分辨率面阵相机。

经验提醒:不要只看相机标称分辨率,要关注传感器靶面尺寸与镜头接口的匹配。1/1.8"传感器配500万像素镜头,与2/3"传感器配500万像素镜头,视场角完全不同。选型时务必使用镜头计算器(如Halcon的lens助手)验证。

4.2 光源与镜头:决定图像质量的物理基础

核心原理:光源的作用是增强目标特征与背景的对比度,减少环境光干扰。对位贴合中常用LED光源,颜色选择依据“互补色增强对比”原则:红色光源照射绿色PCB板,可提高Mark点对比度。镜头则决定成像的清晰度与畸变程度,定焦工业镜头(如FA镜头)配合接圈可微调工作距离。

光源类型选择:

  • 环形光源(Ring Light):适合Mark点、圆形特征的均匀照明,低角度环形光可突出边缘。
  • 条形光源(Bar Light):适合大视场均匀照明,可组合成多角度照射。
  • 同轴光源(Coaxial):适合高反光表面(如晶圆、镜面),消除眩光。
  • 背光源(Backlight):适合轮廓测量,形成高对比度剪影。

镜头选型要点:焦距决定视场角,工作距离固定时,焦距越长视场越小。畸变是对位系统的关键指标,普通FA镜头畸变约0.5%~1%,远心镜头可做到<0.1%。对于高精度对位,推荐使用双侧远心镜头,其平行光路可消除透视误差。

实战案例:某FPC柔性板对位项目,初始使用普通FA镜头+环形红光,图像中FPC边缘出现反光带,导致边缘提取抖动±0.03mm。改用同轴光源+偏振片后,反光消除,边缘稳定在±0.008mm。同时将镜头更换为0.5×远心镜头,畸变从0.8%降至0.05%,最终对位精度提升至±0.015mm。

4.3 图像采集接口与Halcon图像获取

核心原理:Halcon通过 open_framegrabber 算子建立与相机的连接,支持GigE Vision、USB3 Vision、GenICam等标准协议。采集方式分为同步采集(grab_image)和异步采集(grab_image_async),异步采集可让相机持续曝光,减少等待时间。

// GigE相机连接示例
open_framegrabber('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive',
                  -1, 'default', -1, 'false', 'default', 'Camera_1',
                  0, -1, AcqHandle)
grab_image_start(AcqHandle, -1)  // 启动异步采集
grab_image_async(Image, AcqHandle, -1)  // 获取最新帧
close_framegrabber(AcqHandle)

操作流程:

  1. 使用Halcon的 info_framegrabber 枚举可用相机,确认设备名称与接口类型。
  2. 设置曝光时间(set_framegrabber_param)、增益、触发模式(软触发/硬触发)。
  3. 对位贴合系统建议使用硬触发(外部IO触发),确保与运动控制卡同步。
  4. 采集后立即执行 rgb1_to_gray 转换灰度图,减少后续处理数据量。
风险提示:GigE相机使用网线传输,需关闭系统防火墙或设置静态IP,否则会出现丢帧。USB3.0相机需注意线缆长度不超过3米,且必须使用高质量屏蔽线。Halcon中可通过 get_framegrabber_param 查询实际帧率与丢帧计数。

4.4 图像预处理与相机标定

核心原理:预处理的目标是消除噪声、增强特征、校正畸变。Halcon提供完整的滤波算子族:median_image 去除椒盐噪声,gauss_filter 平滑图像,emphasize 增强边缘对比度。对于对位系统,最关键的是畸变校正与像素当量标定。

相机标定流程:

步骤操作Halcon算子关键参数
1. 采集标定板图像不同位姿采集15~20张grab_image标定板类型(圆点/棋盘格)
2. 提取标定板特征自动检测圆点中心find_calib_object标定板描述文件 .caltab
3. 相机内参标定计算焦距、主点、畸变calibrate_cameras初始焦距值、像元尺寸
4. 校正图像生成无畸变图像change_radial_distortion_image映射参数
5. 验证精度重投影误差评估get_calib_data误差<0.1像素

预处理实战:对位贴合中,Mark点提取前通常先做ROI裁剪(reduce_domain),再使用 threshold 或 edges_sub_pix 提取亚像素边缘。若图像存在亮度不均,可先做 illuminate 校正或 shock_filter 增强。

案例拆解:某OLED屏贴合项目,标定板为7×7圆点阵列,圆点间距1.25mm。采集20张图像后,calibrate_cameras 得到焦距 f=12.345mm,畸变系数 k1=-0.1234,k2=0.0567。重投影误差0.08像素。校正后,像素当量在视场中心为0.0125mm/px,边缘为0.0127mm/px,偏差0.0016%。使用 change_radial_distortion_image 校正后,全视场像素当量一致性提升至0.0003mm/px,对位精度从±0.05mm提升至±0.02mm。

4.5 常见误区与总结复盘

常见误区:

  • 误区一:认为分辨率越高越好。高分辨率导致数据量大、处理慢,且镜头分辨率可能成为瓶颈。
  • 误区二:忽略光源稳定性。LED光源老化后亮度衰减,需定期校准或使用恒流驱动。
  • 误区三:标定一次永久使用。温度变化、镜头松动、相机位移都会导致标定失效,建议每班次验证一次。
  • 误区四:直接使用Halcon默认参数采集。未设置曝光/增益,导致图像过曝或过暗,特征提取失败。

总结复盘:图像采集与标定是视觉对位系统的“地基”。硬件选型需从精度、节拍、环境三个维度综合评估;光源与镜头决定图像质量的上限;Halcon的采集接口提供灵活的控制方式;标定则是将像素坐标转换为物理坐标的唯一桥梁。建议学员在项目中建立“标定记录表”,记录每次标定的重投影误差、像素当量、环境温度,便于追溯异常。

工程建议:在Halcon中保存标定结果(相机内参、畸变系数)为 .dat 文件,每次启动时自动加载。同时使用 serialize_cam_par 和 deserialize_cam_par 实现快速部署。对于多相机系统,务必分别标定并记录各相机与机械手的坐标变换关系。