跳转至

异常检测:只注册良品图找异常

前面那些检测项都要你先说清楚"什么算坏":字要和参考比对得上、亮度要落在某个范围、颜色占比要达标。有些地方说不清 —— 表面划伤、印刷糊版、涂层斑驳、异物,形态千奇百怪,列不完。

异常检测换了个思路:只喂良品图,让软件把"正常长什么样"学下来,凡是和正常对不上的地方就标出来。它输出一张热力图和一张缺陷图,并按缺陷面积判 PASS / NG。

这一项不是所有软件包都有

异常检测是可选模块。如果新建检测项时找不到"异常检测",或者提示"当前未开放异常检测功能",说明你这台设备的软件包没开这个模块,请联系供应商。 另外,训练要调用单独的训练程序,这个程序不随安装包发布。软件里点"训练"时提示"训练程序不存在,请联系技术人员",就是它没装,需要时联系我们单独提供。

前置条件

  • 检测方案里已经建好标签外框,模板图已完成旋转拉伸。
  • 至少能拿到 5 张以上这块位置的良品图。少于 5 张点"训练"会提示"注册OK图数量至少5张"。
  • 取像必须稳定。异常检测对取像变化比别的检测项更敏感 —— 光一变,整片都会被判成"不正常"。

它包含哪些检测框

只有一个:"异常检测参数"。双击它打开参数窗口。

异常检测"异常检测参数"窗口

新建与画框

  1. 切到"编辑模式"。
  2. 点工具栏"新建检测项",类型选"异常检测",确定。
  3. 在模板图上框住要检查的那块表面。框住的应该是同一种质地、同一种图案的一片,不要横跨好几种材质或把大片空白也圈进去。
  4. 点"训练工程"。
  5. 双击"异常检测参数",建类型 → 注册良品图 → 点"训练"。

参数说明

类型与训练

类型就是一个样本库,一个位置建一个,不要共用。

参数 含义 调参建议
"类型:" 当前用哪个样本库 必须选一个。没选就跑会提示"请先新建或选择类别"
"新建" / "删除" 建 / 删类型 删除会连同注册图和已训练的模型一起删掉
"导入" / "导出" 把类型打包带走 / 装回来 导入后要重新打开这个参数窗口才看得到
"训练图片大小:" 训练和推理时把图缩放到多大,可选 64 / 128 / 256 / 512 细小缺陷要选大的,速度会变慢;大面积缺陷选小的更快
"自动" 勾上后由软件按注册图的实际尺寸自动挑一个 默认勾上,一般不用管。手动改过这一项,训练状态会失效,要重新训练
"训练" 开始训练 注册图有任何增删之后都要重新点一次
"当前状态:" "已训练"或"未训练" 显示"未训练"时跑起来一律判 NG,结果里写"未训练"

改了注册图,旧模型就没了

注册、删除注册图,或改"训练图片大小:",都会把训练状态清掉并删除已经训好的模型。改完必须重新点"训练",否则这一项会一直判 NG。

判定参数

参数 含义 调参建议
"阈值:" 异常分数高过它的像素才算可疑 训练完软件会自动给一个初值("训练集阈值:"的两倍)。误报多就往上调,漏检多就往下调,小步调
"忽略缺陷面积:" 可疑区域小于这个面积就不算缺陷 用来滤掉零星噪点。从小往大调,调到正常品不再报点、真缺陷还能报出来为止
"当前图最小值:" / "当前图最大值:" 本次这张图的异常分数最低 / 最高值 只读。定"阈值:"时就看"当前图最大值:":良品的最大值和不良品的最大值之间就是阈值该待的地方
"当前缺陷面积:" 本次判出来的缺陷面积 只读。定"忽略缺陷面积:"时看它
"训练集阈值:" 训练时算出来的推荐阈值 只读,参考用
"训练集最小值:" / "训练集最大值:" 训练集上的分数范围 只读。良品的分数应该落在这个范围附近

