跳转至

有无检测:判断东西在不在

框住一块位置,回答"这里该有的东西在不在、对不对"。漏贴标签、贴错标签、漏装零件、装反方向、少一颗螺丝,都归它管。

它有两套判法,在参数窗口顶部用两个页签切换:

  • "OK/NG检测":注册若干张 OK 图和 NG 图,软件自己学会怎么分。新建时默认就是这一套,大多数场合用它。
  • "传统算法":靠亮度、对比度、斑点面积这类数字来判。适合"有东西就明显变亮 / 变暗"这种一眼能用数字说清的场合。

两套只生效一套 —— 当前停在哪个页签,跑的就是哪一套。

前置条件

  • 检测方案里已经建好标签外框,模板图已完成旋转拉伸。
  • 取像稳定:同一个位置,每件产品拍出来的亮度、放大倍率、角度基本一致。取像不稳,这个检测项一定会误报,换算法也没用。

它包含哪些检测框

只有一个:"有无检测参数"。双击它打开参数窗口,两套判法都在里面。

有无检测参数窗口

新建与画框

  1. 切到"编辑模式"。
  2. 点工具栏"新建检测项",类型选"有无检测",确定。
  3. 在模板图上框住要判断的位置。框要刚好包住物料、留一点边:判断有没有贴标签,就框标签所在的那一小块,不要把周围大片背景一起圈进去。 框的大小在注册第一张图之后就定下来了(见下面"框的大小:按类型锁定"),画框时就按最终大小画。
  4. 点"训练工程"。
  5. 双击"有无检测参数",开始注册样本或调传统参数。

参数说明

"OK/NG检测"页签

用之前先建一个类型。类型就是一个样本库,里面装这个位置的 OK 图和 NG 图。不同位置、不同产品各建各的类型,不要共用。

参数 含义 调参建议
"类型:" 当前用哪个样本库 必须选一个。空着跑会直接判 NG 并提示"未新建或选择检测类别"
"新建" 建一个新类型 名字取得能看懂,例如"A面-左侧标签"
"删除" 删掉当前类型 连同里面所有注册图一起删,且无法撤销
"导入" / "导出" 把类型打成压缩包带走 / 装回来 换机器、备份、把调好的样本库复制到另一台设备时用。导入后要重新打开这个参数窗口才能看到
"分数:" 本次的分数,形如 OK: 0.85, NG: 0.60 只读。OK 分数要比 NG 分数高出 0.10 以上才判 OK(见下方"怎么判")

怎么判(5.0 起): 软件把框里的图和这个类型的 OK 组、NG 组分别比像不像,得到"OK 分数"和"NG 分数";OK 要比 NG 像得够多(高出一个固定边距,出厂 0.10)才判 OK,否则判 NG。 不再有"分数阈值"可调:两个分数是相对比较,光照、产品整体偏亮偏暗不会一起把分数推过某条线。判不准时补注册图,而不是调数字。 边距写在模型配置里,调整它不需要重新注册。

框的大小:按类型锁定

同一个类型里的注册图必须是同样大小的框裁出来的——框拉大拉小,物料在图里的比例就变了,软件就会把好品看成"不像"。所以:

  • 一个类型一有注册图,这个类型下所有有无检测框的大小就锁定为"类型视野"(第一张注册图的大小),框只能移动、旋转,四角不再出现缩放手柄。
  • 第一张注册图定视野:新类型画好框再注册,之后同类型的框都一样大。状态行会显示"视野 W×H(已锁定,N 张)";还没注册时显示"视野未定(第一张注册图定)"。
  • 把框换到已经有注册图的类型:框自动按这个类型的视野改大小(中心和角度不变),提示框里会写明。
  • 要换视野:把这个类型的注册图全部删掉(锁自动解开)→ 改框 → 重新注册。
  • 老工程里同一类型的框大小可能不一致:状态行会提示"当前框 w×h 与类别视野 W×H 不符",旁边的"按类别视野重设框"一键把本框改对;"本类别所有框按视野重设"把当前检测方案里同类型的框全部改对(几百个框也是一下)。库里和视野差太多的注册图会提示"N 张尺寸与视野不符,建议删掉重注册",按提示删掉后用改好的框重新注册。
  • 这些都只是提示和按钮,不会在打开工程或运行时自动改框。

下面一半是样本库,分"OK组图片"和"NG组图片"两个页签:

按钮 作用 说明
"注册当前图片为OK" 把当前框里的图存进 OK 组 每组最多 100 张,超了会提示"注册图片数量限制100"
"注册当前图片为NG" 把当前框里的图存进 NG 组 同上
"删除当前注册图" 删掉当前选中的那张注册图 删完要重新跑一次才能看到新结果
"导入图片注册" 从磁盘选一张图,在弹出的窗口里拖框对准位置,再点"注册为OK"或"注册为NG",完事点"完成" 用来把历史存图变成样本。已有注册图的类型,导入窗口里的框大小固定为类型视野,只能移动 / 旋转

