制造业视觉质检落地:先解决打光,再谈模型

一、质检落地,先看缺陷能不能拍清楚

很多项目一上来就说要上视觉检测,实际第一步该做的是:把缺陷拍出来。

划痕在反光面上拍不到,凹陷在正面光下拍不平,细小异物在低分辨率下只剩几个像素。拍不到就检不出,模型再好也没用。

视觉质检落地,第一步不是选模型,是判断缺陷能不能拍清楚。

我见过一个项目,缺陷是零点二毫米的划痕,用普通工业相机拍出来几乎没有对比度。模型再强也救不回来。

先做一件事:把所有缺陷类型列出来,逐个问「这个在图上是什么样子」。答不上来的,先补成像方案。

二、成像方案比模型重要

三件事决定成像质量:

一、光源角度。低角度侧光最能拉出划痕,同轴光适合平整表面。

二、分辨率与视野的换算。要看最小缺陷尺寸,算每毫米需要多少像素。

三、触发与定位。产线在动,取样时机错了,拍到的就是模糊图。

这三件定完,再谈算法。

成像方案比模型重要。光源角度差十五度,同一个缺陷可能从清晰变成看不见。

三种常用打光:明场看表面、暗场看划痕、同轴看平面反光件。

我的经验是先做打光实验,拍一批样本给质检员看,他们认可的图才值得训练。

三、样本的分布决定上限

正常品几百张、缺陷品十几张,这种数据训出来的模型只会说"全部合格"。

收集阶段就要按缺陷类型分层,每类至少几十张,且要覆盖不同光照、不同角度、不同批次。

成像方案比模型重要,这句话不是夸张。光源角度差十五度,同一个缺陷可能从清晰变成看不见。

常用的三种打光:明场看表面、暗场看划痕、同轴看平面反光件。三种各有各的适用面。

我的经验是先做打光实验,拍一批样本给质检员看,让他们挑「这张能判」。他们认可的图,才值得拿去训练。

四、模型在这类场景里的位置

分两段:检测和判定。

检测负责框出可疑区域,用轻量模型就够;判定负责分类和打分,可以复杂一些。

两段分开的好处是:误检多的时候只调第二段,不用整条重训。

样本分布决定上限。缺陷样本少,模型就只能学会「猜」。

补样本的办法有两种:真实采集和合成。前者贵但真,后者便宜但偏。

我的做法是先真实采集,再用合成补长尾,比例控制在三成以内。

五、上线后的三个指标

一、漏检率。这是底线,别用准确率糊弄。

二、误检率。直接决定产线愿不愿意用。

三、复核工作量。每班需要人工看多少张。

上线后看三个指标:漏检率、误检率、复判率。

漏检是致命的,一批货流出去就是事故;误检是成本,多了产线会抵触;复判率反映模型的不确定程度。

三个指标里,我优先压漏检。宁可多误检,不可漏一件。这个取舍要提前和产线谈清楚。

六、和产线系统怎么接

接口要简单:给一张图,返回是否合格、缺陷类型、置信度、位置。

判定为可疑的直接推给复核工位,不要自动放行。这条规矩能挡住大部分事故。

和产线系统对接,最容易被忽略的是「判完之后干什么」。

报警、剔除、标记待复判,三条路径要提前定。只报警不剔除,现场会当噪音忽略。

还有一个细节:模型输出的置信度要保留。产线可以根据置信度分级处理,高置信直接判,低置信送人工。这比一刀切好用得多。

上线后看三个指标:漏检率、误检率、复判率。

漏检是致命的,一批货流出去就是事故。误检是成本,多了产线会抵触。

三个里我优先压漏检。宁可多误检,不可漏一件,这个取舍要提前和产线谈清楚。

补一句现实:产线不会为算法停。所以质检系统的部署方式,必须是「旁路」。

旁路意味着它不影响生产,只做提示。这一条决定了项目能不能落地。

再补一句:样机阶段一定要让产线的人参与。他们知道哪里最容易出问题。

这个信息比数据珍贵,而且免费。

延伸参考

流程和接口的细节,BackendWiki 上有成体系的条目。

BackendWiki

留一句:视觉质检的胜负手在打光,不在模型大小。