上周去一个汽配厂,他们的视觉系统把压痕当裂纹,漏检率飙到8%。产线差点停了。负责人老张挠着头问我:这玩意儿不是号称比人眼强十倍吗?怎么连个划痕都抓不住?
说实话,这种场景我见太多了。外观检测——特别是基于机器视觉的外观检测——门槛其实不低。很多人以为买个工业相机、装个软件就万事大吉,结果一上线全是问题。打光不对,算法过拟合,标定偏差零点几个毫米……然后就开始怀疑人生。
光源选错,累死算法
我经常跟团队说:外观检测的成败,80%在打光。相机再贵,算法再牛,光路设计不行,全是白搭。举个真实例子:有家做手机中框的客户,想检测边缘的微小崩口。他们用环形光正面直打,图像上崩口和倒角高光混在一起,算法根本分不清。后来改成低角度暗场照明,缺陷立马“跳”了出来。就这么简单!
但很多人不信邪。非要在软件上调对比度、拉曲线,折腾几天还不如换个光源角度。有时候,问题的答案就在物理层面——人眼能看清凹凸,不就是因为光线从侧面照过来嘛?机器也一样。千万别把锅都甩给算法工程师。

缺陷样本不足?合成数据也许是个坑

深度模型需要大量缺陷图片,这个都知道。但现实产线上,致命缺陷一年可能就出现几次。你想拍几千张 NG 样件?老板第一个不同意。于是很多人开始用合成数据——GAN 生成、3D 渲染、甚至 Photoshop 贴图。但合成数据和真实数据之间总有个“域间隙”,模型在合成数据上准得不行,一上产线就露怯。
我的经验是:少量真实样本 + 数据增强 + 传统算法融合,往往比纯靠合成来得稳。别追求花哨的模型架构,工业场景追求的是可解释性和稳定性。那些比赛里炫技的 Transformer 模型,到了车间可能连曝光变化都扛不住。唉,都是泪。
问:外观检测中,传统算法和深度学习到底该怎么选?
答:这得看缺陷的复杂度和一致性。如果缺陷形态固定——比如螺丝漏装、标签歪斜——用传统视觉工具(Blob 分析、模板匹配)又快又稳。但要是检测布匹纹理中的断线、金属表面的随机划痕,那必须上深度学习。不过我个人倾向于混合方案:先用传统方法做预筛,把明显的 OK/NG 分开,再用 AI 模型攻坚模糊地带。这样效率最高,也能避免 AI 的“黑箱”误判。
在线检测的节拍压力,真能逼死人
实验室测着挺好,一上产线就崩——节拍是关键。你算算:一条发动机缸体线,节拍 45 秒,留给视觉检测的时间可能不足 5 秒,还要包括机械手抓取、图像传输、算法运算、通讯延迟。5 秒内要拍 3 个面、处理 8 张图、输出 OK/NG 信号……稍微哪个环节卡一下,下游就要停线。那种压力,没在车间呆过的人真体会不到。
所以硬件选型时一定要考虑并行处理:多相机同步采集、GPU 加速、结果队列缓冲。软件层面,宁可算法稍微保守一点,也要保证稳定性。有一次,我们为了追求极致检出率,把深度学习模型的迭代次数翻了倍,结果推理时间从 1.2 秒变成 2.8 秒,直接导致产线报警。最后连夜切回旧版本,老板脸都绿了。

问:外观检测系统的精度到底怎么定义?微米级真的可靠吗?
答:这个问题好。很多厂家宣传精度 0.01mm、0.005mm,但你要问清楚:这是指像素分辨率,还是实际检测能力?系统精度取决于相机分辨率、镜头倍率、标定误差、温度漂移……一堆因素。实际应用中,重复精度比绝对精度更重要。比如测量一个孔径,系统每次测出来的值波动在 ±0.003mm 内,那即使绝对值偏一点,也能通过补偿解决。最怕的是数据乱跳。另外别忘了,产线振动和油污对精度影响极大,标定块要定期复核。
说到底,外观检测是个系统工程。它不仅是算法问题,更是光学、机械、自动化、甚至心理的博弈——你得懂操作工怎么想、质检员怎么判、老板怎么算成本。有时候,技术问题最后都变成了人的问题。
别信那些“一键部署”的宣传。没有哪个成功的项目,不是工程师在现场灰头土脸调试几个月换来的。但当你看到缺陷拦截率从 70% 提到 99.9%,看到客户如释重负的表情……嗯,这种时刻,还是挺值的。