机器视觉尺寸外观一体检测算法:从产线踩坑到精度落地的实操细节

上个月帮苏州一家汽车零部件厂做检测站优化,原来分两道工位——一道用3D激光测尺寸公差,一道用工业相机查外观毛刺,节拍卡在12秒/件,良率误判率3.2%,厂长拍桌子说再降不下来成本兜不住。换了套打通的机器视觉尺寸外观一体检测算法之后,节拍压到4.8秒/件,误判率掉到0.18%。

说真的,这东西根本不是什么实验室里的高精尖黑科技,全是踩过的坑堆出来的经验。

别再把尺寸和外观算法“硬拼”了

很多团队做一体检测的思路特别简单,把原来跑尺寸的亚像素算法,和跑外观的缺陷分割模型,塞进同一个程序里就算完事。结果呢?同一幅2000万像素的图像,尺寸算法要做高斯模糊压噪,怕边缘抖动影响测量精度;外观算法要做高频增强提细节,怕漏了细小的划痕。俩预处理流程打架,内存占满,跑起来慢得要死。

我见过最夸张的一套系统,单帧图像预处理要180ms,尺寸拟合230ms,外观分割420ms,加起来快800ms,还没算结果校验的时间,节拍根本压不下去。

真正能落地的一体检测,核心是把单帧图像的特征提取层做共享——边缘梯度特征既可以用来算尺寸的亚像素坐标,又可以作为缺陷检测的输入特征,毕竟毛刺、压痕本质上就是梯度异常的区域,根本没必要做两遍特征提取。

机器视觉尺寸外观双算法共享特征层架构图
机器视觉尺寸外观双算法共享特征层架构图

最早我们做共享层的时候,为了凑尺寸精度,把梯度阈值卡得太严,结果把零件表面直径0.1mm的浅划痕全当成正常的边缘梯度给滤掉了,连续3天漏判,被品质部追着骂。

真的疼。

后来调了特征通道的权重分配——70%的梯度通道给尺寸拟合,保证边缘定位的稳定性;剩下30%的通道保留高频细节给外观检测,不把所有噪点都滤干净,才把这个bug修了。

精度平衡的坑,90%的团队都在交学费

按照GB/T 39264-2020《机器视觉 尺寸测量通用技术要求》,工业零件尺寸检测的示值误差要控制在被检测公差带的1/10以内。举个例子,一个铝合金压铸件的安装孔,公差是±0.05mm,那算法的测量误差就得压到±0.005mm以内,不然计量审核根本过不了。

但外观检测的要求呢?只要是直径≥0.05mm的表面缺陷就得抓得到,漏一个客户都要开8D报告。

这俩要求天生有矛盾。如果为了尺寸精度,把光圈收得很小,景深压得刚好覆盖零件表面,那铝合金面的反光会把缺陷盖得严严实实;如果为了拍清楚缺陷,把光圈开大,景深变浅,零件表面稍微有点高低差,边缘的尺寸误差就会飘得离谱。

我们最后选的是12mm焦距的双远心镜头,畸变率0.02%,工作距离110mm,景深18mm,既保证了整个零件表面的成像清晰度,又把全视野的畸变误差控制在0.002mm以内。

别听供应商吹什么“2900万像素一镜走天下”,上次有个团队为了省镜头钱,用普通定焦镜头代替远心镜头,最后测视野边缘的安装孔时,尺寸误差飘了0.03mm,连客户的来料检验都过不了,拆了换镜头花了8万多,何苦呢。

铝合金压铸件机器视觉尺寸外观检测现场实拍图
铝合金压铸件机器视觉尺寸外观检测现场实拍图

算法上的校准我们也没走捷径,把外观检测的ROI区域和尺寸测量的ROI区域分开做标定——尺寸ROI用亚像素边缘拟合的方法,每个标定块的坐标误差控制在0.001mm,全流程可追溯;外观ROI的标定重点放在反光区域的亮度校正上,把铝合金表面的高光反射率压到和哑光区域一致,不会出现“测尺寸的时候画面不反光,查缺陷的时候全是光斑”的矛盾。

之前测带倒角的轴类零件,原来的算法把倒角的斜向边缘当成了轴的直径边界,算出来的尺寸差了0.12mm,后来在共享特征层加了个简单的角度过滤分支,只把和轴母线平行的边缘点纳入尺寸拟合,倒角的斜向边缘直接归到外观检测的特征池里,问题一下就解决了。

别把算法当黑盒,误判率的优化全在细节里

很多人觉得一体检测就是上深度学习,模型越新越好。其实真不是。

尺寸测量的部分我们100%用传统亚像素算法,根本不碰深度学习——因为传统算法的测量精度是可追溯的,每一个边缘点的坐标来源都能查到,符合计量要求。要是用深度学习算尺寸,你根本没法给客户解释为什么这次测出来的孔直径差了0.003mm,计量审核那关根本过不去。

外观检测的部分我们才用轻量的分割模型,而且模型的输入不是原图,是共享特征层提出来的梯度特征,这样模型的推理速度能比直接吃原图快60%以上,根本不需要上什么大模型。

一开始模型把零件表面的加工刀痕当成了毛刺,误判率到了1.2%,我们没瞎调模型的权重凑效果,而是在算法前面加了个简单的频域过滤步骤——刀痕是沿着加工方向的周期性纹理,傅里叶变换之后会在特定频率上出现明显的峰值,把这个峰值滤掉,剩下的就是随机分布的毛刺、压痕缺陷,模型的误判率直接掉到0.2%以下。

说实话,很多人觉得一体检测就是把两个算法塞到同一个程序里跑,其实根本不是。你得把每个模块的边界划清楚,哪些地方用传统算法稳,哪些地方用深度学习快,混来混去最后要么精度不够,要么速度跟不上,全是白忙活。

现在这套算法在i7-12700的工控机上跑,单帧图像的全流程处理时间是320ms,加上相机的曝光时间100ms,整个检测流程不到0.5秒。原来分两个工位的硬件成本直接砍了一半,还省了两个工人的工位成本,算下来不到8个月就收回了硬件投入。

上周去那个苏州的汽配厂回访,厂长说现在检测站的员工原来要盯着两个屏幕看外观,现在只需要处理算法筛出来的极少数异常件,每天的工作量少了80%。

其实工业视觉这东西,从来都不是比谁的算法模型新,比谁的参数堆得高。你得真的站在产线的角度想——哪个环节能省成本,哪个地方容易踩坑,把这些细节磨透了,算法自然就好用了。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:机器视觉尺寸外观一体检测算法:从产线踩坑到精度落地的实操细节
文章链接:https://m.yqhljx.com/list_9/4989.html