注册按钮下面有一行状态:注册已生效 已注册 OK n / NG m · 视野 W×H(已锁定,N 张) · CPU(两组都有图才会生效);有问题时中间会写"OK 只有 1 张""没有 NG 图""OK 中 2 张废图"之类,没生效时开头会写"注册未生效"和原因。注册、删图、导入后状态行先显示"注册待生效",右边有"立即生效"按钮。 生效后行尾的" · GPU"/" · CPU"表示这台电脑实际用显卡还是 CPU 在算。

两组都必须有图,否则跑不起来:OK 组空会提示"未注册OK图",NG 组空会提示"未注册NG图"。

什么样的图不能当注册图

注册图是这个检测项成败的关键。

  • 框没对准的不要。注册时框和实际检测时框必须落在同一个位置。偏个十几像素,分数就会明显掉下来。
  • 取像条件和产线不一致的不要。用别的机器、别的光源、别的曝光拍的图,不要混进来。
  • 模糊、过曝、欠曝的不要。
  • 不确定是 OK 还是 NG 的不要。拿不准就别注册,宁缺毋滥。
  • OK 组要覆盖良品的正常波动(位置略偏、色差、批次差异);NG 组要覆盖真实会发生的不良(漏贴、贴反、贴歪、错料),每类不良都给几张。
  • 两组的张数不必相等,但太少判定会很不稳。建议:OK 组至少 20 张,要覆盖不同班次的光照、工件摆放的正常偏差;NG 组每一种缺陷至少 5 张。每组上限 100 张,多了没有额外好处。

注册时软件会检查什么

每次点"注册当前图片为OK / NG"或在"导入图片注册"窗口里注册时,软件先把这张图和已注册的图比一遍,有问题会拒绝,或者先问一次"仍要注册吗?"(默认"否"):

提示 什么意思 怎么办
"这张图已经注册为 NG / OK,同一张图不能既是 OK 又是 NG"(拒绝) 同一张图已经在另一组里 想清楚它到底是好是坏,到另一组把它删掉再注册
"这张图已经注册过了(重复)"(问) 同一张图在本组已经有了 一般点"否",重复注册没有好处
"废图(…近全白 / 近全黑 / 无内容)"(本组已有 3 张正常图时拒绝,否则问一次) 画面几乎全白、全黑,或一片纯色没有内容,多半是没拍到、过曝或欠曝 检查取像和框的位置;只有本组本来就是靠"一片黑 / 一片白"判有无时才注册
"亮度 L=…,与已注册 OK 的中位 L=… 相差 …"(问) 这张 OK 图比已注册的 OK 图亮或暗了 40 以上,可能取像或光照变了 先查光源、曝光有没有被改过;确认是正常波动再注册
"框尺寸 …与已注册的 … 相差 … 倍,框可能没固定"(问) 框的大小和已注册的图差 1.5 倍以上 把框改回原来的大小,不要每次重画(锁框后新注册的图不会再出现这条,只有老工程会)
"N 张尺寸与视野 W×H 不符,建议删掉重注册"(状态行) 老库里有些图的大小和类型视野差 20% 以上 删掉这几张,用按视野改好的框重新注册
"当前框 w×h 与类别视野 W×H 不符"(状态行) 这个框和类型视野差 20% 以上 点"按类别视野重设框",或"本类别所有框按视野重设"
"和已注册的某张 OK 图几乎一样" / "更像已注册的 NG 图"(问) 疑似标错:要注册为 NG 的图和某张 OK 几乎一样,或者要注册为 OK 的图更像 NG 再看一眼这张图到底是好是坏

运行中注册也会查:同一张图两边都注册的拒绝,废图先问;待生效区里的图也算。其它项只在提示条里提醒一句,不做疑似标错。

运行中注册

正常情况下运行中不能改任何参数。唯一的例外是这里:运行界面正在跑的时候,在调试端树里双击"有无检测参数",打开的是"运行中注册 OK/NG(停止后生效)"窗口。

控件 说明
上方文字 显示当前类别、检测框名、已注册与待生效的张数、上一件的判定和 AI 分数
图像区 上一件产品的实际框内图,每 0.5 秒刷新一次
"暂停刷新(定住当前这张再注册)" 勾上后画面不再跳,方便把当前这张定住再决定
"记为 OK" / "记为 NG" 把画面上这张暂存起来
"关闭" 关窗

暂存的图不会立刻生效:它先存在待生效区,停止运行后才正式入库,下一次点"开始运行"之前软件自动生效一次。所以在产线上看到误判时,可以当场把那张图记下来,等停机换型时自然生效,不用停线。

"传统算法"页签

七组判据,每组的标题都是勾选框,勾上才参与判定;所有勾上的项必须全部通过,整项才 PASS。

