R&D
CENTER

对位(Alignment):让零件以相同姿态摆正的技术

零件每次以不同角度摆放,模型就会先学到旋转而不是缺陷。本课梳理对位的原理与用途,包括圆形零件的 Ring 对位、任意形状的 PCA 对位,以及对位后再判定的 yolo_align。

入门3 分钟2 浏览
本课要点
  1. 对位消除“位置”和“旋转”,让模型只专注于缺陷。
  2. 圆形零件通过圆心和方向特征(凸片·耳部)确定方向,任意形状则通过图像矩(PCA)确定方向。
  3. 训练数据和现场检测必须使用相同的对位。对位设置由 Image Processing Tool 与 Multi-Inspector 共用。
  4. 对位失败时,用原始图像继续判定,避免对位错误导致产线停机。

异常检测模型学习的是“良品长这个样子”。但如果良品每次都以不同角度拍摄,模型要学的“正常”范围就会扩大到所有旋转后的样子。范围越宽,微小缺陷就越容易被淹没其中。对位会在拍摄后立即消除这个问题。

拍摄原图 · 旋转 −38° rotation-fix 对位后 · 凸片朝 12 点,中心位于画面中央 ① 找出圆心② 计算凸片角度③ 旋转·平移
圆形零件的 Ring 对位。将圆心移到画面中央,并旋转使方向特征(凸片)朝向 12 点钟方向。

圆形零件:Ring 对位

卡箍、圆环、轴承这类圆形零件按以下顺序对位。Multi-Inspector 的 rotation-fix 模式就是采用这种方式。

  1. 找出中心 — 通过圆检测(Hough Circle)或对轮廓进行圆拟合(circle fitting)求出零件中心。
  2. 找出方向 — 圆形旋转后看起来都一样,因此要找出凸片或耳部(ear)这类只在一处存在的特征的角度。
  3. 旋转·平移 — 将中心移到画面中央,将特征转到 12 点钟方向。

任意形状:Shape(PCA)对位

像安全带锁扣这种非圆形零件找不到圆。这时改用零件区域的图像矩求出姿态。

  • 一阶矩(重心) — 零件的位置。
  • 二阶矩(主轴) — 零件延伸最长的方向。与主成分分析(PCA)的计算相同。
  • 三阶矩(不对称度) — 仅靠主轴,零件前后翻转 180° 时无法区分。把质量更集中的一侧定为前方,即可消除这种歧义。

详细计算和设置请参阅技术笔记 如何对位非圆形零件。如果不需要方向、只需对齐位置,则使用 Center-Only 对位。

对位后判定:yolo_align

Multi-Inspector EB 产线版本从 v2.2 起支持 yolo_align 模式。先将零件对位并居中,再用 YOLO 找出缺陷。由于缺陷总是出现在相近的位置和方向,即使数据量相同,检测也更稳定。详细设置请参考 yolo_align 模式 笔记。

训练与检测必须使用相同的对位

对位在训练时执行一次,在现场检测时再执行一次。两者只要稍有不同,模型收到的图像就会和训练时不一样。因此 Multi-Inspector 会直接沿用 fineAi Image Processing Tool 中创建的对位设置。准备数据时的对位与产线上运行的对位,会得到相同的结果。

为失败做好准备

对位是在图像中寻找特征的过程,因此可能失败。例如零件只拍到一半,或光源瞬间闪烁。对位失败时,Multi-Inspector 会用原始图像继续判定并记录日志。产线不会因对位错误而停机,失败的图像也可以事后收集起来分析原因。

何时不使用对位

  • 零件固定在夹具上、每次都在相同位置拍摄时,不做对位也已足够。
  • 形状不固定的对象(食品、农产品等)难以确定对位基准。这时适合使用对位置变化不敏感的模型(如 AnomalyDINO),或不经对位的 YOLO。请参考 选择异常检测算法 课程。