今年初,苏州一家做电子连接器的工厂找过来。他们的产品挺简单——各种规格的排线和端子,但客户对品质要求高,外观缺陷(划痕、歪针、毛刺)必须控制在出厂前筛掉。

他们的质检方式是人工目检。8条产线,每条配1个质检工位,工人坐在产线末端,把流水线上过来的产品一个个拿起来看。人盯久了眼睛花,漏检率高一直是个老大难问题。

老板之前试过传统机器视觉方案——找了一家公司来评估,报的价一条线十几万。8条线全上要近百万元,还要配专门的视觉工程师调参,他犹豫了半年没下手。

我们给的方案不一样:用边缘AI网关接USB工业相机,跑轻量级视觉检测模型。一条线的硬件成本很低,而且模型训练好之后运维不依赖外部。这篇文章记录从试点到全线铺开的过程。

一、现场摸底

去车间蹲了两天,整理出几个关键信息:

还有一个细节很重要:车间环境不算太好,振动和灰尘比较多,精密的光学方案在这里未必抗造。

二、方案设计

方案分成四层:

采集层:USB工业相机 + 补光

选型考虑:

一台相机加光源加支架,硬件成本控制在了千元级别。

计算层:边缘AI网关

用了我们的边缘AI网关S200来跑推理模型。选择边缘计算而不是上传服务器或云端,原因有三:

S200配备6 TOPS NPU,跑轻量级的YOLO模型绰绰有余。实际跑下来,单张图片的推理时间约150-200毫秒,加上图像预处理和后处理,整个流程控制在500毫秒内。

检测层:AI视觉模型

模型选型上对比了几个方案:

最终选了YOLOv8n。配合少量数据增强(旋转、亮度变化、模糊模拟),用约800张标注图片训练的模型,在测试集上达到了可用的检测效果。

反馈层:声光告警 + 统计看板

检测到不良品时,网关通过GPIO触发一个蜂鸣器和一个红色指示灯。同时给产线主管的手机企业微信推送一条消息——哪个工位、什么时间、什么类型的缺陷。

数据实时写入网关本地的SQLite数据库。每周自动生成一份质检统计报告:各产线的不良率趋势、主要缺陷类型分布、漏检估算。

教训:第一次设计时想把数据全传云端再做统计,后来发现没必要。网关本地就能跑统计,每天一次把汇总数据同步到云端就够了。省流量,也省云服务器成本。

三、实施过程

第一周:模型训练与硬件安装

模型训练花的时间比想象中长,不是算法问题,是数据。

工厂没有现成的缺陷图片库。解决方案是:

标注本身花了不少功夫。第一版标注太粗——只标了"有缺陷"还是"没缺陷",模型训练出来精度不行。第二版改为细粒度标注:端子歪斜、外壳划伤、毛边分别标不同类别。检测效果明显提升。

硬件安装倒是快:半天装好支架和相机,半天配置网关和走线。一条线的设备安装时间大约4小时。

第二周:调试和基线测试

调试阶段出了几个问题:

问题1:触发方式不对
一开始用的连续拍照模式,相机不停拍,大量图片是空的(产品还没到工位)。推理算力浪费严重。后来改用光电传感器触发——产品流到指定位置时传感器发出信号,相机才拍一张。改完之后每天处理的图片量从几万张降到几千张,有效数据占比大幅提高。

问题2:模型对光线太敏感
第一天上线,上午和下午的检测结果差异挺大。排查发现是车间窗户透进来的自然光变化导致的。加了遮光帘之后,补光效果稳定了,检测结果也稳定了。同时也把数据增强中的亮度变化范围调大了,让模型对光照变化更鲁棒。

问题3:误报率偏高
刚开始的误报率大概15%——就是AI说有问题、但工人复查发现没问题的情况。把置信度阈值从0.5调到0.7后,误报率降到了5%左右,但同时漏检率略有上升。权衡之后维持了0.6的阈值。

第三周:人工+AI并行验证

AI检测的结果先不给产线用,而是和人工质检的结论做对比。

具体做法:每个产品经过AI检测后,贴上标签(AI判定结果),然后工人照常质检。每天下班后比对AI和人工的结果差异。

一周的数据出来:

这个结果说明AI能用,但还不能完全替代人工。我们的定位也调整了——不是替代质检员,而是给质检员当"第二双眼睛"。

第四周:正式上线

上线后的运行方式:

效果:

