摘要:复判不是重复检测,它是一整套融合时域特征、动态阈值和工程细节的系统。本文结合几个现场案例,拆解复判的硬件选型、算法陷阱与落地坑。
先讲个真事。
有阵子,我们线上一个连接器外观检测项目,初判的过杀率飙到15%。复判工位堆满了料,三个质检员连轴转了两周,最后还是放跑了几个不合格品。你说气不气?算法不是都调好了吗?怎么一到现场就崩?后来排查才发现,复判逻辑只做了“二次扫描”——把原图再跑一遍同一套模型,完全没考虑前后工位的特征一致性。
那次之后我总算明白,复判不是“再看一眼”,而是另一套系统工程。
一、复判不是“再看一眼”那么简单

初判负责“快”,复判负责“准”。可很多产线直接把复判当成重复检测,用相同的模型、相同的光源、相同的参数,那结果自然一样,误杀的一个都跑不掉。
真正的复判,要引入时域信息。比如产品序列号、当前工位的图像缓存、前几个工位已经提取的特征。拿划痕来说,初判判定为NG,复判要回答三个问题:位置发生在功能面还是非功能面?深度有没有超过客户图纸的允许值?是不是和上一工位看到的特征属于同一个缺陷?
说白了,复判就是贝叶斯更新。把初判的结果当作先验,再用新证据修正后验。这个“证据”包括但不限于:多角度图像、不同光源组合、甚至产品在轨道上的振动波形。这些信息,你单靠一个深度学习模型池,是喂不出来的。
二、硬件选型:光源和相机才是复判的底牌
一个很反直觉的事实:复判的准确性,往往在打光阶段就决定了,而不是在算法阶段。
我们之前做过一个金属表面刻字OCR复判项目。字符背景是细砂面,对比度一般。初判用环形低角度光,效果还行,但一到复判,因为产品略有翘曲,环形光在边缘产生了严重反光,导致字符断裂。后来换成同轴光+偏振片,才稳定住。
所以复判工位的光源,不能和初判完全一样,要针对初判的“模糊地带”做优化。比如初判用的是漫射光,复判可以用暗场或明场切换。

相机的分辨率也有讲究。假设你要分辨的最小缺陷尺寸是0.02mm,视野是10mm×8mm。那相机至少需要(10/0.02)=500像素的横向分辨率,但工程上你得乘个2到3倍的余量,也就是1500像素左右,对应200万像素相机。至于帧率,复判工位一般不是节拍瓶颈,但别忘了曝光时间不能超过运动和振动的容忍范围,否则图像一糊,再好的模型也白搭。
三、算法阈值:别用静态值去追动态过程
我见过太多工程师,调好一个置信度阈值0.95,就再也没动过。结果白天一切正常,晚上车间湿度一上来,异常样本的分布缓慢漂移,误杀率直接翻倍。
复判算法一定要有动态阈值机制。我们目前的做法是,每500个产品滚动统计一次缺陷概率分布,然后用P97.5分位作为临时拒绝阈值。注意,这不像传统SPC那样只看均值,要同时看尾部。
当然,动态阈值也不是万能的。曾经有一次调整幅度过大,导致正常的表面纹理被切出去,把合格的当作NG。后来我们给阈值加了个限幅,前后两批的调节量不能超过±0.02。

至于深度学习模型的选型,建议复判模型不要太深。我们试过ResNet-152,精度是高,但推理时间长了30ms,而且过拟合严重,没有ResNet-50配适当的正则化好用。意外不?在小样本场景下,轻量模型往往更稳。
四、工程落地的三个隐形杀手

头一个是震动。视觉检测工位旁边如果有凸轮机构,连续冲击会让图像边缘模糊。你别指望软件去“振得好”,从机械上把相机支架刚性提高,才是正路。我曾经用一块15mm厚的铝板替代原来的钣金支架,误判率降了1.2%。
再有一个是光源衰减。LED光源用个一年半载,光强会掉到原来的70%附近。初判可能还扛得住,但复判因为要抠细节,稍微一暗就开始乱杀。所以得定期做光强标定,最好每周用标准色卡走一遍。
最后是通信延迟。复判结果要回传给PLC,如果走以太网,延迟抖动大了,产品到了分拣口,结果还没到。那就只能靠缓冲区堆料,一旦堆满,整个产线停摆。你问我怎么知道的?我们曾经因为交换机老化,复判工位平均延迟从12ms飙升到87ms,连续停线三次才排查出来。
这些坑,跟算法无关,但决定复判系统能不能活在产线上。
五、写在最后
复判不是炫技,是“懂取舍”。你要接受它不能消灭所有漏杀,也不能容忍过杀拖累产能。最好的复判,是设计成可插拔的模块,让算法、光源、机构三方能互相配合。
像我们后来那个项目,过杀率从15%压到了3%以内,漏判率也控制在1ppm以下。说实话,不是什么高深模型,就是把时间特征加进去了,再把阈值从静态换成动态,外加把光源调得更接地气。
如果你也在搞智能机器视觉复判,不妨先别急着上更复杂的网络,回头看看现场数据和机构设计。复判这东西,七分靠工程,三分靠算法。你有没有遇到过类似的坑?欢迎评论区聊。