判据 含义 调参建议
"灰度均值判断" 框内平均亮度落在"范围设定(0~255):"内才算过 有东西和没东西整体明暗差别明显时最好用。先跑几件看"当前值:",再把范围卡在实测值上下留一点余量
"对比度" 框内明暗反差,范围 0~127 有东西时画面有花纹、没东西时一片平,用它
"灰度最大值判断" 框内最亮的那个点 抓反光点、亮标记
"灰度最小值判断" 框内最暗的那个点 抓黑色印记、黑色零件
"斑点检测" 先按"灰度范围设定(0~255):"把目标像素挑出来,再看"斑点面积:"是否落在"面积范围(0~):"内 目标颜色和背景差得开时最准。灰度范围拖到结果图里目标被完整涂上颜色为止
"螺丝检测" 用内置模型找螺丝,分数高于"分数阈值:"算有 只认螺丝这一类目标。看"当前分数:"定阈值,默认 0.7
"边缘分析" 按"边缘对比度范围(0~255):"提边缘,边缘总面积落在"边缘面积范围(0~):"内才算过 有东西时轮廓多、没东西时光板一块,用它

每组里的"当前值:""当前分数:""当前边缘面积:"在没跑过时显示"请先运行检测项",跑一次就会填上实测值 —— 先跑,再照着实测值定范围,不要凭空填。

跑完后结果图下拉框里会多出"斑点图""边缘图""螺丝定位",可以直接看提取效果对不对。

注册与调试

用 OK/NG 检测时:

  1. 建类型 → 用模板图或调试图注册若干张 OK 和 NG。
  2. 注册、删图、导入后先标记"待生效",关闭窗口、切换类别或点"立即生效"时一次算完(注册图多、框大时要几秒到几十秒,期间窗口会卡住,不用重复点);算完状态行会显示"注册已生效";两组都要有图才能生效。
  3. 之后开始运行都是秒加载:生效的结果存在样本库里,只要注册图没变,以后开工程、开始运行都不用重算。
  4. 点"整体运行"或用"打开调试文件夹"过一批实拍图,看判定对不对;判错的图按"什么样的图不能当注册图"挑合格的补进对应组。
  5. 点"保存工程"。

用传统算法时:先跑一次拿到实测值,再逐项勾选、定范围,然后过一批图验证。

运行中注册的图什么时候生效?

停止运行后入库,下次开始运行前自动生效,这一步几秒到几十秒,信息区会打印"有无AI预置完成"。正常情况下第一件产品不会被拖慢。

常见误判与处理

先记住排查顺序:偏移 → 取像 → 框大小 → 注册图。模型几乎从来不是原因。

现象 原因 处理
良品被判 NG,分数忽高忽低 框实际落点和注册时不一致(标签外框定位没跟上,或产品来料位置变了) 先看结果图上框有没有对准。对不准就回标签外框调定位。框位置靠上游定位,有无框本身大小固定(要换视野见上文)
一整批突然全是 NG 取像变了:光源衰减 / 换了灯 / 改过曝光增益 / 镜头脏了 拿现在的图和注册图并排比亮度。取像恢复原样后再看
换批次后误报变多 新批次的正常外观注册图里没有 把新批次的良品补进 OK 组
坏品被判 OK NG 组里没有这种不良 把这种不良补进 NG 组
良品被判 NG,状态行提示"当前框与类别视野不符" 老工程里这个框的大小和类型视野不一样 点"按类别视野重设框"(或"本类别所有框按视野重设")后再跑
提示"未注册OK图"或"未注册NG图" 对应的组是空的 两组各注册至少一张
提示"未新建或选择检测类别" "类型:"下拉框是空的 新建或选一个类型
注册不了,提示"注册图片数量限制100" 该组已满 100 张 先删掉旧的、质量差的注册图再注册
传统算法里"当前值:"一直显示"请先运行检测项" 这个检测项还没跑过 点窗口左上角运行按钮跑一次
传统算法勾了好几项,总是 NG 勾上的项必须全过 逐项取消勾选,定位到是哪一项卡住,再单独调它的范围

显卡版与 CPU 版

同一份软件有两种安装包:CPU 版(版本号不带后缀)和 NVIDIA 显卡版(版本号带 _gpu)。判定结果一样,只是快慢不同:

  • 显卡版要求电脑装有 NVIDIA 显卡,显卡驱动版本 527.41 或更新(支持 CUDA 12)。没有显卡或驱动太旧时自动改用 CPU(慢,但能跑),日志里会记一条"有无 AI:CUDA 不可用,回落 CPU"。
  • CPU 版在任何电脑上都用 CPU 算;有无框很多(几百个)时每件要多花几秒。
  • 系统设置 → 通用设置 → "有无 AI 设备":"自动(有 NVIDIA 显卡就用)"或"仅 CPU",重启软件后生效。
  • 想确认这台电脑实际用的是哪个、有多快:在安装目录运行 LabelDetect.exe --okng-check(不开窗口、不需要工程),结果写在 log\okng_check.txt。
  • 运行时每个有无 AI 框的分数记在 log\okng_scores.csv(导出诊断包会带上当前文件和最近一份滚动备份),用于测试后复盘。软件运行时别用 Excel 直接打开这个文件,复制一份再打开,否则日志滚动会失败。

相关页面