入行十几年,天天跟尺寸打交道。说句实话,以前总觉得做测量最稳的是三坐标,直到后来项目里被视觉测量狠狠上了一课——才明白这东西用好了是真香,用砸了也是真能让人抓狂。
别急着问我原理,先看一个场景。产线上几百个零件,要求测一个孔径,公差±0.02mm。人工抽检?累死不说,还容易漏。三坐标?慢,而且还得恒温恒湿,动不动就报警。这时候视觉测量冲上来,一拍一个准,速度还快。
但等你真上手了,就会发现事情没那么简单。光圈、曝光、光源角度、标定板……每一个都能让你怀疑人生。
一、视觉测量到底在测什么?
说白了,就是把图像变成坐标,再用坐标算尺寸。核心说到底就是像素和物理单位之间的换算。你看到的是一个圆,机器看到的是一堆黑白灰的亮度值。
要想测得准,首先得把图像拍清楚。这一步比什么都重要。我见过太多人拿着高分辨率相机拍出来的图像糊成一片,还怪软件不行。其实啊,对焦都没对好,谈什么精度?
这里有个经验值:一般来说,边缘的对比度至少要30以上,不然边缘检测的稳定性会很差。别问我这个数字哪来的,师傅教我的,用起来靠谱。

二、选型:预算、精度和现场条件的博弈
如果项目给你提了个需求,比如视野100mm,精度要求0.05mm,那你就得算算需要多少像素。很简单,视野除以精度,得到的就是单方向的像素数。100/0.05=2000,所以至少2000像素。但这是理想状况,实际上边缘检测通常能到亚像素,比如1/10像素甚至更高,不过那得看你的算法和图像质量。
我第一次做视觉测量的时候,天真地以为只要像素够多就行。结果用了500万像素的相机,视野倒是大,可实际精度还不如人家200万像素的小视野。你说气不气?
原因其实不复杂:视野大了,单个像素对应的物理尺寸就大了,精度自然上不去。所以啊,选相机不是越大越好,得按你的实际需求来。
光源更是门玄学。背光、环形光、同轴光……每种都有脾气。比如测光滑金属表面,用同轴光能避免反光斑,但价格也美丽得很。

这里还有个坑:镜头畸变。哪怕是号称远心的镜头,边上也会有畸变。所以标定的时候就得把畸变消除掉。记得用标定板多拍几张不同角度,然后算参数,别偷懒。
三、精度链:每一个环节都在偷偷吃掉你的误差
视觉测量的误差来源可太多了,你得挨个捋一遍。传感器分辨率、镜头畸变、光源稳定性、安装震动、标定精度……稍微有一个不靠谱,最后的结果就飘了。
举个我自己操盘的项目。当时测一个圆柱端面的直径,按道理说重复精度能到±2微米,可是现场测出来就是±10微米,怎么调都下不去。后来查了半天,发现是光源在发热,导致光强变了,严重影响了边缘提取。
你问怎么办?很简单,把光源换成了恒流源驱动,再在算法上做了个中值滤波,瞬间就稳定了。所以,经验真的很重要。
再一个,标定你得定期做。生产现场振动、温度变化、相机松动,都会导致标定失效。建议每次换产品线或者运行一个周期后,都重新标定一次。别嫌麻烦,否则检测数据就是笑话。
用到哪些标准?国标里可以参考GB/T 1958-2017关于几何公差检测的规定。如果有需求,还可以看ISO 10360系列,不过那是针对三坐标的,视觉测量没有完全对应的国标,所以很多企业都是自己定义验收规范。

四、现场调试:那些让你挠头的毛病

实验室里跑得好好的程序,一到现场就拉胯,这几乎是魔咒。
先是震动。视觉系统对振动特别敏感,哪怕是一丁点抖动,图像就会模糊。你可能会说:我用的是快门啊,但别忘了,环境光下,曝光时间一长,全完蛋。我建议你把相机架在稳固的支架上,并且用外部光源同步触发,减少运动模糊。
然后是反光。金属表面、玻璃、塑料薄膜,全都让人头疼。有一次测黑色塑料件上的一个光孔,怎么都拍不出边缘,后来把环形光改成低角度照射,立竿见影。记住,改变光源的角度往往比换相机更奏效。
还有环境光干扰。车间里灯光忽明忽暗,你如果用机器视觉做高精度测量,最好加个遮光罩,或者用偏振片,不然数据的稳定性就是玄学。
有时候,软件怎么调都不理想。这时候别死磕,想想是不是该换思路。比如我们有一次测一个很浅的划痕,用轮廓检测怎么都不行,后来改用灰度突变检测,一下子就好使了。多学点图像处理算法,没坏处。
五、写在最后:机器视觉测量真的难吗?

要说难,确实需要懂光学、懂相机、懂算法、懂机械设计的防震结构。但要说简单,只要你把基础原理吃透,再摸清楚现场的脾气,很多问题都只是纸老虎。
我见过太多人一上来就追求高像素、高帧率,结果被现场干扰打得体无完肤。坦率地讲,踏踏实实做好标定、选好光源、控制好环境,就已经成功了一大半。
行了,就说这么多。要是你在视觉测量上也碰到过什么奇葩事儿,欢迎一起交流。