被测产品-隔音布1
被测产品-隔音布2
隔音布的视觉定位,在机器视觉上相对来说比较容易。从上面的产品特征来看,利用产品中的孔洞,即可实现定位。但是因为隔音布本身是软的,实际上解决时,并不是太好处理。按照一般的生产线来考虑,隔音布是一叠一叠的堆放在一起,然后抓取上面的一张,对位贴合到其他产品上。如果是这样子的,那么就需要在一叠隔音布中定位最上面的产品,这时并不是太好定位。因为产品是黑色的,并不是很反光,一叠产品堆在一起时,也不能保证孔就是垂直通向下的,下面也不能摆放面光源得到孔的位置。只能考虑从边上打光,将产品的边缘打亮,从而得到边缘特征,才有可能定位产品。但是边缘定位打光时,一叠产品堆在一起时很容易相互干扰。
利用背景反光得到白到黑的边缘(开孔面光源KFLM-350350-D40-W)
利用背景反光得到白到黑的边缘(开孔面光源KFLM-350350-D40-W)
使用条形光源掠射打亮产品边缘(BLM-46228-W)
使用条形光源掠射打亮产品边缘(BLM-46228-W)
从上面的效果图可以看到,边缘倒是有边缘,但是相互之间有比较明显的干扰。而且这里是利用了背景来做对比的,实际上一叠很厚的产品堆放在一起时,背景是悬空的,会是黑色的,并不会表现出上面的白色反光背景来。效果上可能会大打折扣。
不能直接在堆放一起的产品上打光,那就只能一张一张的来定位。这时可以将产品先粗略的吸到白色的背景板上,然后再使用视觉定位来处理,这样就可以利用隔音布中的孔位来定位。
如果是刚性的产品,使用模式匹配的方式也可以,。每个产品都有几个孔,有比较明显的相对关系。但是这种柔性的产品模式匹配是不可行的。换一个产品后,形状尺寸都会有一定的变化,不一定匹配得到。
模式匹配-模板产品
模式匹配-其他产品明显匹配错误
不能使用匹配的方法,那就只能使用粒子分析的方法,得到孔表示的粒子的中心,然后再连线对角线上两个粒子求其水平角度,这样位置和角度信息就都有了:
利用孔位得到位置和角度信息的VBAI脚本
产品1位置角度数据
产品2位置角度数据
产品3位置角度数据
产品4位置角度数据
先查找到隔音布上的几个孔,使用其中的对角线上的最远的孔来定位产品,得到位置和角度数据,这样就比较容易定位了。
当然,使用上面的孔位方法,即使能落实下来,得到的精度也不会太高就是了。因为产品本身是软的,会有一些褶皱,各个产品本身会存在比较大的误差。
隔音布视觉定位方案视频号解说