第二篇 干货:VisionBuilder如何完成图像检测

前面铺垫性的文章写了很多,但一直没有真正的给大家展示机器视觉是如何真正的辅助工业流水线完成检测工作的。

下面我将用美国的NI的Vision Builder AI软件用具体的案例来给大家展示一下它的工作过程。先上两张图,分别为检测正常的结果和异常的结果.

以下是原始图片。

 

(那张出错的图就是右上解的图像image_03305.jpg)

当然,我们光看图像,顶多也只能知道它有这个作用而已。所以,接下来我将向大家讲解一下它是如何完成这些工作的。 

  这次讲干货,讲仔细一点,看看它是如何工作的。以下面的六个步骤来分步讲解。

第一,获得图像,这个是由工业相机来完成图像采集。

  1.这里稍微说明一下。工业相机与我们普通的相机的区别在于,一工业相机长时间在一个固定的焦上工作,二工业相机取像快,一般动则是每秒上千帧。因为有一些流水线上的物品流速也很快。所以取像也一样需要快。三是工作稳定,因为一般工业相机会配合特定的光源,为的是给图像提供一个稳定的光照。举一个简单的例子。我们白天用手机照相时得到的画质与傍晚的则完全不一样。而流水线上则要求基本上是一样的光照,否则会导致检测出错。所以,一般工业现场的相机都是有光源进行辅助的。当然,如果是纯白天工作,有足够的光照,也可以不用光源。

我们这里是用的原来拍照好的图像,从上面的图也看得出。基本上光照亮度是一样的。

第二,Find left edge distance 12.08 .

这里是查找到左边的边缘。很明显,从左边灰色区最边到黑色的框,找到第一条黑边并拟合成直线,再算一个从左边到黑边的距离,12.08个像素。

这里有两个技术要进行解释一下:

1. 直线拟合,一个纯数学的方式,把边缘上的点拟合成一条直线。首先,我们的图像是二维的,这张图像是640*480的灰度图像,所以每一个像素就是一个坐标。比如0,0就表示左上角第一个像素的坐标。以此类推,通过二值化处理后可以得到一个边缘坐标序列,通过数学方法,将这一系列的坐标拟合成一条直线。这个算法可以简单理解为,随便两个坐标再代入到直线方程:y=kx+b中求出K系数和B系数得到这条直接方程,并且重画这条直线。具体数学方法请找专业资料学习。

2. 12.08的距离,嗯。这个主要是通过综合边缘像素的直线距离。但有另一个专业述语稍微提一下,即亚像素。正常情况下,我们每个像素都是一个完全的像素,不可能有零点几个像素,但是呢,由于拍照时边缘不可能是理想的锐利程序,一定会有一个缓冲过度,这个时候,要说具体哪个像素是边缘的点,就不准确,所以最好是求出一个带小数点的精度,这就是亚像素。可能我的讲解和理解并不准确,有兴趣的可以自行百度进行了解。

第三步:find straight edge1 查找直边,技术上和上面的相似。

第四步,计算角度。这个比较好理解,上面横竖两条直接,形成一个夹角。

第五步:托盘定位。和第六步设置托盘的坐标系统。

直接上图。下图就是计算出来的夹角。有了这个角,就方便下一步的算法的执行。

 

第一段子程序讲完了。接下来再讲下一段子程序,还是先上图。

 

  同样这个程序也是6个步骤。

  第一步,主要是设置参数,设置ROI的区域。这个图像中,图像是640*480,一个托盘的格子大约是193*83左右。

  第二步建立ROI,这个是通过上面的计算后直接定位的,主要作用是表示,只检测这一个区域里有没有巧克力

 

  第三步检测巧克力,下图就是检测结果:明显检测到了。
 

下面详细讲一下这个检测结果:(如图所示)

 

这个是直方图,就是统计出这个绿框中的灰度值的量。很明显,黑色和白色最多,中间灰度比较少。上面也列出统计结果:平均亮度108.70,把所有亮度值相加除以总像素个数。标准误差:92.3.最小亮度,最大亮度。(这个标准误差的计算依据,我就不知道了)

后面的步骤就比较简单了,一个是巧克力数加1.其它的以此类推。下面贴一张检测出错的结果图。如下:

 

很明显直方图中,ROI区域内的黑色明显偏多。而平均亮度值只有14.57,基本上都没有白色区域。从直方图数据就看得出,这个里方没有巧克力。故它在数量上就少了一个,整个盘中没有12个,就判断不合格了。

以上,基本上,就清晰的讲解了整个图像检测在工业现场的应用流程。当然,我们这里基本上主要集中在软件层面,硬件层面没有讲,回头再稍微另起篇幅进行讲解。这个项目中,图像检测应用比较简单,基本上只有两个算法,一是利用边缘检测进行定位,第二就是利用ROI做灰度的直方图来判断该位置上是否用巧克力。其它的算法则主要是统计和判断。

本文结束。如果您喜欢我的文章,请关注我的公众号。也欢迎转发,让更多人看到它。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值