深度学习落地工业视觉检测,那些年我踩过的坑

说实话,当初从传统机器视觉转深度学习,多少有点被逼上梁山的意思。那会儿我们的一条轴承产线,缺陷种类多得让人头疼——划痕、压痕、锈斑,还有个奇葩的“黑皮”,全靠人工设计特征,调参调到怀疑人生。光源角度换一下,整个算法就可能崩掉。

烦透了。后来,2018年吧,抱着死马当活马医的心态,用上了卷积神经网络。结果呢?效果出奇地好——漏检率直接从5%降到0.3%以下。当时在车间里,盯着屏幕上那些被精准框出的缺陷,忍不住爆了句粗口:靠,早该换了!

工业相机拍摄的轴承表面划痕和锈斑缺陷样本
工业相机拍摄的轴承表面划痕和锈斑缺陷样本


但高兴得太早。真正落地的坑,那才叫一个深。

数据:你以为的够,其实差得远


都知道深度学习吃数据。可工业场景,哪有ImageNet那种成百万上千万的标注数据?一条产线,历史缺陷图片可能就几百张,而且良品率98%以上——缺陷样本少得可怜。有一次,为了收集一种罕见的裂纹缺陷,我们硬是让产线废了三天,故意制造残次品。结果被老板骂得狗血淋头。

数据增强?当然用了。旋转、翻转、加噪声……但请注意,工业缺陷有严格的几何特征,旋转后缺陷方向变了,可能就不再是原来的缺陷模式了。比如金属表面的“拉丝纹”,方向一乱,模型反而搞混。有一次,我自作聪明加了一大堆增强,模型在验证集上准确率飙到99.9%,一上线就傻眼——把良品误判为缺陷的几率高达20%。过拟合?不,这叫“过增强”。后来学乖了,增强只做轻微仿射变换和亮度抖动,缺陷形态上的变化,老老实实去产线多采真实样本。

迁移学习在工业视觉里,也不是万能药。ImageNet预训练权重,对于自然图像有用,但金属表面纹理、X光焊缝图这种,特征分布完全不同。我试过用预训练模型微调,还不如从零训练的三层小网络。所以,千万别迷信“标注少,迁移学习来凑”那种鬼话。工业视觉,一定要构建自己的领域数据集,哪怕一开始只有几百张。



模型:杀鸡焉用牛刀?轻量才是王道


产线上,速度就是生命。我们一条生产线,节拍1.5秒一个工件,检测部分留给算法的只有300毫秒。300毫秒啊!要是塞个ResNet-101,再加个FPN,推理时间轻松破半秒,直接导致产线堵料。工人师傅拎着扳手就过来了:“啥玩意儿?咋老卡?”

于是开始折腾模型压缩。剪枝、量化、蒸馏……试了个遍。最后发现,某些轻量化架构天生更适合工业现场。比如修改过的MobileNetV3,通道数砍一半,再加一层适应缺陷尺度的微调头,推理时间压到80毫秒,精度几乎不降。另外,模型部署时,千万别依赖CPU——工厂里那些工控机,有些连GPU都没有。我们用TensorRT把模型转成INT8,跑在嵌入式Jetson上,功耗低,还扛得住40℃的车间环境。惊喜的是,FP16量化后,对瑕疵的敏感度居然上去了!?后来才想通,可能量化噪声刚好抑制了背景纹理的高频波动,算歪打正着吧。

不过话说回来,模型并非一成不变。产线工艺变更,比如换了种润滑油,缺陷的呈现方式就变了。这时候,线上模型就得快速迭代。在线学习?名义上好听,实际操作起来胆战心惊——万一学偏了,整个批次全给误判,那损失可就大了。我们现在采用半自动重训练:新样本积累到500张,人工复核后重新训练,再通过影子模式(shadow mode)并行验证一周,确认无误后才上线切换。虽然保守,但稳妥。

QA答疑:一线工程师最头疼的两个问题


问:样本实在不足,尤其是新缺陷没几张图,该怎么办?
答:还能怎么办?两条路呗。一是合成数据,用GAN生成缺陷。但小心,GAN生成的缺陷纹理有时太“完美”,和真实环境下的随机性不搭,导到线上照样露馅。我试过用缺陷贴图+随机光照模拟,效果尚可,至少能救急。二是用小样本学习,比如孪生网络做相似度比对,只需几张参考图就能判断。但这种方法工程化复杂度高,对噪声敏感。目前最靠谱的还是数据增强+人工制造缺陷,虽然土,但管用。

问:深度学习模型检测速度上不去,影响到节拍,有什么优化绝招吗?
答:绝招谈不上,都是笨办法。首先,别只盯着模型本身。预处理环节,图像裁剪、ROI提取,能把输入尺寸降下来就降。其次,推理框架务必优化到极致,比如用TensorRT,加上批处理(虽然延迟敏感,但可以把单个大图拆成多个批次并行)。再就是硬件,别吝啬,Jetson Xavier比Nano强不止一点。最后,如果还不行,试试知识蒸馏,把大模型学到的知识压缩到小模型,损失个0.5%的精度换速度,划算。记住,产线上,够用就行,别追求实验室那点极致。

走到今天,回头看看,深度学习确实重塑了工业视觉。但坑也踩遍了。从数据饥渴到模型部署,从上线崩盘到持续维护,每步都血泪斑斑。然而,当看到原本需要四名质检员盯着屏幕干的活,被一套包含深度学习模型的系统全自动搞定,而且夜班无人值守也能稳定运行时……那种成就感,啧啧,真不是写几篇论文能比的。

未来?当然期待端到端的视觉系统。比如直接从图像输出控制信号,连中间的检测、分类都省了。只是工业场景,可靠性永远是第一位的。

路还长着呢。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:深度学习落地工业视觉检测,那些年我踩过的坑
文章链接:https://www.zystgy.cn/a/54922