铝镁合金装配件视觉检测实战:破解高反光表面缺陷识别难题
2026/9/16 5:53:24 网站建设 项目流程

干了十几年机器视觉,这几年最深的感受是:行业里真正难啃的骨头,往往不是那些高精尖的半导体检测,而是看起来很“传统”的汽车零部件装配。前阵子我们团队刚交付了一套铝镁合金装配产品的在线视觉检测设备,用在汽车底盘轻量化零部件的产线上,专门盯装配质量。这套东西不是什么实验室里的黑科技,就是把打光、成像、算法、产线联动这些事一项项做扎实。今天把这个项目的完整思考和实操过程整理出来,希望能给正在评估视觉检测方案、或者被现场漏检误检折磨的同行一些参考。

这类项目的核心矛盾其实就一句话:铝镁合金压铸件表面反光强、材质纹理乱,加上装配工序节奏快,靠人眼盯根本盯不住。螺栓有没有漏打、密封圈装没装到位、卡扣是不是歪了,这些问题看起来不大,但一旦漏到整车厂,轻则退货索赔,重则影响行车安全。所以这套设备解决的,就是在节拍内稳定、准确、可追溯地把装配缺陷找出来,而且要把误检率压到让现场工人愿意信任它、依赖它的程度。

1. 项目背景与需求拆解:为什么铝镁合金装配件是视觉检测的“硬骨头”

1.1 铝镁合金材料本身的检测难点

先说材料。铝镁合金这几年在汽车上的应用越来越多,尤其是新能源汽车为了减重,前后副车架、控制臂、转向节、电池包壳体这类结构件大量采用铝合金压铸或镁合金压铸成型。这玩意儿重量轻、强度好,但给视觉检测带来了三个麻烦。

第一个麻烦是表面反光。铝镁合金压铸件从模具里出来以后,表面状态千差万别,有的是亚光面,有的是亮面,还有的是抛光区域和喷砂区域混在一起。强光一打上去,会产生大面积的高光斑块,这些斑块会把底下的装配特征完全淹没。比如说你要检测一个螺栓是否漏装,如果螺栓头正好处在一个反光区域里,普通的成像方案拍出来的就是一片白,别说算法判断了,人眼都看不清。

第二个麻烦是表面纹理太“脏”。压铸件表面天然带有模痕、流痕、轻微的拉伤和氧化色差,这些在图像上表现出的灰度变化,有时候比真正的缺陷还要明显。一套算法如果只是简单地设个灰度阈值,很容易把这些伪缺陷当成真缺陷报出来,结果就是误检率居高不下,现场工人天天对着报警复位,最后干脆把检测设备屏蔽掉。

第三个麻烦是材料本身的一致性差。同一批产品,不同模穴出来的表面状态可能不一样;同一只产品,放置角度稍微偏一点,反光位置就全变了。这对检测稳定性提出了非常高的要求,不能靠“碰运气”式的成像方案,必须从光源和算法两个层面同时下手。

1.2 装配工序的质量风险点

再说装配。铝镁合金零部件的装配工序,一般包括压装衬套、拧紧螺栓、装卡扣、插接密封圈或塑料件、涂胶等。从质量风险的角度看,最需要视觉盯住的是几类问题:

  • 缺件。比如某个位置该有螺栓,结果漏装了。这是最严重也最常见的问题,往往发生在操作工疲劳、换班或者中途打断后重新启动的节骨眼上。
  • 错装。比如长短螺栓混装,或者不同规格的卡扣装错了位置。长短差异有时候只有几毫米,人眼快速扫过根本看不出来。
  • 位置偏移。比如卡扣虽然装上了,但没卡到位,偏了或者翘起来了;密封圈装歪了,压偏了;衬套压入深度不够。
  • 异物残留。比如铝屑、毛刺掉落在装配面上,或者定位孔被堵住了。这类问题在压铸件后处理工序里特别常见。

