去年年初,一家做汽车排气管和消音器的浙江工厂找到我们。他们的弧焊工位一直靠人工目检+抽检来判断焊接质量,但漏检问题越来越严重——客户退货的批次里,好几起都是焊接飞溅过大或焊道有气孔导致的。
老板说了一句让我印象很深的话:"我知道有漏的,但不知道漏了多少。因为抽检就是碰运气。"
这篇文章记录我们用AI视觉方案帮他们做焊接在线全检的全过程。和之前做的几个AI视觉项目都不一样——焊接检测的光学条件和常规检测完全不是一回事。
一、现场情况摸底
去车间蹲了两天,摸清了基本情况。
- 产线情况:5条弧焊产线,每条线2-3个焊接工位,全部人工焊接(MAG焊)。日产能约1200件排气管/消音器组件
- 当前质检方式:每批次抽检20%,焊接完成后等工件冷却到室温,质检员拿卡尺量焊脚尺寸、目测飞溅和表面气孔。一个工件完整检查要3-5分钟,只能抽检
- 主要缺陷类型:焊接飞溅过大(占比约45%)、焊道气孔(约25%)、焊脚尺寸不足(约20%)、焊道裂纹(约10%)
- 环境条件:车间温度常年在35度左右,弧焊时有大量烟尘和弧光闪烁,振动很大(旁边就是冲压线)
- 节拍要求:每个工件焊接完成后,检测必须在15秒内完成——否则跟不上产线节拍
这些条件摆在这,常规的静态拍照质检方案肯定不行。弧焊车间有三大难题:弧光干扰、烟尘污染、检测节拍要快。
二、方案设计
方案的核心思路是:在焊接完成后、工件还没移走的短暂窗口期内,用高速相机配合特种光源在焊接区拍一组照片,然后通过AI模型实时判断焊道质量。
硬件选型
相机:选了200万像素全局快门工业相机,配合滤光片。全局快门能避免焊接飞溅的拖影问题。最后测试下来,在不损失画质的前提下,最快拍到清晰图像的快门速度是1/2000秒。
镜头:定焦25mm工业镜头,配合窄带滤光片(中心波长660nm)。目的是过滤掉大部分弧光干扰——弧光光谱很宽,但通过窄带滤光+主动补光,可以大幅降低弧光对成像的影响。
光源:用了660nm红色LED同轴光源。为什么选这个波长?因为MAG焊的弧光在660nm附近的能量相对较弱,配合窄带滤光片能把背景弧光压到很暗,只让补光照明区域亮起来。
边缘AI网关:部署了一台边缘AI网关(NVIDIA Jetson Orin NX级别),负责相机采集、运行推理模型、输出检测结果。所有计算都在本地完成,不依赖车间网络。
检测方案
我们设计了两个检测工位串联的方案:
- 工位一(焊缝形态检测):焊接完成后,焊枪移开,相机立即拍摄焊道照片。检测项:焊脚宽度、焊道连续性、表面气孔、裂纹。这个工位的难点在于拍摄时机——焊接刚停的瞬间焊缝区域还有余热导致的"热雾"效应,拍出来模糊。需要延迟约0.5-1秒等热雾散去再触发拍照。
- 工位二(飞溅检测):焊接完成后,工件移动到下一工位,用背光方式拍摄工件整体。检测项:飞溅附着量、热影响区变色范围。这个相对简单,因为工件已经冷却了一些,光源干扰少。
模型方面,用了两个模型:一个语义分割模型(识别焊道轮廓,测量焊脚宽度和气孔),一个目标检测模型(识别飞溅区域大小和密集度)。两个模型在边缘AI网关上串行运行,单帧推理时间控制在约80ms,满足节拍要求。
三、实施过程
第一阶段:光学方案验证(2周)
这个阶段花的时间远超预期。焊接检测的光学设计太难了。
第一次尝试:直接用普通LED面光源+不加滤光片。结果拍出来的图像是一片白色——弧光直接把相机饱和了,啥也看不见。
第二次尝试:加ND减光镜。确实能看到焊道了,但图像细节丢失严重,气孔和微裂纹根本分辨不出来。
第三次尝试:窄带滤光片+同轴光源。终于拍到了清晰的焊道图像——在较暗的背景下,焊道区域被补光照亮,对比度明显。但问题来了:不同焊道的反光特性不一样。有的焊道表面比较光滑(反射强),有的表面粗糙(漫反射强),导致同一组曝光参数下有的区域过亮有的过暗。
第四次尝试:动态曝光补偿。根据上一个工件的焊接参数(电流、电压、焊接速度),预测当前焊道的反光特性,动态调整曝光时间。这个方案在测试中效果不错,但实现起来稍微复杂——需要从焊接电源上读实时参数。
教训:焊接视觉检测的瓶颈90%在光学,10%在算法。如果照片拍不清楚,模型再强也白搭。这个项目里花在"怎么拍清楚"上的时间,超过了模型训练和调试的时间总和。
第二阶段:数据集构建和标注(3周)
数据采集环节遇到了几个麻烦:
- 正常件好找,缺陷件得等:正常焊道照片当天就能拍几百张,但各种类型的缺陷照片需要花时间等焊接异常发生。一些常见缺陷(飞溅过大、气孔)产量大一些,一周能收集到几十例。但裂纹和未熔合这类严重缺陷很少见,最后用了加速试验——故意调偏焊接参数来生成缺陷样本
- 标注难度大:焊道缺陷的边界很模糊。什么叫"气孔过大"?直径超过多少算缺陷?一家质检员和另一家判断标准不完全一致。最后我们做了一个标注规范文档:气孔直径超过1.5mm算缺陷,飞溅覆盖面积超过焊道总面积的5%算超标,焊脚宽度低于图纸要求的90%算尺寸不足
- 数据增强:做了多种数据增强——亮度随机变化(模拟不同的焊接余热状态)、随机噪声(模拟烟尘干扰)、随机旋转和仿射变换(模拟工件放置位置的微小偏差)
最终标注了约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个问题:
- 弧光干扰仍然存在:虽然加了滤光片,但在相邻工位同时焊接时,弧光从侧面打在工件上的散射光还是会干扰成像。解决方案是加了物理遮光板。
- 烟尘附着镜头:弧焊车间的烟尘很大,相机镜头上一天下来就蒙了一层灰,图像质量明显下降。配了气吹式自动清洁装置,每次拍摄前自动吹一下。
- 工件晃动:夹具在焊接过程中热胀冷缩,同一个工装上的工件位置每天都有微小变化。好在数据增强时做了仿射变换,模型对这种偏移有一定的容忍度。但还是加了一个简单的ROI自动定位——通过图像预处理找到焊道的粗略位置,再裁剪出ROI区域输入模型。
- 温度影响相机:车间35度+焊接热辐射,相机外壳温度到了55度以上,偶尔出现图像噪点增多的问题。加装了隔热罩和小风扇。
- 产线工人抵触:一开始工人觉得"装个摄像头来盯着我们",反复解释了几次——这是看焊道不是看人,而且检出的缺陷可以帮助他们及时调整焊接参数。后来一位焊工师傅发现AI能看出他换了焊丝之后飞溅减少了,他反而开始主动看检测结果来调整操作。
四、实际效果
系统试运行了2个月后,我们统计了几个关键指标:
对测试集的标注缺陷检出率约88%,其中气孔和飞溅过大的检出率较高(约92%),裂纹和未熔合的检出率较低(约75%)——原因是裂纹通常比较细微,在普通光照条件下难以分辨。
大部分误报发生在焊道表面有轻微氧化色斑的区域——颜色跟气孔区域接近,模型容易搞混。后续补充了氧化色斑的负样本,误报率降到了约7%。
两个工位串行检测,从焊接完成到出检测结果约7秒(含拍照+传输+推理+结果显示),满足15秒的节拍要求。
上线前,焊接返工率在6-8%之间波动(很多缺陷到后工序总装时才发现)。上线后,焊接缺陷在焊接工位就被检出并立即返修,不流到后工序。虽然返工率数字本身变化不大,但后工序的返工和报废明显减少。
另外有两个意料之外的收获:
一个是焊接参数的优化反馈。AI检测的数据能跟具体焊工、当班次、焊接参数关联起来。以前一个焊工如果某天飞溅特别多,他自己可能不知道,班组长也未必注意到。现在系统能自动生成每天/每周的焊接质量统计——哪个工位、哪个参数设置下缺陷率高。有个焊工师傅看到数据后,自己调整了送丝速度和气体流量,飞溅率下降了约一半。
另一个是质检记录的数字化。以前验厂审核时,焊接质检记录全是手写表格,审核员翻着看也不放心。现在系统自动生成每件产品的焊接检测报告(图片+检测结果),可追溯可导出。
五、踩坑清单
这个项目踩了不少坑,挑几个值得记下来的:
- 弧光干扰比想象中严重得多。我们一开始以为加了滤光片就万事大吉,实际到现场发现相邻工位的弧光散射进来照样影响成像。物理遮光板+滤光片组合才能解决。
- 热雾效应。焊接刚停的瞬间,焊道上方有一层热空气造成的"雾"(热梯度导致的折射率变化),拍出来是模糊的。必须等约0.5-1秒再触发拍照。
- 镜头烟尘。弧焊车间的烟尘量超出了我们的预期,用气吹式自动清洁也不够彻底,后来每周还要人工清洁一次。
- 不同焊道的反光特性差异。光滑焊道和粗糙焊道需要的曝光参数完全不同,单一曝光参数无法覆盖所有情况。
- 温度对相机的长期影响。55度以上的环境温度会显著增加CMOS传感器的暗电流噪声,表现为图像上的随机亮点。隔热+风扇是必要的。
- 缺陷标注规范的一致性。不同标注员对"气孔过大"的判断标准不同,必须提前制定量化标准并做好标注审核。
- 焊道类型之间的模型迁移性差。在排气管焊道上训练较好的模型,直接用到消音器焊道上精度下降很多。需要按焊道类型分别微调或者做分层训练。
- 工人接受度管理。让工人相信"这不是监控摄像头而是辅助工具"需要时间。让工人看到检测结果能帮他们优化焊接操作,他们才会主动配合。
- 产线停机时模型没法更新。所有模型推理在本地运行,但模型更新需要联网下载新权重。有一次产线网络断了2天,新训练的模型版本推不上去。后来加了离线更新方案——U盘拷权重文件到网关本地。
六、个人的思考
做完这个项目,我对焊接视觉检测有了几点比较深的感受:
焊接检测是AI视觉里比较特殊的一类。做普通的外观检测(PCB、包装、印刷),光学设计相对成熟,问题更多在模型层面。但焊接检测首先是一个光学问题——在弧光、高温、烟尘的恶劣环境下拍到一张合格的图像,这件事本身就占了项目的一半工作量。
真实产线的条件永远比想象的恶劣。35度车间、55度相机温度、弧光散射、油烟附着——这些是标准实验室环境里根本不会遇到的问题。做工厂项目的经验就是:永远把"现场条件比预期差50%"作为设计前提。
数据闭环的价值被低估了。很多工厂做AI质检只是为了筛选不良品,但忽略了检测数据本身——每个焊道的缺陷记录、每个焊工的质量统计、每个参数设置下的缺陷率变化——这些数据可以用来反过来优化焊接工艺。这才是长期价值所在。
这类项目适合渐进式推进。如果一开始就说"我给你们每条线都装一套",老板肯定犹豫。先装一条线试跑一到两个月,效果可见了再推进剩下的产线,这种方式双方都轻松。
七、给你的建议
如果你也在考虑焊接视觉检测,几点供参考:
- 别急着选相机和模型——先到产线上搞清楚您的弧焊类型(MAG/MIG/TIG/激光焊),每种焊接的弧光特性和烟尘量完全不同,方案设计差别很大
- 光学验证阶段至少留出2-3周时间。拍不到清晰图像之前,别开始任何模型方面的工作
- 缺陷样本不够是常态,主动设计加速试验(有意偏调焊接参数)来生成缺陷样本,比被动等缺陷发生快得多
- 先覆盖检出率较高的缺陷类型(飞溅、气孔),再逐步增加难以检测的类型(裂纹、未熔合)
- 不要忽视环境防护——高温、粉尘、振动都会影响设备寿命。工业相机和边缘网关建议加装工业防护外壳(IP65以上)
- 让焊工参与进来。他们对焊接过程的了解比任何算法工程师都深,他们的经验可以帮助你理解哪些缺陷是关键的、哪些是可以接受的