计算机视觉技术落地工厂:为什么实验室95%的模型,到了产线就“怂”了?
上周从南京南站坐高铁去常州,看一条冲压线。车间灯一关,检测工位那台相机还在拍,屏幕上的检测框全飘了。现场工程师苦笑:白天好好的,晚上换了一批灯,模型就认怂。我当时没接话。心里想,这场景太熟了。计算机视觉技术在PPT里是“智能的眼睛”,到了车间,先得跟反光、油污、振动和电费较劲。
工业相机拍摄金属表面缺陷检测场景图
工厂产线机器视觉光源打光示意图
缺陷样本少,也是老问题。正常件成千上万,缺陷件几十张。异常检测就上场了:只学正常样本的分布,遇到偏离就报警。听起来美。可新来的正常样本,比如换了供应商、换了润滑液,分布一变,模型也报警。它会把“没见过的好人”当坏人。所以异常检测不是一劳永逸,得有回流机制。产线把误判样本传回来,工程师做难例挖掘,主动学习挑出信息量大的样本补标。模型不是一锤子买卖,是个持续运维的系统。
部署环节也容易被低估。实验室用GPU服务器跑,一张图几百毫秒,无所谓。产线节拍可能要求几十毫秒,还得在边缘盒子上跑。相机触发、光源同步、PLC通信、结果落库,哪个环节卡一下,节拍就断。计算机视觉技术在论文里是一个指标,在车间是一条链路。链路里任何一环松了,屏幕上的框就飘。
工业质检卷积神经网络缺陷检测流程图
收个尾。上周那条冲压线,后来没换模型。他们先改了光源角度,加了遮光罩,把相机支架重新锁紧。过杀率降了一半。工程师说,早该先看灯。我点头。计算机视觉技术落地,很多时候不是算法多聪明,是工程多老实。别问模型多少准确率,先问产线允许多少过杀。对吧。
灯一关,模型就“瞎”了
实验室里那套流程,干净得像手术室。固定光源、固定相机、固定工位,样本挑得漂漂亮亮。训练集里划痕清晰,背景统一,模型跑出95%的准确率,项目组鼓掌。可产线不是手术室。冲压件一过来,反光角度变,油污随机分布,模具磨损后毛刺形态也变。相机稍微被震歪半毫米,视野里的边缘就挪了位置。这些变量在实验室被当成噪声,在车间就是常态。 术语叫域偏移。说人话:训练时见到的世界,和上线后见到的世界,不是一个世界。模型不是人,它不会自己嘀咕“这反光有点怪,我换个角度看看”。它只会按照训练时学到的像素统计,硬判。判错了,它也不心虚。
工业相机拍摄金属表面缺陷检测场景图
它不是在“看”,是在算相关性
很多人把计算机视觉技术理解成“让机器看懂”。这话对了一半。机器确实在处理图像,但它理解的“看懂”,跟我们不是一回事。图像进了网络,先被拆成像素矩阵。卷积核在图上滑来滑去,提取边缘、纹理、局部对比度。层数深了,组合出更抽象的特征。模型学到的是:某种纹理分布、某种灰度跳变,和“缺陷”这个标签之间的相关性。它不知道什么是划痕,只知道这类像素模式在训练集里常被标成划痕。 所以光源和镜头特别要命。图像采集决定天花板,算法只是在天花板下面装修。车间里常有人一上来就换模型、加数据、调参数。我会先问:灯怎么打的?镜头有没有畸变?相机触发和产线节拍对得上吗?说实话,很多“算法问题”是光学问题。你给相机一束斜光,划痕的对比度就出来了;你换成环形光,反光可能把缺陷直接淹没。这不是调参能救的。 传统视觉和深度学习也不是谁替代谁。规则算法在定位、测量、有无判断上依然稳,节拍快,可解释。深度学习擅长纹理复杂、形态多变的缺陷。产线上常见的是混着用:传统算法先找ROI,深度学习再判缺陷。别把计算机视觉技术当成一个万能模型,它更像一套组合工具。产线不认实验室的95%
我见过一个金属件划痕检测项目。实验室里,划痕样本几百张,模型分类准确率很好看。上线头一周,过杀率飙上去。油污被判成划痕,材料本身的纹路被判成划痕,连灯光在圆角上的高光也被判成划痕。产线工人一开始还愿意复核,两天后就烦了:你这AI还不如我肉眼。项目差点黄。 问题不在模型“笨”,在任务定义没对齐。划痕和油污,在像素上可能很像。你得先问工艺:多长的划痕算缺陷?浅划痕要不要判?油污可擦除,算不算?不同客户的标准一样吗?这些不定清楚,标注员都在猜,模型更猜。后来他们把缺陷分级,先做“有无”粗筛,再做“长度和深度”精判,过杀才降下来。 这里有个成本不对称。漏杀,缺陷流到客户手里,召回、索赔、产线停线,代价大。过杀,工人多复核几次,累,但还能兜住。所以工业质检里,模型阈值不是按准确率调的,是按业务代价调的。你报个99%准确率,不如报“每千件过杀几次、漏杀几次”。产线听这个。
工厂产线机器视觉光源打光示意图
缺陷样本少,也是老问题。正常件成千上万,缺陷件几十张。异常检测就上场了:只学正常样本的分布,遇到偏离就报警。听起来美。可新来的正常样本,比如换了供应商、换了润滑液,分布一变,模型也报警。它会把“没见过的好人”当坏人。所以异常检测不是一劳永逸,得有回流机制。产线把误判样本传回来,工程师做难例挖掘,主动学习挑出信息量大的样本补标。模型不是一锤子买卖,是个持续运维的系统。
部署环节也容易被低估。实验室用GPU服务器跑,一张图几百毫秒,无所谓。产线节拍可能要求几十毫秒,还得在边缘盒子上跑。相机触发、光源同步、PLC通信、结果落库,哪个环节卡一下,节拍就断。计算机视觉技术在论文里是一个指标,在车间是一条链路。链路里任何一环松了,屏幕上的框就飘。
别把视觉当成万能插座
常见误解有几个。以为标注越多越好。其实标注一致性比数量重要。十个标注员十个标准,模型学出来就是一团浆糊。以为模型能自己适应新场景。它不会。你得给它新样本,或者给它更强的约束。以为AI能完全替代人。至少在长尾缺陷、模糊边界、工艺变更频繁的场合,人机协同更现实。人负责定标准和兜底,模型负责重复劳动。 边界也得说清楚。长尾缺陷、小样本、可解释性、节拍和成本,这四个东西卡在一起,决定了计算机视觉技术能在某个工位做到什么程度。不是所有质检都值得上视觉。有些工位,一个光电传感器加一个固定阈值,便宜又稳。别为了“智能化”三个字,把简单问题复杂化。
工业质检卷积神经网络缺陷检测流程图
收个尾。上周那条冲压线,后来没换模型。他们先改了光源角度,加了遮光罩,把相机支架重新锁紧。过杀率降了一半。工程师说,早该先看灯。我点头。计算机视觉技术落地,很多时候不是算法多聪明,是工程多老实。别问模型多少准确率,先问产线允许多少过杀。对吧。