这些缺陷有个共同特点:它们往往是“局部小特征”,可能只占整个视野的1%都不到。这就意味着检测系统的分辨率、成像质量和算法定位能力都必须达到相当高的水平,不是说买一台通用视觉检测设备随便一摆就能对付的。

1.3 人工目检的真实困境

很多工厂现在还在用人工目检,但说句实在话,人工目检在铝镁合金装配件上能发挥的作用非常有限。我见过太多这样的场景:质检员坐在产线末端,手里拿个强光手电,对着流水线上一个接一个过去的产品快速扫一眼。一个产品留给质检员的时间往往只有十几秒甚至几秒,在这种节拍下,要让一个人同时记住十几个检测点还不出错,太难了。

而且人眼对于高反光表面的细小异常本来就敏感度低,看久了花眼,换个班次标准又不统一。我们做过初步统计,在一条节拍为30秒一件的装配线上,人工目检的漏检率通常在5%到15%之间,这对于追求零缺陷交付的主机厂来说是不可接受的。

所以说到底,这套设备的本质,是把“人眼+经验”变成“相机+算法+数据”,把质量判断从主观变成客观,从离散变成连续,从不可追溯变成每一步都有记录。

2. 视觉检测方案的整体架构与硬件选型

2.1 检测流程的前期梳理

拿到这个项目时,我们做的第一件事不是选相机,而是把所有装配工位从头到尾走了一遍,把每一个可能出错的环节列成一张检查清单。这个清单非常关键,它是后面所有技术方案的地基。

清单里每一项要写清楚:缺陷是什么、出现在哪个面、大概的尺寸范围、允许的公差是多少、检测节拍要求多少。比如某转向节产品,要求检测前副车架右前安装点的一个锥形垫圈是否装配到位,垫圈的可见面积大约是12mm×8mm,装配允许的偏斜量不能超过1mm,节拍要求40秒内完成一个包含6个检测工位的完整检测循环。这些数字不量化清楚,后面选相机、设计光源都是空的。

我们把这个项目拆成了六个检测工位:工位一检测顶面螺栓装配情况,工位二检测侧面卡扣到位情况,工位三检测底面密封圈装配,工位四检测衬套压装深度,工位五检测定位孔是否被异物遮挡,工位六做字符和二维码的识别追溯。每个工位检测的点位、算法逻辑、判定标准都事先定义好,现场调试时就不会手忙脚乱。

2.2 相机与镜头的选型逻辑

选相机这件事,很多人第一反应是看分辨率,觉得像素越高越好。但实际上,对于在线检测系统,分辨率够用即可,追求过高像素会带来几个麻烦:相机帧率下降、图像传输带宽压力大、算法处理时间变长、成本成倍上升。

这里我给一个常用的计算逻辑。以其中一个检测工位为例,产品在这个工位的视场范围大概是200mm×150mm,需要稳定检出的最小特征是直径1mm的螺栓垫圈边缘缺失,为了给算法留出足够的余量,最小特征在图像上至少要占5个像素。那么单方向的像素数至少为:200除以1再乘以5,等于1000像素,另一个方向是150除以1再乘以5,等于750像素,算下来至少需要1000×750约75万像素。但这是理论最小值,实际还要考虑镜头畸变、图像边缘清晰度下降、产品定位误差等因素,通常取3到5倍余量比较稳妥。所以我们在这个工位选了500万像素的面阵工业相机,既保证精度,又不会拖累节拍。

镜头方面,为了控制畸变选了远心镜头或者低畸变定焦镜头。远心镜头的好处是放大倍率恒定,物体在景深范围内上下浮动,图像大小基本不变,这对于测量类检测特别重要。但远心镜头贵且体积大,如果有的工位只需要做存在性判断,不需要精确测量,用普通的定焦工业镜头就够了,性价比较高。这个取舍要结合具体检测项来定,不要一上来就全部上远心。

2.3 光源方案的层次化设计

光源是整个系统里最容易被低估的一环,也是我这些年调试中投入精力最多、回报最明显的地方。对于铝镁合金这种高反光材质,光源打得不好,再贵的相机也是白搭。

