机器视觉在生产制造中主要用在视觉引导,尺寸测量,产品检测,物体识别等几个领域。

在这几个领域中,一个最基本的算法就是产品识别和定位,比如视觉引导机器人,要在图像中识别出要抓取的产品,并定位出坐标,才引导机器人到指定的产品位置。尺寸测量,产品检测等也是一样的,在测量和检测之前,首先要知道有没有产品,产品的位置在哪里,才可以应用后续的各种分析工具。

高精度视觉识别与定位系统要注意哪些因素?-机器视觉_视觉检测设备_3D视觉_缺陷检测

因此,产品识别和定位是一个基本问题。

如果要设计一个可行的产品识别和定位的算法,需要克服几方面的困难:

1、快速的指定产品:工业产品千差万别。因此,对于每一个具体的应用,需要从几张,甚至一张图像上,快速指定需要查找的产品,比如当前产线需要定位铆钉的位置,拍一张照片并进行相应的学习,就可以在后续的图像中进行搜索定位。

2、快速的搜索产品:对于一张200万像素的图片,通常要求在几十毫秒的时间可以识别和定位出产品的位置。

3、高精度的定位:工业生产对精度和公差有严格的要求,因此产品的定位就要力求准确。现在普遍要求识别定位算法可以达到一个像素级别的定位精度,甚至可以达到亚像素级别。

4、可以适应产品缺失、遮挡、脏污等的影响:如果一个产品被遮挡,导致产品在图像中缺失一定比列,需要依然可以识别定位到物体。反之,如果产品表面发生脏污,导致表面的特征发生变化,需要依然可以识别定位。

5、可以适应光照亮度不均匀的影响:如果产品的亮度发生变化,比如一半亮一半暗,需要依然可以识别定位。

6、可以识别旋转的产品:产品通常可能在360度范围内旋转。

7、可以识别多个产品:一张图像中可能有多个产品,需要分别识别定位。

8、可以准确识别接近对称的物体:接近对称的物体很容易别识别成错误的方向,需要进行相应的设计。

9、可以应对物体的极性翻转:比如学习的产品是白底黑字,但是实际上产品图像有可能是黑底白字,需要可以识别。

深度学习可以解决这个问题吗?

深度学习中目标检测算法(one-stage和two-stages的各种算法),在这个应用中有几方面的难点。

1、数据量:如何在只有一张图像的情况下,学习到需要识别定位的物体?

2、速度:如何在一般配置的PC上达到ms级别的识别定位速度?

传统算法在几千元的工控机上就可以发挥速度优势,然而深度学习需要配置昂贵的GPU,或者在2019年会有一些垂直细分领域的ASIC芯片开发出来。

3、定位精度:考虑到深度学习输入的图像本身都是进行了缩放的图像,那么在原图上很难达到像素精度的匹配。

4、识别准确性:在数据量很少的情况下,怎么提升识别的准确性?考虑到此类问题面临的困难,一般还是用传统的机器视觉方法来实现。