适用软件:FIX 检测软件
文档版本:2026-04-20
实际检测过程中,由于以下原因,同一批次产品每次成像的位置并不完全一致:
教学时绘制的检测 ROI、检测规则、参考模板都是基于教学那一张图的坐标。如果不先把当前图像"搬"回教学姿态,所有下游检测模块的 ROI 都会落在错误位置,检测结果必然偏差。
一句话定义:图像对齐 = 把当前产品图像按平移、旋转、(必要时)缩放变换到与教学模板一致的坐标系,然后把模板中的检测 ROI 复制到图像中,进行检测。
FIX 的处理链由若干模块按顺序串联。对于空洞检测的典型配置:
┌────────────────┐
│ 原始图像 │ ← 来料 X 射线图
└───────┬────────┘
│
▼
┌────────────────┐
│ 图像对齐 │ ← 本模块(必须在检测之前)
└───────┬────────┘
│ 输出:对齐后的图 + 变换矩阵
▼
┌────────────────┐
│ 空洞检测 │ ← 检测模块使用教学 ROI
└────────────────┘
关键规则:
📌 教学图像很关键:参考图应清晰、无缺陷、姿态为标准基准姿态。一旦教学文件发布,这张参考图就固化在教学文件里,后续所有产品都以它为"对齐目标"。
FIX 提供 4 种对齐策略,按推荐优先级从高到低列出:
| 推荐顺序 | 方式 | 适用情况 | 速度 |
|---|---|---|---|
| ① 首选 | 默认整图对齐(模板匹配 + 自动旋转识别) | 绝大多数标准场景:产品姿态基本一致,画面整体较为干净。开机即用,无需任何额外配置。 | ★★★★ |
| ② 次选 | ROI 图像对齐:画一个矩形 ROI 并勾选"设为图像对齐 ROI" | 当画面边缘或部分区域存在强干扰(丝印、定位孔、托盘、其他器件),想让算法聚焦在产品主体 / 中心区域时使用。 | ★★★★ |
| ③ 特殊情况 | 阈值对齐 | 仅在特殊来料下使用:没有治具 / 模具、背景特别干净(如纯白托盘)、只有随机手放的小件在上面,产品与背景灰度差异极大。一般不建议使用,具体项目是否启用请参照 FIX 团队出具的项目说明。 | ★★★★★ |
| ④ 兜底 | 高级模型对齐 | 当以上三种方案均无法得到稳定结果时,联系 FIX 团队为产品训练专用对齐模型。例如软性材料、柔性薄膜、难以完全铺平的产品,通用方式对齐效果通常都不会好,需要模型对齐兜底。 | ★★ |
📌 请按 ① → ② → ③ / ④ 的顺序尝试。如果 ① 和 ② 都不稳定,先根据 FIX 团队的项目说明判断是否应使用 ③,再不行就联系 FIX 团队评估 ④。
图像对齐面板从上至下分为四个分组:选中的 ROI、图像对齐设置、对齐模型、阈值对齐。
当你在画布上选中一个 ROI 框时,下列开关会作用到该 ROI。
| 控件 | 作用 |
|---|---|
| 设为图像对齐 ROI | 把当前 ROI 标记为"对齐参考区域",算法只在此范围内做模板匹配,而不是整张图。适合 产品内部存在显著特征(如定位孔、字符、焊盘阵列)、但画面边缘嘈杂或背景干扰大的场景。选中后 ROI 会以黄色边框显示。 |
| 设为动态 ROI | 为该 ROI 打开"运行时自适应跟踪"。即使全局对齐不够精确,该 ROI 仍会在对齐图上用模板匹配自行微调到目标上。适合单颗小器件(如 QFN、小芯片、定位柱)位置有独立偏差的场景。 |
| 控件 | 默认 | 取值 | 说明 |
|---|---|---|---|
| 对齐得分 > | 90 | 0–100 | 动态跟踪的最低置信度(%)。低于此值认为"没找到",不移动 ROI。数值越高越严格,越低越宽松。 |
| 当前得分 | — | 只读 | 上一次运行的实际匹配得分,方便调试阈值。 |
| 搜索区扩展(px) | 100 | 0–9999 | 在 ROI 外围扩展多少像素作为搜索窗口。偏移越大需要越大;但过大会显著降低速度。经验值:预计最大偏移量 + 30% 余量。 |
| 子 ROI 跟随移动 | 勾选 | — | 勾选后,该 ROI 下所有子 ROI 会整体跟随父 ROI 移动,保持相对位置不变。 |
| 参考 | 外接框 (BBOX) | 外接框 / 中心点 | 子 ROI 跟随时以父 ROI 的外接框角点还是中心点为基准。一般保持默认。 |
控制整图对齐(默认的模板匹配模式)。
| 控件 | 默认 | 说明 |
|---|---|---|
| 对齐得分 < | 1500 | 整图对齐的失败阈值(模板匹配得分)。得分小于该值则认为对齐失败。数字越大要求越高。来料稳定时可以设大;姿态差异大时适当调小。 |
| 当前得分 | — | 只读,显示本次运行实际得分。 |
| SSIM 得分 | — | 只读,0–1 之间。1 表示对齐后图像与参考图结构完全一致。可直观评估对齐质量。 |
| 禁用图像对齐 | 未勾选 | 总开关。勾选后本模块直接透传,不做任何变换。一般只在调试或产品已完全固定、无偏差时使用。 |
| 禁用自动旋转 | 未勾选 | 禁用 90°/180°/270° 自动旋转识别。已知来料姿态固定时勾选可加速并避免误判。 |
| 禁用目标物体搜索 | 未勾选 | 跳过"先找到产品整体轮廓再对齐"这一步,直接在全图做模板匹配。产品在图中位置固定、背景干净时勾选可加速;若背景复杂务必保持未勾选。 |
| 显示对齐得分 | 未勾选 | 把对齐得分 / SSIM 叠加绘制到输出图上,方便调试。量产时建议关闭。 |
| 使用结构对齐 | 未勾选 | 实验性。使用基于结构(边缘 / 梯度)的对齐,对低对比度场景有时更稳定。仅在默认方式效果不佳时启用。 |
| 使用仿射变换 | 未勾选 | 默认为刚体变换(平移 + 旋转 + 均匀缩放);勾选后允许六自由度仿射变换(加入剪切与非均匀缩放)。适合产品存在轻微形变(柔性板、热胀冷缩)的场景,但对噪声更敏感,没必要不要开。 |
| 使用增强的旋转检测 | 未勾选 | 把旋转识别从"纯模板匹配"升级为关键点匹配。对有明显特征的产品(字符、引脚、焊盘阵列)识别更稳。特征少的平整表面反而不如默认方式。 |
| 参考图像路径 | — | 参考图(模板)的磁盘完整路径。通常通过右侧 … 按钮浏览选择。该路径会保存在教学文件中,部署到其他机台时需要保证路径有效。建议使用教学文件相对路径或固定共享路径。 |
当产品特性特殊、通用图像对齐功能(模板匹配 / 阈值对齐)效果不佳时,可以改用"高级模型对齐"——由 FIX 团队针对具体产品训练并提供的专用对齐模型。
典型需要使用模型对齐的场景:
| 控件 | 说明 |
|---|---|
| 模型下拉框 | 选择 FIX 团队提供的对齐模型。选择 "None" 表示不使用模型对齐,继续使用默认模板匹配。 |
| 测试 | 在当前图像上试运行一次所选模型,将模型识别出的目标以青色矩形叠加显示,用来确认模型是否找到了正确的目标。 |
📌 如现场产品需要模型对齐,请联系 FIX 团队:提供若干张代表性来料图像与一张教学模板图,我们将训练专用模型并交付模型文件,放入软件指定目录后即可在下拉框中出现。
这是一个可勾选的分组——勾选分组标题即启用阈值对齐模式,启用后会覆盖默认的模板匹配。
| 控件 | 默认 | 取值 | 说明 |
|---|---|---|---|
| 阈值(滑块) | 128 | 0–255 | 二值化阈值。滑动即可看到右侧数值。X 射线灰度图中通常产品比背景暗 / 亮,阈值定在二者之间。 |
| 反转 | 未勾选 | — | 取反二值化方向。默认"低于阈值 = 前景";勾选后"高于阈值 = 前景"。根据产品在图中是比背景暗还是亮来选择。 |
| 最小面积 | 200 | 0–999999 | 小于该像素数的轮廓会被过滤掉,避免边缘噪点影响质心计算。小产品需调小,大产品可增大以滤除脏污。 |
| 旋转检测 (180°) | 未勾选 | — | 在阈值对齐基础上再做一次 180° 姿态判断。适合产品可能倒置放置的场景。 |
原理:对参考图与当前图做相同阈值化 → 筛选轮廓 → 计算前景质心 → 把当前图平移到参考质心位置。只处理平移(+ 可选 180° 翻转),不处理旋转 / 缩放。
何时使用:
本节解释默认模式(模板匹配)的完整计算步骤。理解这一过程有助于合理设置"对齐得分 <"阈值。
┌─────────────────────┐ ┌─────────────────────┐
│ 参考图 Reference │ │ 当前图 Current │
│ (教学时保存) │ │ (来料) │
└──────────┬──────────┘ └──────────┬──────────┘
│ │
└───────────┬─────────────┘
▼
┌──────────────────┐
│ 步骤 ① 尺寸对齐 │
│ 二者尺寸不一致? │
│ 则对当前图补边 / │
│ 裁切到参考图尺寸 │
└─────────┬────────┘
▼
┌─────────────────────┐
│ 步骤 ② 目标定位 │ ← 可"禁用目标物体搜索"跳过
│ 用轮廓 / 阈值找到 │
│ 产品主体包围框 │
└─────────┬───────────┘
▼
┌─────────────────────┐
│ 步骤 ③ 旋转识别 │ ← 可"禁用自动旋转"跳过
│ 判断是否 90° / │
│ 180° / 270° 摆放 │
│ 有则先反向旋转 │
└─────────┬───────────┘
▼
┌──────────────────┐
│ 步骤 ④ 模板匹配 │ ★ 得分在此产生
│ 在当前图上滑动 │
│ 参考模板,逐像素 │
│ 计算相似度 │
└─────────┬────────┘
▼
┌──────────────────┐
│ 步骤 ⑤ 变换矩阵 │
│ 由最佳匹配位置 │
│ 反算平移 / 缩放 │
│ 旋转的 2×3 矩阵 │
└─────────┬────────┘
▼
┌──────────────────┐
│ 步骤 ⑥ 图像重采样│
│ 把当前图按矩阵 │
│ 变换 → 对齐后图 │
└─────────┬────────┘
▼
┌──────────────────┐
│ 步骤 ⑦ 评估得分 │
│ • 对齐得分 │
│ • SSIM 得分 │
│ 低于阈值 → 失败 │
└──────────────────┘
模板匹配采用 归一化互相关。把参考图当作"模板",在当前图上一格一格地滑动比较:
当前图(搜索区域)
┌──────────────────────────────┐
│ │
│ ┌──────┐ │
│ │模板 │←── 在此位置比较 │
│ │ │ 像素相似度 │
│ └──────┘ │
│ ┌──────┐ │
│ │模板 │←── 下一位置 │
│ └──────┘ │
│ ... │
└──────────────────────────────┘
↓
每个位置得一个得分
↓
取最高得分的位置 = 最佳匹配
每个位置的得分 = 该位置下模板像素与搜索图像素的归一化相关系数,范围 −1 ~ +1(在软件中会按实现方式映射为 0–99999 的整数得分):
| 相关系数 | 含义 |
|---|---|
| 接近 +1 | 像素分布高度一致,完美匹配 |
| 接近 0 | 无相关性,基本没匹配上 |
| 接近 −1 | 反相关(一般不会出现) |
对齐得分 = 整张图上找到的最高那个得分。
SSIM 得分 是对齐完成之后再算一次"对齐后图 vs 参考图"的结构相似性指数(0 ~ 1):
参考图 + 当前图
│
▼
┌───────────────────────┐
│ 勾选了"使用增强的 │
│ 旋转检测"? │
└────┬──────────┬───────┘
│ 是 │ 否
▼ ▼
┌────────┐ ┌──────────────┐
│关键点 │ │ 分别把当前图 │
│提取并 │ │ 旋转 0°/90°/ │
│匹配 │ │ 180°/270° │
│→ 角度 │ │ 四次模板匹配 │
└───┬────┘ │ 比较得分 │
│ └──────┬───────┘
└────────┬──────┘
▼
确定产品旋转角度
▼
把当前图反向旋转回正
▼
进入步骤 ④ 模板匹配
全局对齐保证整块产品落位后,某些独立偏移的小器件(如 QFN、单颗电容、定位柱)仍可能有残余偏差。对这些 ROI 勾选"设为动态 ROI"后,算法会在全局对齐之上再做一次局部跟踪:
全局对齐完成(整体落位)
│
▼
┌──────────────────────────────┐
│ 对每个动态 ROI: │
│ │
│ ① 以教学 ROI 位置为中心 │
│ ② 向外扩展"搜索区扩展"像素 │
│ ③ 在扩展区域内再做一次 │
│ 模板匹配 │
│ ④ 最高得分 ≥ 阈值? │
│ 是 → 移动 ROI 到最佳位置 │
│ 否 → 保持原位,当前得分 │
│ 写入显示 │
│ ⑤ 若"子 ROI 跟随移动"勾选, │
│ 子 ROI 整体跟随父 ROI │
└──────────────────────────────┘
| 场景 | 推荐方式 | 关键参数 |
|---|---|---|
| 标准 PCB / 一般来料,姿态基本一致 | ① 默认整图对齐 | "对齐得分 < 1500" 可保持默认 |
| 画面边缘嘈杂,希望聚焦产品中心 | ② ROI 图像对齐 — 画矩形 ROI + 勾选"设为图像对齐 ROI" | ROI 应略大于核心特征,但不要覆盖整张图 |
| 产品可能旋转摆放(0°/90°/180°/270°) | 保持"禁用自动旋转"未勾选;特征明显时开启"使用增强的旋转检测" | — |
| 柔性板、热变形、轻微几何畸变 | 开启"使用仿射变换" | 对齐得分阈值可适当调低 |
| 无治具 / 纯白背景 / 手放随机小件 | ③ 阈值对齐(特殊情况,须按项目说明启用) | 调好"阈值"与"最小面积" |
| 所有通用方式都无法稳定(软性材料、不能铺平等) | ④ 联系 FIX 团队训练专用模型对齐 | 交付后先用"测试"按钮验证 |
| 单板上某些小器件存在独立偏移 | 对这些 ROI 启用"设为动态 ROI" | "对齐得分 > 90","搜索区扩展" = 最大偏移 + 余量 |
| 错误信息 | 含义 | 建议 |
|---|---|---|
| 图像对齐失败:输入为空 | 输入图未加载 | 检查上游模块、图像来源 |
| 图像对齐失败:模板图像为空 / 无效 | 参考图路径无效 | 重新指定参考图像路径 |
| 图像对齐失败:未找到类似物体 | 匹配得分低于阈值 | 降低"对齐得分 <";或尝试 ROI 对齐;或联系 FIX 团队启用模型对齐 |
| 图像对齐失败:模板矩形无效 | 对齐 ROI 超出图像范围 | 检查 ROI 位置;检查参考图与当前图尺寸是否一致 |
| 阈值对齐:参考图像中未找到目标 | 阈值太高 / 太低,或最小面积过大 | 调整阈值滑块、尝试"反转"、减小"最小面积" |
| 阈值对齐:当前图像中未找到目标 | 当前图亮度 / 对比度与教学时差异大 | 检查 X 射线曝光参数是否一致,或改用其他对齐模式 |