有无检测:判断东西在不在¶
框住一块位置,回答"这里该有的东西在不在、对不对"。漏贴标签、贴错标签、漏装零件、装反方向、少一颗螺丝,都归它管。
它有两套判法,在参数窗口顶部用两个页签切换:
- "OK/NG检测":注册若干张 OK 图和 NG 图,软件自己学会怎么分。新建时默认就是这一套,大多数场合用它。
- "传统算法":靠亮度、对比度、斑点面积这类数字来判。适合"有东西就明显变亮 / 变暗"这种一眼能用数字说清的场合。
两套只生效一套 —— 当前停在哪个页签,跑的就是哪一套。
前置条件¶
- 检测方案里已经建好标签外框,模板图已完成旋转拉伸。
- 取像稳定:同一个位置,每件产品拍出来的亮度、放大倍率、角度基本一致。取像不稳,这个检测项一定会误报,换算法也没用。
它包含哪些检测框¶
只有一个:"有无检测参数"。双击它打开参数窗口,两套判法都在里面。

新建与画框¶
- 切到"编辑模式"。
- 点工具栏"新建检测项",类型选"有无检测",确定。
- 在模板图上框住要判断的位置。框要刚好包住物料、留一点边:判断有没有贴标签,就框标签所在的那一小块,不要把周围大片背景一起圈进去。 框的大小在注册第一张图之后就定下来了(见下面"框的大小:按类型锁定"),画框时就按最终大小画。
- 点"训练工程"。
- 双击"有无检测参数",开始注册样本或调传统参数。
参数说明¶
"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 检测时:
- 建类型 → 用模板图或调试图注册若干张 OK 和 NG。
- 注册、删图、导入后先标记"待生效",关闭窗口、切换类别或点"立即生效"时一次算完(注册图多、框大时要几秒到几十秒,期间窗口会卡住,不用重复点);算完状态行会显示"注册已生效";两组都要有图才能生效。
- 之后开始运行都是秒加载:生效的结果存在样本库里,只要注册图没变,以后开工程、开始运行都不用重算。
- 点"整体运行"或用"打开调试文件夹"过一批实拍图,看判定对不对;判错的图按"什么样的图不能当注册图"挑合格的补进对应组。
- 点"保存工程"。
用传统算法时:先跑一次拿到实测值,再逐项勾选、定范围,然后过一批图验证。
运行中注册的图什么时候生效?
停止运行后入库,下次开始运行前自动生效,这一步几秒到几十秒,信息区会打印"有无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 直接打开这个文件,复制一份再打开,否则日志滚动会失败。