注册图

按钮 作用 说明
"OK组图片" / "NG组图片" 两组注册图的页签 训练主要靠 OK 组。NG 组可以不放,放了有助于评估
"注册当前图片为OK" / "注册当前图片为NG" 把当前框里的图存进对应组 每组上限 100 张,超了提示"注册图片数量限制100"
"导入图片注册" 从磁盘选图,在弹出窗口里拖框对准,再点"注册为OK"或"注册为NG",完事点"完成" 用来把历史存图变成样本
"删除当前注册图" 删掉选中的那张 删完要重新训练

OK 组要覆盖良品的正常波动:不同批次、位置略偏、颜色深浅不同的良品都放几张。良品的正常差异没进样本库,上线后就会被当成异常报出来。

"自动注册图片为OK:"

勾上以后,运行过程中每来一件新产品,就把这块框里的图自动存进 OK 组。用来快速攒良品样本,省得一张张手工注册。

在树里右键这个检测项,菜单里的"设置自动注册为OK图"是同一个开关。

自动注册期间不要拿判定结果当真

每存进一张新图,已经训好的模型就会失效。所以开着自动注册跑的时候,这一项会一直判 NG。正确用法是:

  1. 确认这批产品都是良品。
  2. 打开自动注册,让产线跑上一段,攒够样本(上限 100 张)。
  3. 关掉自动注册,进参数窗口点"训练"。
  4. 训练完再定"阈值:"和"忽略缺陷面积:",然后正式生产。

这个开关不随工程保存,重开工程后会自动关闭。

训练与调试

  1. 建类型 → 注册至少 5 张良品图(手工注册或用自动注册攒)。
  2. 点"训练"。训练要跑一会儿,窗口会显示"训练中...",完成后弹"训练完成!","当前状态:"变成"已训练"。
  3. 点运行按钮跑一次,看结果图下拉框里的两张图:
    • "热力图":越红表示越不像正常。良品上应该基本没有明显的红块。
    • "缺陷图":超过阈值且面积够大的区域会被红框圈出来。
  4. 拿一批良品图过一遍,记下每张的"当前图最大值:";再拿不良品过一遍,同样记下来。阈值卡在两堆数中间。
  5. 良品上还有零星小红点,就把"忽略缺陷面积:"往上调一点。
  6. 点"保存工程"。

常见误判与处理

现象 原因 处理
一直 NG,结果里写"未训练" 还没训练,或注册图改过之后没重训 进参数窗口点"训练";确认"当前状态:"变成"已训练"
点"训练"提示"注册OK图数量至少5张" OK 组不够 5 张 补注册
点"训练"提示"训练程序不存在,请联系技术人员" 这台设备没装训练程序,它不随安装包发布 联系我们单独提供并安装
点"训练"提示"请先新建或选择类别" "类型:"是空的 新建或选一个类型
良品被大片判异常 OK 组里没有这种正常样式,或取像变了(换灯 / 灯衰减 / 改过曝光) 先比对现在的图和注册图的亮度;取像恢复后仍报,就把这种良品补进 OK 组再重训
到处都是零星小红点 "阈值:"偏低,或"忽略缺陷面积:"太小 先调"忽略缺陷面积:"滤掉噪点;仍然多再抬"阈值:"
真缺陷检不出来 "阈值:"太高,或"忽略缺陷面积:"太大,或"训练图片大小:"太小看不清细节 依次往回调;细小缺陷把"训练图片大小:"提到 256 或 512
换批次后误报变多 新批次的正常外观不在样本库里 把新批次良品补进 OK 组,重新训练
开着自动注册,一直 NG 每注册一张模型就失效 这是正常现象。攒够样本后关掉自动注册,重新训练
检测明显变慢 "训练图片大小:"选得大 在够用的前提下选小一档
换了一台电脑,这一项失效 训练好的模型跟着类型走,没带过去 用"导出"把类型打包,在新机器上"导入"

相关页面