去年年初,一家做汽车排气管和消音器的浙江工厂找到我们。他们的弧焊工位一直靠人工目检+抽检来判断焊接质量,但漏检问题越来越严重——客户退货的批次里,好几起都是焊接飞溅过大或焊道有气孔导致的。

老板说了一句让我印象很深的话:"我知道有漏的,但不知道漏了多少。因为抽检就是碰运气。"

这篇文章记录我们用AI视觉方案帮他们做焊接在线全检的全过程。和之前做的几个AI视觉项目都不一样——焊接检测的光学条件和常规检测完全不是一回事。

一、现场情况摸底

去车间蹲了两天,摸清了基本情况。

这些条件摆在这,常规的静态拍照质检方案肯定不行。弧焊车间有三大难题:弧光干扰、烟尘污染、检测节拍要快。

二、方案设计

方案的核心思路是:在焊接完成后、工件还没移走的短暂窗口期内,用高速相机配合特种光源在焊接区拍一组照片,然后通过AI模型实时判断焊道质量。

硬件选型

相机:选了200万像素全局快门工业相机,配合滤光片。全局快门能避免焊接飞溅的拖影问题。最后测试下来,在不损失画质的前提下,最快拍到清晰图像的快门速度是1/2000秒。

镜头:定焦25mm工业镜头,配合窄带滤光片(中心波长660nm)。目的是过滤掉大部分弧光干扰——弧光光谱很宽,但通过窄带滤光+主动补光,可以大幅降低弧光对成像的影响。

光源:用了660nm红色LED同轴光源。为什么选这个波长?因为MAG焊的弧光在660nm附近的能量相对较弱,配合窄带滤光片能把背景弧光压到很暗,只让补光照明区域亮起来。

边缘AI网关:部署了一台边缘AI网关(NVIDIA Jetson Orin NX级别),负责相机采集、运行推理模型、输出检测结果。所有计算都在本地完成,不依赖车间网络。

⭐ 关键思路:焊接检测和普通外观检测最大的区别在于——你要检测的对象本身在被拍摄时就在发出极亮的光。这不是"加上灯就能看清"的问题,而是要用光学手段把你要看的区域从弧光背景中"分离"出来。

检测方案

我们设计了两个检测工位串联的方案:

模型方面,用了两个模型:一个语义分割模型(识别焊道轮廓,测量焊脚宽度和气孔),一个目标检测模型(识别飞溅区域大小和密集度)。两个模型在边缘AI网关上串行运行,单帧推理时间控制在约80ms,满足节拍要求。

三、实施过程

第一阶段:光学方案验证(2周)

这个阶段花的时间远超预期。焊接检测的光学设计太难了。

第一次尝试:直接用普通LED面光源+不加滤光片。结果拍出来的图像是一片白色——弧光直接把相机饱和了,啥也看不见。

第二次尝试:加ND减光镜。确实能看到焊道了,但图像细节丢失严重,气孔和微裂纹根本分辨不出来。

第三次尝试:窄带滤光片+同轴光源。终于拍到了清晰的焊道图像——在较暗的背景下,焊道区域被补光照亮,对比度明显。但问题来了:不同焊道的反光特性不一样。有的焊道表面比较光滑(反射强),有的表面粗糙(漫反射强),导致同一组曝光参数下有的区域过亮有的过暗。

第四次尝试:动态曝光补偿。根据上一个工件的焊接参数(电流、电压、焊接速度),预测当前焊道的反光特性,动态调整曝光时间。这个方案在测试中效果不错,但实现起来稍微复杂——需要从焊接电源上读实时参数。

教训:焊接视觉检测的瓶颈90%在光学,10%在算法。如果照片拍不清楚,模型再强也白搭。这个项目里花在"怎么拍清楚"上的时间,超过了模型训练和调试的时间总和。

第二阶段:数据集构建和标注(3周)

数据采集环节遇到了几个麻烦:

最终标注了约5200张图像,其中正常件3200张、各类缺陷件2000张。按7:2:1分成训练集、验证集和测试集。

第三阶段:模型训练和优化(2周)

语义分割模型用了U-Net结构(ResNet-18 backbone),目标检测模型用了YOLOv8n。部署到边缘AI网关上做了量化(FP16→INT8),推理速度从原来的约200ms降到了约80ms单帧。

训练过程中发现了一个比较棘手的问题:焊道类型不同,模型的精度差异很大。排气管的焊道比较规则(环形焊),检测精度较高(mIoU约0.87)。但消音器壳体上的焊道形状不规则、长短不一,模型在这些件上的表现明显差一些(mIoU约0.72)。

解决方法:把数据集按焊道类型做了分层,对消音器类焊道数据做了过采样(oversampling),训练周期比排气管类多一倍。最终消音器焊道检测的mIoU从0.72提高到了约0.81。

第四阶段:现场联调和试运行(3周)

联调阶段暴露了N个问题:

四、实际效果

系统试运行了2个月后,我们统计了几个关键指标:

缺陷检出率:约88%
对测试集的标注缺陷检出率约88%,其中气孔和飞溅过大的检出率较高(约92%),裂纹和未熔合的检出率较低(约75%)——原因是裂纹通常比较细微,在普通光照条件下难以分辨。
误报率:约10%
大部分误报发生在焊道表面有轻微氧化色斑的区域——颜色跟气孔区域接近,模型容易搞混。后续补充了氧化色斑的负样本,误报率降到了约7%。
检测节拍:单件约7秒
两个工位串行检测,从焊接完成到出检测结果约7秒(含拍照+传输+推理+结果显示),满足15秒的节拍要求。
返工率变化
上线前,焊接返工率在6-8%之间波动(很多缺陷到后工序总装时才发现)。上线后,焊接缺陷在焊接工位就被检出并立即返修,不流到后工序。虽然返工率数字本身变化不大,但后工序的返工和报废明显减少。

另外有两个意料之外的收获:

一个是焊接参数的优化反馈。AI检测的数据能跟具体焊工、当班次、焊接参数关联起来。以前一个焊工如果某天飞溅特别多,他自己可能不知道,班组长也未必注意到。现在系统能自动生成每天/每周的焊接质量统计——哪个工位、哪个参数设置下缺陷率高。有个焊工师傅看到数据后,自己调整了送丝速度和气体流量,飞溅率下降了约一半。

另一个是质检记录的数字化。以前验厂审核时,焊接质检记录全是手写表格,审核员翻着看也不放心。现在系统自动生成每件产品的焊接检测报告(图片+检测结果),可追溯可导出。

五、踩坑清单

这个项目踩了不少坑,挑几个值得记下来的:

  1. 弧光干扰比想象中严重得多。我们一开始以为加了滤光片就万事大吉,实际到现场发现相邻工位的弧光散射进来照样影响成像。物理遮光板+滤光片组合才能解决。
  2. 热雾效应。焊接刚停的瞬间,焊道上方有一层热空气造成的"雾"(热梯度导致的折射率变化),拍出来是模糊的。必须等约0.5-1秒再触发拍照。
  3. 镜头烟尘。弧焊车间的烟尘量超出了我们的预期,用气吹式自动清洁也不够彻底,后来每周还要人工清洁一次。
  4. 不同焊道的反光特性差异。光滑焊道和粗糙焊道需要的曝光参数完全不同,单一曝光参数无法覆盖所有情况。
  5. 温度对相机的长期影响。55度以上的环境温度会显著增加CMOS传感器的暗电流噪声,表现为图像上的随机亮点。隔热+风扇是必要的。
  6. 缺陷标注规范的一致性。不同标注员对"气孔过大"的判断标准不同,必须提前制定量化标准并做好标注审核。
  7. 焊道类型之间的模型迁移性差。在排气管焊道上训练较好的模型,直接用到消音器焊道上精度下降很多。需要按焊道类型分别微调或者做分层训练。
  8. 工人接受度管理。让工人相信"这不是监控摄像头而是辅助工具"需要时间。让工人看到检测结果能帮他们优化焊接操作,他们才会主动配合。
  9. 产线停机时模型没法更新。所有模型推理在本地运行,但模型更新需要联网下载新权重。有一次产线网络断了2天,新训练的模型版本推不上去。后来加了离线更新方案——U盘拷权重文件到网关本地。

六、个人的思考

做完这个项目,我对焊接视觉检测有了几点比较深的感受:

焊接检测是AI视觉里比较特殊的一类。做普通的外观检测(PCB、包装、印刷),光学设计相对成熟,问题更多在模型层面。但焊接检测首先是一个光学问题——在弧光、高温、烟尘的恶劣环境下拍到一张合格的图像,这件事本身就占了项目的一半工作量。

真实产线的条件永远比想象的恶劣。35度车间、55度相机温度、弧光散射、油烟附着——这些是标准实验室环境里根本不会遇到的问题。做工厂项目的经验就是:永远把"现场条件比预期差50%"作为设计前提。

数据闭环的价值被低估了。很多工厂做AI质检只是为了筛选不良品,但忽略了检测数据本身——每个焊道的缺陷记录、每个焊工的质量统计、每个参数设置下的缺陷率变化——这些数据可以用来反过来优化焊接工艺。这才是长期价值所在。

这类项目适合渐进式推进。如果一开始就说"我给你们每条线都装一套",老板肯定犹豫。先装一条线试跑一到两个月,效果可见了再推进剩下的产线,这种方式双方都轻松。

七、给你的建议

如果你也在考虑焊接视觉检测,几点供参考:

  1. 别急着选相机和模型——先到产线上搞清楚您的弧焊类型(MAG/MIG/TIG/激光焊),每种焊接的弧光特性和烟尘量完全不同,方案设计差别很大
  2. 光学验证阶段至少留出2-3周时间。拍不到清晰图像之前,别开始任何模型方面的工作
  3. 缺陷样本不够是常态,主动设计加速试验(有意偏调焊接参数)来生成缺陷样本,比被动等缺陷发生快得多
  4. 先覆盖检出率较高的缺陷类型(飞溅、气孔),再逐步增加难以检测的类型(裂纹、未熔合)
  5. 不要忽视环境防护——高温、粉尘、振动都会影响设备寿命。工业相机和边缘网关建议加装工业防护外壳(IP65以上)
  6. 让焊工参与进来。他们对焊接过程的了解比任何算法工程师都深,他们的经验可以帮助你理解哪些缺陷是关键的、哪些是可以接受的