我们公司之前从来没有做过机器视觉项目,管理层对于机器视觉项目的概念也仅限于“用户层面”,什么叫用户层面大家想必都清楚吧?就是那种能提出“根据手机壳颜色动态改变手机屏幕背景颜色”方案的人,这对于一个搞开发的公司来说,可要了命了!这不,仅仅是一个Mark对位功能,我们做起来都是一波三折的!
![]()
首先说一下什么叫“Mark对位”,其实就是客户生产的产品上面有个标记,用来标记位置的,我们叫作“Mark”,一般都是十字形、实心方型或者回字形。
我这次所说的项目,Mark是客户那边通过特殊材料镀出来的,精度很高,用来镀Mark的材料在每个产品里是不一样的,但是,肉眼看基本都呈不透明的黑色,好在我们需要检测的产品是那种透明的钢化玻璃!
之前,我做过类似的项目,根据我的经验,只有在Mark下方,也就是产品下方打背光,检测起来精度才高,代码写起来也容易,也更容易兼容所有产品。
于是,我把我的想法跟老板说了下,老板表示认可,但是,经不住有人在这里面捣乱呀!
我们公司一项目经理也不知道咋想的,不想用背光的方案,还说他之前有过类似的经验,打的基本上是同轴光,所谓的同轴光,就是在相机镜头前面增加一个发光机构或者直接在镜头里面打光,这样一来,相机的感光面积和大光面积差不多就是一致的。
但是,他忽略了一点,那就是需要检测产品的材质,以及Mark的材质,我之前做的项目里面也考虑过同轴光的方案,最后被否决了。
因为检测产品是透明的钢化玻璃,而放置玻璃的基台下面是镂空一个空间,这个空间内啥都有,比如一些支撑件还有电线啥的,甚至有一些指示灯,并且,因为玻璃是由机械手放到基台上的,每次放的位置都稍有误差,这就导致相机拍摄出来的画面背景不纯,比如非纯黑或者非纯白,且因为每次玻璃放置的位置都不一样,背景特征也就是每回都不一样,还有其他光线干扰,最终就可能导致Mark的特征不统一,算法就很难做了!
轴光虽然也能检测Mark,但是因为Mark是材质会反光,导致原本在背光下检测的Mark是黑色的,在同轴光下Mark呈现得是白色的,而且同轴光还不能打太亮,太亮的话Mark也会因为材质问题导致反光看不见,如果同轴光光线较暗的话,则会看到背景上的东西,因为背景不纯,背景里面有其他东西也反射白光,稍微好点的情况,可能就是其他杂色混入Mark本身的形状里,算法想做区分很难,再坏一点的情况就是Mark完全融入到其他光线里面去了,因为这个Mark很小,不到1毫米,背景里面随便一个信号灯都能覆盖掉!
我不是反对使用同轴光,只不过我之前做这个项目的时候,我把客户那边的所有产品都要了过来,发现使用同轴光没办法兼容所有产品,只有背光才能兼容,且背光还比同轴光便宜。
最重要的是,我是有成功的项目经验的!退一万步讲,客户那边还有十几家其他服务商做的方案,100%都用的背光去抓取Mark,前人踩了无数坑留下的宝贵经验,加上我亲自参与过相同的项目,我觉得用同轴光的方法不可取。
最终,我把我的评估报告给了项目经理,然后就去干其他项目去了!
项目经理还想再推翻我的观点,最后我就有点不耐烦了,直接告诉他,如果使用同轴光也可以,但是这个项目机器视觉部分是我做,我的要求就是Mark必须拍摄出来是清晰的,且背景没有其他杂物才可以,他满口答应。
没过多久,项目经理拿着他用同轴光做的打光实验的图片告诉我,同轴光完全可以!
我一看图片,看起来是可以,拍摄出来的几张图片都不错,Mark和背景的对比度都还可以,只不过背景偏黑而Mark偏白,和我的方案出来的效果是反的,我的方案出来的效果是背景偏白,Mark发黑,于是我问他,是不是客户提供的所有产品都试过了,效果都是这个样子?
项目经理很笃定得告诉我,他所有产品都试过了,绝对没有问题,看他这么笃定,我也就陷入了深深地自我怀疑,觉得可能是我当初做同轴光打光实验的时候做得不如人家仔细,我一直认为同轴光是兼容不了所有产品的。
既然人家实验结果表明同轴光可以,那我就按照他给的图片重新做了一套算法。
结果您猜怎么着?真正到项目实施的时候,我发现我当初所说的一点没差,同轴光下,所有的Mark表现都不一样,我最开始Mark使用的是形状匹配算子,因为Mark表现得很糟糕,最后又把算法改成了Blob形式,发现还是兼容不下所有情况,就这样搞了几天,我彻底火了!
我火的原因有几点,当初如果用我的背光方案,项目实施的当天Mark就能检,但是现在,Mark不能检不说,各种方法都试了个遍,都达不到效果,还浪费了时间,想要达到检测效果,只能上深度学习,但这样的话,又增加了项目复杂度。
可是,如果改回背光效果,那么我们所有设备上购买的同轴光都得扔掉,几万块就这么浪费了。
最后,项目经理虽然承认了当初自己在做打光实验的时候并没有把客户所有产品都做了实验,但是,他认为目前情况下,优化下算法还是可以检测出来的。
最后,我直接冷笑道:“不行算法你来写?我能耐不够!”
结果
我跟项目经理因为这个项目搞得还是挺僵的,从稳定性来看,我还是认为打光一致性对于检测准确度来说是重中之重,否则后面不管是用Blob还是用深度学习,会让项目陷入无休止的修改和维护困境中,最后,我只给项目经理提了一个要求,就是告诉他必须用背光,如果不加背光,这个项目我做不了,可以让公司其他人来做。
此时,项目经理似乎感觉到了事情的严重性,答应我去改背光,还不服气得问我,是不是用了背光就一定没有问题?我告诉他,如果使用背光有问题,出了责任我兜着!
项目经理点点头,表示他去张罗采购背光和光源驱动器这个事情。
我不知道项目经理咋想的,可能是不甘,也有可能是这个篓子闯的有点大,不敢上报给老板,迟迟没见背光安排到位,我还是像当初说的,只要背光不到位,我视觉这边就没法做,毕竟,大家都是成年人,要对自己做的事情负责,更何况是职场!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.