我们采用了“分层打光”的思路,不指望一种光源解决所有问题。

  • 对于需要检测表面字符、二维码和螺栓头部特征的区域,用同轴光源,光垂直打在物体表面再垂直反射回来,能够很好地抑制表面纹理干扰,把字符和边缘特征拍得干净利落。
  • 对于需要突出边缘轮廓、检测卡扣是否翘起或垫圈是否到位的区域,用低角度环形光源,光以很小的角度掠射在物体表面,凹凸不平的地方就会形成强烈的明暗对比,卡扣翘起来一个小角度都能看得清清楚楚。
  • 对于大面积的表面缺陷和异物检测,用穹顶光源或者多角度条形光组合,让光线均匀弥散,减少高光点,保证整个视野的亮度一致性。

光源的亮度、角度、颜色(通常用白色或红色)、频闪方式都要在调试阶段反复试。铝镁合金工件的反光特性比较复杂,同一个工件换个角度反光位置就变了,所以光源固定后还要配合工件定位治具,尽量减少产品在视野中的位置变化。

3. 核心检测算法与判定逻辑的实现细节

3.1 缺件检测:模板匹配加区域灰度特征

缺件检测是装配质量检测里最基础也最重要的算法。我们的做法是先建模板,再在实时图像上做归一化相关性匹配,定位出每个检测目标的位置,然后在目标区域内计算灰度统计特征,和模板进行比对。

但有一个细节特别值得注意:如果只做整体灰度比对,对于螺栓漏装这种场景,因为螺栓头区域在非反光条件下可能和背景灰度接近,容易漏判。所以我们在此基础上增加了一个边缘密度特征的计算。具体来说,就是提取检测区域内的强边缘像素数量,螺栓头拧紧后会有清晰的六角轮廓边缘,而漏装时这个区域是平面,边缘密度会显著降低。通过灰度均值和边缘密度两个特征联合判断,误判率能压到非常低。

另外,模板匹配这个环节要特别注意产品定位误差。虽然工位上有定位治具,但在生产线上机械定位难免有松动,产品每次摆进来的位置都会有零点几毫米的偏差。如果按照固定模板位置去做后续处理,很容易出问题。我们的做法是先做全局配准,利用产品的整体轮廓特征把图像的偏移和旋转校正过来,再做局部检查。

3.2 位置偏差检测:亚像素边缘定位

卡扣是否卡到位、密封圈是否装歪,这类位置偏差检测比简单的缺件检测要难一个档次,因为它不是“有和无”的问题,而是“有没有偏、偏了多少”的问题。

这里我们用的是边缘拟合加几何约束的方法。先把检测区域的边缘亚像素级提取出来,然后拟合成直线或者圆弧,再计算这些几何元素之间的相对位置关系,和标准值做对比。亚像素算法可以将边缘定位精度提高到0.1像素甚至更高,配合前面选型时的像素分辨率,实际测量精度可以稳定在正负0.1mm以内,完全满足汽车零部件装配的检测要求。

但请注意,亚像素算法对图像质量的要求也更高。如果边缘模糊,或者有反光干扰造成边缘断裂,拟合出来的几何元素就是错的,测量结果自然不准。所以在这个环节,光源的作用又凸显出来了。我们针对密封圈检测专门做了一个穹顶光源加分光棱镜的成像方案,把密封圈的轮廓拍得清晰锐利,边缘过渡只有两三个像素,拟合就很稳定。

3.3 异物与表面缺陷检测:差异检测加动态阈值

异物残留和表面缺陷的检测,是整个项目里最难的一环。因为铝镁合金压铸件的表面天然就不均匀,有流痕、氧化斑、亮暗交替,这些和真正的异物、划伤在图像上很难区分。

