3. 图像采集与相机标定

图像采集与相机标定 学习卡片

视觉对位贴合系统的精度上限,往往在图像采集与标定阶段就已经被决定。本章围绕“如何稳定获取高质量图像”和“如何建立像素坐标与世界坐标的精确映射”两条主线展开,覆盖相机、光源、镜头的选型逻辑,图像采集的标准流程,以及标定板与Halcon标定操作的核心原理。理解本章内容,是后续进行对位算法开发与贴合精度调试的前提。

3.1 相机选型:分辨率、帧率与接口的权衡

相机是视觉系统的“眼睛”,其选型直接决定系统能够分辨的最小物理尺寸和采集速度。在Halcon对位贴合项目中,我们通常关注以下四个核心参数:

  • 分辨率:根据视野(FOV)和所需检测精度计算。公式为:分辨率(像素)= 视野尺寸(mm) / 检测精度(mm/pixel)。例如,视野为50mm×40mm,要求精度为0.02mm/pixel,则横向至少需要2500像素,纵向至少2000像素,可选用500万像素相机。
  • 像素尺寸与靶面大小:像素尺寸决定感光灵敏度,靶面大小影响镜头适配。1/1.8英寸、2/3英寸是工业相机常见靶面,需与镜头像面尺寸匹配,避免边缘暗角。
  • 帧率(FPS):对于静态对位贴合,帧率要求不高(15-30fps足够);但对于流水线动态抓拍,需根据传送带速度计算:帧率 ≥ 运动速度 / 视野长度。
  • 接口类型:GigE Vision(千兆网)适合远距离传输,PoE供电方便;USB3.0接口带宽高、CPU占用低;Camera Link适合超高分辨率高速场景,但成本高。Halcon通过接口算子(如open_framegrabber)统一支持这些协议。
选型经验:在对位贴合场景中,不要盲目追求高分辨率。分辨率过高会导致数据量增大、处理时间变长,且对光源均匀性要求更苛刻。建议先确定精度余量(通常取理论值的1.5-2倍),再反推分辨率。

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

光源和镜头决定了图像的对比度、均匀性和畸变程度,是图像采集环节中最容易被忽视却影响最大的部分。

3.2.1 光源类型与打光方式

光源类型 适用场景 注意事项
环形光源(低角度/高角度) PCB板、金属表面字符、定位Mark点 高角度环形光适合平面反光物体,低角度适合突出表面划痕
条形光源 大尺寸平面、液晶屏边缘检测 需调整照射角度避免反光斑
同轴光源 高反光表面(晶圆、镜面、玻璃) 消除眩光,但亮度损失较大
背光源(面光源) 轮廓测量、透明物体定位 形成高对比度剪影,适合边缘提取

对于对位贴合系统,Mark点定位通常采用红色或蓝色同轴光或低角度环形光,以增强Mark点与背景的灰度差异。光源控制器需支持频闪模式,以配合相机触发采集,减少环境光干扰。

3.2.2 镜头选型与畸变控制

镜头选型主要考虑焦距、光圈、畸变率和工作距离。焦距计算公式为:焦距 f = 工作距离 WD × 靶面高度 / 视野高度。定焦镜头(如8mm、12mm、16mm、25mm)是工业对位的主流选择,变焦镜头因重复精度差,不建议用于精密对位。

畸变是镜头固有的光学缺陷,分为桶形畸变和枕形畸变。Halcon中通过calibrate_cameras算子可计算畸变系数,并在后续测量中通过change_radial_distortion_image进行校正。但需注意:标定只能校正镜头畸变,无法校正因安装倾斜引起的透视畸变,因此相机安装时需尽量保证光轴垂直于被测平面。

3.3 图像采集流程:从触发到内存的完整链路

一个稳定可靠的图像采集流程,远不止“拍照”那么简单。它涉及硬件触发、曝光控制、数据搬运和格式转换等多个环节。以下是对位贴合系统中标准的采集流程:

  1. 硬件触发:使用PLC或运动控制卡输出脉冲信号,接入相机Trigger接口,确保相机在工件到达指定位置时精确曝光。避免使用软件触发,以减少抖动和延迟。
  2. 曝光控制:根据光源亮度和运动速度设置曝光时间。若工件在运动中拍摄,需满足“运动模糊 ≤ 1/2 像素”的原则,即曝光时间 ≤ 精度 / 运动速度。
  3. 图像传输:相机通过GigE或USB3.0将图像数据传入PC内存。Halcon中通过grab_image_start异步开始采集,grab_image_async获取图像,实现“采集与处理并行”,提高节拍。
  4. 格式转换:工业相机通常输出Mono8、BayerRG8或YUV格式。Halcon中需使用image_to_world_plane或crop_domain等算子进行预处理,将原始数据转换为可用的灰度图或RGB图。
  5. 图像缓存与预处理:将采集到的图像存入环形缓冲区,避免因处理速度波动导致丢帧。预处理包括降噪(median_image)、增强对比度(scale_image)等,但需注意预处理不应改变图像几何特征。