漏检率明显下降
主要体现在两个地方:一是工人疲劳时段(下午3点以后和加班时段)的漏检大幅减少,AI在这个时间段不会"走神"。二是微小缺陷(长度小于1mm的划痕)的检出率比人工高。
每条线减少1个质检工位
之前每条线1个质检员,现在调整为2条线共用1个质检员+1套AI系统。质检员的角色从"一个一个看"变成"对AI标记的产品复查"。
误报率稳定在5%左右
大部分误报来自一种特殊纹理的产品——表面有细纹装饰,模型有时会把装饰纹误判为划痕。解决方案是为这种产品单独训练了一个分类头,专门区分装饰纹和真实划痕,上线后又降了约2个百分点。

四、从1条线到8条线

试点跑了两个月,老板决定全线铺开。铺开的过程比试点顺畅很多,因为大部分坑已经在第一条线上踩过了。

不过也遇到了一些新问题:

不同产品规格的模型适配:8条线生产的产品规格不同。虽然都是连接器,但大小、颜色、材质不一样,用一个通用模型精度不行。最终方案是做了3个模型:小规格(间距1.0mm以下)、中规格(1.0-2.5mm)、大规格(2.5mm以上)。切换产品时,网关自动识别规格并加载对应的模型。

边缘网关管理:8台网关分布在不同的产线,每次更新模型或配置要逐个SSH进去,效率很低。后来搭了一个简单的管理后台,可以在网页上一键更新所有网关的模型版本。这个后台本身也是跑在网关上的轻量级Web服务。

数据汇总:每条线的数据各自存在本地。为了给生产主管一个全局视图,写了一个小脚本每天晚上把所有网关的统计数据汇总到一台服务器上。不传图片,只传统计结果,数据量很小。

五、踩坑汇总

坑1:USB线缆长度问题
USB3.0的标准线长限制是3米。车间里网关放在电控柜里,相机装在产线上方,距离超过5米。试了延长线,信号衰减严重。最终方案是用USB转光纤延长器,花了点钱但信号稳定了。

坑2:产品在流水线上的位置偏差
产品经过拍照工位时,位置不是完全固定的。有时偏左、有时偏右、有时角度有旋转。前期训练图片都是居中摆好拍的,上线后模型识别率下降。后来在数据增强里加了位置偏移和旋转的数据,重新训练后解决了。

坑3:灰尘积累影响成像
车间有粉尘,相机的镜头隔几天就会落灰,影响成像质量。起初每周擦一次,后来加了一个压缩空气吹扫装置,每天自动吹一次镜头。

坑4:模型更新的"水土不服"
有一次更新模型后,检测精度反而下降了。排查后发现是新模型训练时用的图片,大部分是白天拍的,而产线晚上灯光和白天不太一样(部分灯管老化偏黄)。后来训练数据统一混入了不同时段、不同光照条件下的图片。

六、个人的一些思考

这个项目做下来,几个感受比较深:

AI质检能不能落地,关键不在算法在工程。相机怎么装、灯光怎么打、触发怎么搞、线怎么走——这些问题比模型选型费劲多了。算法工程师做出来的模型精度再高,到了车间里装不好、拍不清、跑不稳,一切都是零。

小步快跑比一步到位靠谱。客户从一条线开始试点,看到实际效果后再铺开。如果一开始就推8条线的方案,客户大概率会因为前期投入太大而放弃。一条线跑通了,再用数据说话去推剩下的线,阻力小得多。

人和AI的协作模式需要磨合。方案设计的时候我们想的是"AI替代人工",但实际跑下来,"AI辅助人工"是更合理的定位。质检员从疲劳的重复劳动中解放出来,去做更有价值的复查和分析工作。工厂里的工人对这个模式的接受度也更高。

数据积累比模型本身更有长期价值。上线几个月后,积累了数万张带标注的产线图片。这些数据不仅用来持续优化检测模型,还可以做工艺改进分析——比如发现某个模具在特定时间段不良率升高,排查后果然是模具磨损了。数据和业务结合,价值才会放大。

七、如果你也考虑上AI视觉质检

几点经验供参考:

  1. 先用一条典型产线做POC(概念验证),别急着全面铺开。选一条产品类型比较单一、缺陷特征清晰的线做试点
  2. 数据标注比模型训练更花时间,做好心理准备。标注的质量直接影响模型效果,找熟悉产品的质检员来标注比自己标靠谱
  3. 不要追求100%准确率——80%的检出率就能带来可观的价值。为了追最后几个百分点,投入会成倍增加
  4. 给边缘网关留够算力余量。目前模型不大,6 TOPS够用。但后续如果增加检测项或者换更大的模型,算力不够就得换硬件
  5. 做好硬件防护。工业现场的粉尘、振动、温度变化都比实验室严酷得多,选型的时候留出余量