我们的策略不复杂,但是很有效:采用明暗场结合的双通道成像。明场成像突出表面整体的灰度分布,暗场成像把表面的凸起、凹坑、附着物以高对比度的方式呈现出来。异物和划伤在暗场图像中会显得非常亮,而普通流痕和纹理在暗场下亮度很低。这样通过一个简单的动态阈值就能把真缺陷和假纹理分开。

动态阈值的计算方法是:先在暗场图像上计算全图的灰度均值和标准差,然后根据均值和标准差的组合动态确定判定阈值。这样做的好处是适应产品之间的个体差异,不会出现一只产品过亮导致全部误报的情况。当然,阈值的基准也需要定期校验,如果原材料批次变化导致表面状态整体变化,需要重新采集样本来标定。

3.4 程序流程与逻辑框架

整个检测程序的处理流程,说起来脉络很清晰:硬触发采集图像后,先做预处理,包括畸变校正、滤波去噪,然后做全局配准,把产品偏移旋转纠正回来;接着在各ROI区域内跑对应的检测算法;每个区域输出OK或NG结果,汇总到工位控制器;最后通过IO模块把结果发送给PLC,由PLC控制踢料机构把NG品推出线体。

这里要特别强调“硬触发”这个环节。在线检测系统不能用软件自动触发,因为产线速度有波动,软件触发很难保证每次都在相同位置拍照。我们全部采用硬件触发,也就是编码器信号或者光电传感器信号直接接入相机触发接口,确保无论是产线停在什么位置、速度快慢,拍到的图像位置都是可重复的。这个细节如果没做好,后面所有算法效果都会打折扣。

4. 现场安装调试的实操过程与经验心得

4.1 工位改造与相机安装固定

现场安装是整个项目里最“接地气”的部分,也是最容易出幺蛾子的地方。我们去了现场之后,第一步不是装设备,而是先看产线的振动情况。汽车零部件装配线普遍有气动工具、压装设备在运转,地面振动不可避免。如果相机直接固定在产线机架上,图像就会模糊,再好的算法也没用。

我们的处理方式是制作独立的检测支架,支架底部加橡胶减振垫,和产线主体结构完全分离。这个投入很小,但效果立竿见影。另外,相机支架本身要足够厚重,不要用那种细细的铝型材,调试好了之后因为颤振导致对焦漂移的事我见过太多次了。

相机装好后,焦距和光圈的调整也有讲究。先用对焦卡把焦点调到最清晰,然后适当缩小光圈一点,增加景深。为什么要留景深?因为产品在治具上放置时,高度方向难免有微小波动,如果景深太浅,稍微一波动图像就虚了。但光圈也不能缩得太小,否则进光量不足,需要把光源亮度调得很高,又会引发反光问题。这个平衡需要在现场反复试,最终找到一个“甜点位”。

4.2 标定与参数配置的完整流程

系统能稳定运行,标定环节功不可没。我们现场做的标定包括三个方面。

  • 像素当量标定:用标准标定板放在产品平面上,通过软件提取标定板的圆点阵列,计算出每个像素对应的实际物理尺寸。这一步如果不做,后续测量结果没有物理意义。
  • 镜头畸变标定:虽然选用了低畸变镜头,但实际装配后多少会有一些畸变,尤其是视野边缘。通过标定获得畸变系数,在预处理阶段做畸变校正。
  • 位置标定:把机械定位治具的坐标和图像的坐标对应起来,保证ROI区域在每次检测时都圈在正确的物理位置上。

参数配置方面,每个检测项的阈值都需要用一组包含合格品和缺陷品的样本进行验证。我的习惯是每个缺陷类型至少准备200个样本,其中一定包含接近临界状态的“灰区样本”,用这些样本去测试算法阈值,反复调整直到误检和漏检都达到要求为止。

4.3 节拍与检测精度的平衡

在线检测设备最怕的就是“拖节拍”。我们在设计阶段就明确了整个检测循环要在40秒内完成6个工位的所有检测,算下来每个工位的采集加处理时间不能超过6秒。这个要求并不轻松。

