带学生练机器视觉定位,我把教材里的"标准答案"删了

上周三下午的智能制造综合实训课,第三组的男生蹲在实验台边盯了二十分钟屏幕,把工业相机的光圈拧了三圈又拧回来,最后抬头跟我说,老师,我按教材上写的参数调的,为什么定位误差还是超0.2mm。我凑过去看,他把相机架在离被测PCB板刚好30cm的位置,光源打在板的正上方,连相机的畸变校准文件都按教材给的路径导进去了,一切看起来都对。 错的。

别先教算法,先教”找光”

很多学生进实训室的第一反应,是翻开电脑里的视觉算法软件,上来就调识别阈值、改模型置信度,仿佛只要算法参数调得够细,哪怕前面的成像一团糟,也能把定位精度拉上来。 上次有个做手机中壳定位的小组,拿环形光源从正上方打光,阳极氧化的反光直接把相机传感器过曝成一片泛白的光斑,他们还在那把识别阈值从0.8降到0.3,折腾了一下午,识别率连50%都到不了。
机器视觉定位实训台环形光源打光角度对比图
机器视觉定位实训台环形光源打光角度对比图
我后来干脆在课上把算法软件的权限锁了二十分钟,要求所有小组不准碰电脑参数,拿测光表对着被测件的不同位置测亮度,要求同一块工件表面的亮度差不超过10%,达标了才能解锁软件。 没人会反对。但学生不信。 直到他们发现,只要把光源的角度从正上方斜挪45度,加一片偏振片把金属反光压下去,哪怕算法参数一点不改,识别率直接从40%跳到98%。 90%的机器视觉定位误差,根源从来都不是算法精度,是前端的光学成像质量。你总不能指望算法从一片过曝的白块里,精准算出工件的坐标吧。

精度不是靠相机堆出来的

刚开这门课的时候,教材里明明白白写着,要达到0.01mm的定位精度,必须选配1200万像素以上的全局快门工业相机。学生们记的笔记工工整整,报采购清单的时候,第一优先级永远是挑最贵的相机,剩下的预算买个普通铝型材支架、凑个几十块的环形光源,就算完事。 去年带的一支参赛队伍,一开始也是照着这个清单买的1200万像素相机,最后测出来的定位误差稳定在0.15mm,离参赛要求差了一大截。后来他们干脆把相机退了,换了个500万像素的入门款,把工作距离从30cm压缩到15cm,把视场从100mm缩到50mm,配了个能锁死的精密滑台,最后测出来的定位精度稳定在0.008mm,比之前的方案好一倍。
机器视觉定位精密滑台安装结构实拍图
机器视觉定位精密滑台安装结构实拍图
我现在上课第一节课就给学生算一笔最实在的账:你用的工业镜头畸变率是0.1%,视场范围100mm,光畸变带来的系统误差就有0.1mm,你就算换个4800万像素的相机,这个误差也消不掉。 机械结构的刚性、安装面的平面度、相机支架的共振频率,这些看不见的机械细节,对定位精度的影响,比你换贵三倍的算法大得多。 说出来你可能不信,之前有个组的定位坐标飘移问题,折腾了整整一周,最后查出来是相机支架的固定螺丝没拧紧。把螺丝按扭矩要求拧完,误差直接从0.5mm降到0.03mm。学生当时脸都绿了,说之前花了那么多时间调模型参数,居然栽在个螺丝上。

别让学生为了”完成项目”凑数据

之前的实训考核,我定的标准是定位误差稳定在0.1mm以内就算合格。直到某次评阅作业,看到有个小组为了达标,把被测件用502胶水死死粘在平台上,光源角度调到刚好让工件边缘亮得发灰,相机参数锁死,换个稍微有点翘边的工件,误差直接飙到2mm。 这有什么意义? 机器视觉定位本来就是要应对工业现场的各种不确定:工件放歪个10度,表面沾点切削液的油污,车间的照明偶尔亮一下晃到镜头。你把所有变量都控制死了,就算做到零误差,到了现场一样用不了。 我后来把考核标准全改了。不准用胶水固定工件,要求学生把工件随机放在平台上,允许±15度的倾斜偏移,表面沾点工业酒精留下的水印,只要定位误差稳定在0.3mm以内,就算满分。 说实话,我根本不关心学生能不能把识别率做到99.9%。我就想让他们知道,工程上的方案,从来不是在实验室的理想条件下凑出来的。 现在每节课最后留十分钟,我都会让学生给自己的方案”找茬”:把光源挪个位置,用手轻轻敲一下实验台,在镜头前面挡一点环境光,看看自己的定位系统还能不能正常工作。 怕什么误差。误差才是真的。 上周那个一开始蹲在台边拧光圈的男生,最后没靠改任何算法参数,把光源从正上方移到45度斜打,在镜头前面加了片偏振片把PCB板的铜箔反光压下去,定位误差直接稳定在0.12mm。他下课的时候跟我说,原来之前教材上写的”最佳参数”,只是针对教材里那一块没有反光、放得绝对平整的演示板的。 我当时没接话。 毕竟教了这么多年机械设计,最不想看到的,就是学生把书上的参数当一成不变的真理。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:带学生练机器视觉定位,我把教材里的"标准答案"删了
文章链接:https://yqhljx.com/list_9/4556.html