Halcon采集代码示例(GigE相机):
open_framegrabber('GigEVision', 0, 0, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'Camera1', 'default', -1, -1, AcqHandle)
grab_image_start(AcqHandle, -1)
while (true)
    grab_image_async(Image, AcqHandle, -1)
    * 此处进行图像处理与对位计算
    * 处理完成后,等待下一次触发
endwhile
close_framegrabber(AcqHandle)

3.4 标定板与相机标定原理:从像素到物理坐标的桥梁

相机标定的核心目的是求解相机内参(焦距、主点、畸变系数)和外参(相机相对于世界坐标系的旋转和平移)。对于对位贴合系统,标定的最终目标是建立像素坐标 → 机器人/运动平台坐标的映射关系。

3.4.1 标定板的选择

Halcon支持多种标定板,最常用的是圆点阵列标定板(如Halcon自带的calplate.cpd描述文件)和棋盘格标定板。圆点标定板在Halcon中通过find_calib_object算子自动检测,鲁棒性高,且支持非对称排列以确定方向。标定板尺寸需根据视野大小选择:标定板在图像中应占据视野的1/3到2/3面积,且至少拍摄10-15张不同姿态的图像。

3.4.2 标定原理:针孔模型与畸变模型

Halcon采用针孔相机模型,将三维世界点投影到二维图像平面。其数学表达式为:

s * [u, v, 1]^T = K * [R | t] * [X, Y, Z, 1]^T

其中,K为内参矩阵(包含焦距f、主点cx, cy),[R | t]为外参矩阵(旋转和平移),s为尺度因子。畸变模型通常采用Brown模型,包含径向畸变(k1, k2, k3)和切向畸变(p1, p2)。标定过程即是通过多张不同角度的标定板图像,非线性优化求解这些参数。

3.4.3 Halcon标定操作流程

  1. 生成标定板描述文件:使用gen_caltab算子生成标定板并保存为.caltab文件,或直接使用Halcon安装目录下预置的caltab_30mm.descr等文件。
  2. 采集标定图像:将标定板放置于视野内不同位置、不同倾斜角度,拍摄10-15张图像。注意标定板不能超出视野,且每张图像中圆点应清晰可辨。
  3. 检测标定板:使用find_calib_object算子自动定位标定板中的圆点中心,并提取亚像素坐标。
  4. 执行标定:调用calibrate_cameras算子,输入所有图像的检测结果和标定板描述文件,输出相机内参和每张图像对应的外参。
  5. 验证标定精度:使用calibration_errors查看重投影误差,通常要求平均误差小于0.1像素。若误差过大,需剔除异常图像或重新采集。
常见误区:很多工程师只标定相机内参,却忽略了“手眼标定”(相机与运动平台之间的坐标变换)。对于对位贴合系统,必须将相机标定结果与机器人标定(如calibrate_hand_eye)结合,才能实现精准的引导对位。此外,标定板必须保持平整,任何弯曲或污渍都会导致标定精度下降。

3.5 案例复盘:一个典型的贴合对位项目标定流程

以某手机摄像头模组贴合项目为例,视野范围为30mm×20mm,要求贴合精度±0.01mm。我们选用500万像素黑白相机(2448×2048),配12mm定焦镜头,工作距离约100mm,采用红色同轴光源照明。

标定过程如下:

  • 使用Halcon标准标定板(30mm×30mm,圆点间距1.5mm),采集12张不同姿态的图像。
  • 通过find_calib_object提取所有圆点中心,调用calibrate_cameras得到内参:焦距约12.5mm,主点位于图像中心附近,径向畸变系数k1约为-0.15。
  • 重投影误差为0.08像素,满足要求。
  • 随后进行手眼标定(九点法),建立像素坐标到XY运动平台坐标的变换矩阵。
  • 最终验证:将标定板固定在平台上,移动平台至多个已知位置,通过视觉定位计算坐标,与平台实际坐标比对,最大偏差为0.008mm,满足±0.01mm的精度要求。

该案例表明,标定精度不仅取决于算法,更取决于图像采集质量。若光源不均匀导致圆点边缘模糊,或镜头畸变过大导致边缘圆点变形,即使标定算法再优化,也无法获得高精度结果。因此,在实际项目中,应优先保证图像质量,再进行标定操作。

本章内容为后续的Mark点识别、位置补偿和贴合控制奠定了坚实基础。掌握相机、光源、镜头的选型逻辑,理解图像采集的完整链路,并熟练运用Halcon的标定工具,是每一位视觉工程师必须具备的核心技能。