优化节拍主要从三个方向发力。一是缩小ROI区域,不要让算法跑一整幅大图,只处理关键的局部区域;二是优化图像预处理流程,把耗时的滤波操作控制在最小范围;三是用多线程并行处理,一个工位在采集下一张图的同时,上一张图还在处理中。经过三轮优化,整个检测循环控制在35秒左右,留出了余量。

但这里也要提醒一句:节拍优化是有限度的,不要为了赶节拍把算法搞得太激进。检测系统的第一要务是稳定性,如果一个复杂的检测项需要更长的时间才能判准,就该考虑增加一套相机形成并行采集,而不是强行单相机提升帧率。

5. 运行阶段常见问题与排查技巧

5.1 误检率偏高的排查方向

设备上线初期,误检率高是最常见的问题。我们的经验是,遇到误检先别急着调算法,先看图像。把报警时刻的原始图像调出来,逐张看,找到共性。

如果误检总是发生在某个区域,大概率是光源在这个区域形成了固定反光。处理方式是调整光源角度或者在该区域加一个微小的挡光片,把反光压下去。 如果误检不是固定的,一会儿有一会儿没有,那就要看环境光的干扰了,尤其是厂房里天窗、叉车灯光、相邻工位的照明,这些不可控的光源会在某个时刻恰好照进检测视野。对策是加遮光罩,把检测区域和周围环境隔离开。 如果误检图像看起来和正常图像几乎一样,那就要怀疑是不是算法本身的特征选择不够鲁棒,需要重新提取更稳定的特征。

5.2 漏检问题的系统排查

漏检比误检更可怕,因为误检最多是浪费产能,漏检是直接放走不良品。漏检排查的思路和误检类似,也是先看图像。漏检往往是缺陷特征在特定角度、特定光照下消失导致的。

我遇到过最典型的案例是密封圈压装偏移检测漏判。后来查了发现,产品在某个角度摆放时,密封圈的偏斜方向正好与光照方向平行,阴影被压缩到几乎不可见。解决方案是在原来光源的对面加了一路补充光源,让两个方向的光线交叉照射,这样无论密封圈往哪个方向偏斜,都会产生明显的阴影投影。

另外一个常见的漏检原因是产品表面油污或脱模剂残留。油污会把缺陷区域糊住,导致特征不明显。这个不能在视觉系统里硬扛,要和工艺部门协调,在检测工位前增加一道吹气清洁或者擦拭工序。

5.3 长期稳定性的维护要点

视觉检测设备上线后不是一劳永逸的,长期运行的稳定性关键是预防性维护。我总结了几个检查项:光源亮度会随着使用时间衰减,建议每月用标准参考板测一次亮度并记录,当亮度衰减超过初始值的20%时要考虑更换光源;镜头表面和光源罩板容易积灰,必须定期清洁,否则图像上会出现固定的灰尘斑点导致误报;相机散热和电源稳定性也要盯住,工业现场电压波动大,建议给检测系统配稳压器。

还有一个容易被忽视的点:产品工艺变化会给检测系统带来新的压力。比如模具修模、材料供应商更换、表面处理工艺调整,都可能导致原本正常的检测参数突然失效。工厂内部应该有这样一个流程,当工艺发生变更时,通知视觉检测负责人做一轮样本复验,及时调整参数。

设备的最终目标是让产线质量受控且可追溯。我们在项目中给每件产品建立了唯一的二维码标识,检测结果实时上传MES系统,一旦某个批次出现批量NG,系统可以直接追溯到具体某个工位、某个时段甚至操作人员。这种数据和流程的闭环,才是在线检测设备真正产生价值的地方。我个人的体会是,视觉检测这类项目,从来不是买一套设备装上就能见效的,需要现场工程师有足够的耐心去打磨细节。光源角度偏几度、支架固定方式差一点、阈值留的余量少了,结果可能就是天壤之别。希望这篇文章里记录的这些实战细节,能给准备在这个方向投入精力的同行一些实实在在的参考。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询