石鑫华视觉 发表于 2016-5-26 10:26:48

NI LabVIEW Vision 自定义找圆算法

本帖最后由 石鑫华视觉 于 2016-6-15 12:44 编辑

NI LabVIEW Vision 自定义找圆算法http://visionbbs.com/data/uploads/allimg/151125/2-151125162037.jpg
NI Vision Find Circle与石鑫华自定义找圆效果对比
我们知道NI Vision中有一个现成的找圆函数Find Circle,用于找圆。可以测量圆的直径、半径、圆度、信噪比等:http://visionbbs.com/data/uploads/allimg/151125/2-151125162038.jpg
NI Vision自带的找圆函数
这个找圆函数,用于一些圆轮廓质量非常好的项目中还是非常好的,不过只要图像质量差一点,它就显得有点力不从心了。如圆度就不能很好解决,图像明显不圆,输出的圆度值却非常小(小表示很圆);如果找圆时只有少量的边缘点,也会自动拟合出一个圆。这些问题,都是现有的函数不能解决的。因此石鑫华利用NI Vision的其它函数,进行了一些优化,可以得到更理想的测圆函数。下面先来看一些图像,首先使用NI的VBAI来看一下效果(VBAI就是NI Vision中自带的找圆函数):http://visionbbs.com/data/uploads/allimg/151125/2-151125162043.jpg
VBAI中找圆函数
http://visionbbs.com/data/uploads/allimg/151125/2-151125162044.jpg
找圆参数
找圆参数设置为方向是由里向外;边缘极性是黑到白;查找对象是第一边缘点;最小边缘对比度为50;内核尺寸为15;投影宽度为15;搜索线间距是5。http://visionbbs.com/data/uploads/allimg/151125/2-151125162046.jpg
判断的值为直径和圆度偏差
判断标准为圆的直径与圆度以及很差的图像上是不是能正常识别圆:http://visionbbs.com/data/uploads/allimg/151125/2-151125162049.jpg
图像1效果
对于图像1,可以看到上面有内弧(是产品上的一个鼓簧露出引起的),但是VBAI给出的偏差只有1.29像素?真的只有1.29像素吗?有这么好?http://visionbbs.com/data/uploads/allimg/151125/2-151125162052.jpg
图像2效果
图像2是一个变形的产品,可以看到其中的圆右边是往里陷的,这样测量的圆度也只有1.77,根本是无法测量的意思呀。http://visionbbs.com/data/uploads/allimg/151125/2-151125162054.jpg
图像3效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162058.jpg
图像3边缘细节
对于图像3,可以看到,右上角位置的鼓簧露出明显,边缘都在内部的鼓簧上,但是测量出来的圆度只有2.03像素,这种小几个像素的值根本无法判断其OK与否。http://visionbbs.com/data/uploads/allimg/151125/2-151125162100.jpg
图像4效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162103.jpg
图像5效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162106.jpg
图像6效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162111.jpg
图像7效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162114.jpg
图像8效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162117.jpg
图像9效果
图像9比较理想的一个产品,可以看到圆度偏差值很小。http://visionbbs.com/data/uploads/allimg/151125/2-151125162119.jpg
图像10效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162122.jpg
图像11效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162125.jpg
图像12效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162128.jpg
图像13效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162130.jpg
图像14效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162133.jpg
图像15效果
图像15是一个没有放置产品的图像,但是因为ROI靠近治具边缘,也得到了一个圆,虽然其直径变大了,但是看其圆度仍然只有2.99。这种错误应该是不可接受的。对于这种情况,肯定是不能认为其中有圆的。
下面我们再来看一下石鑫华自定义的找圆函数的效果,首先要看一下干扰系数为1时的效果。本效果中,函数边缘对比度也设置为50,搜索线间距也是5,方向里外到,边缘极性黑到白,内核大小15,投影宽度15,最小边缘点数为20:http://visionbbs.com/data/uploads/allimg/151125/2-151125162137.jpg
图像1效果
图像上的圆度方差为58.14(圆度方差为圆度标准差的平方,可以只看方差,这样拉开的距离会更远),圆度标准差为7.63。在VBAI中,这个图像的圆度差是1.29像素。从这数据可以看到,二者的差别非常大。但是后面那些比较好的图像,其实差别比较小。请接着往下看:http://visionbbs.com/data/uploads/allimg/151125/2-151125162141.jpg
图像2效果
图像2中的圆度方差达到了149.09,这个值已经远远的超过了VBAI中的1.77,甚至圆度标准差12.21都比VBAI中的要大。这样拉开距离,才能更利于判断其是否圆。http://visionbbs.com/data/uploads/allimg/151125/2-151125162146.jpg
图像3效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162150.jpg
图像4效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162154.jpg
图像5效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162158.jpg
图像6效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162202.jpg
图像7效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162206.jpg
图像8效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162210.jpg
图像9效果
    图像9中看到,比较理想的圆时,圆度方差仅为5.62,标准差为2.37,这个理VBAI中的0.32值差距比较小。这样说明如果要判断圆度,可以将圆度标准差设置在几十或一百多的样子,这样不圆的都可以测量,而比较圆的图像圆度方差只有几或几十的话,是可以通过测量的。http://visionbbs.com/data/uploads/allimg/151125/2-151125162214.jpg
图像10效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162218.jpg
图像11效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162222.jpg
图像12效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162226.jpg
图像13效果-圆度方差只有3.93-VBAI中为0.26
http://visionbbs.com/data/uploads/allimg/151125/2-151125162230.jpg
图像14效果-圆度方差为2.51-VBAI中圆度差为0.18
http://visionbbs.com/data/uploads/allimg/151125/2-151125162234.jpg
图像15效果
图像15中的效果,在自定义找圆函数中,则没有找到圆。在VBAI中是可以找到一个错误圆的。自定义算法有其更强大的地方。下面我们再把干扰系数降低到0.9,这样可以避免掉10%的干扰点,圆度方差和圆度标准差会更小:http://visionbbs.com/data/uploads/allimg/151125/2-151125162238.jpg
图像1效果
降低干扰系数后,圆度方差为43.47,而未也不降低前为58.14,降幅比较明显。http://visionbbs.com/data/uploads/allimg/151125/2-151125162242.jpg
图像2效果
图像2中的虽然降低了近50的方差,但是仍然有超过100,所以这种产品仍然会是不良产品(当设置的方差大于100时就可以检测出来)。http://visionbbs.com/data/uploads/allimg/151125/2-151125162247.jpg
图像3效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162251.jpg
图像4效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162255.jpg
图像5效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162259.jpg
图像6效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162303.jpg
图像7效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162307.jpg
图像8效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162311.jpg
图像9效果-圆度方差降为4.1
http://visionbbs.com/data/uploads/allimg/151125/2-151125162315.jpg
图像10效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162319.jpg
图像11效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162324.jpg
图像12效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162328.jpg
图像13效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162332.jpg
图像14效果
http://visionbbs.com/data/uploads/allimg/151125/2-151125162336.jpg
图像15效果-仍然未找到圆
http://visionbbs.com/data/uploads/allimg/151125/2-151125162340.jpg
图像15将最小边缘点数设置为17时,可以找到一个错误的圆
如上图所示,当将最小边缘点数设置的比较小时,也是会找到错误的圆的。所以这个最小边缘点数的设定,不能太过小,太小很容易出错。但是NI的找圆函数中,则没有相关的参数可以选择,只要有三个点就可以拟合出一个圆,而对于拟合出来的圆到底对不对,NI则不负责的。
所以从以上效果来看,本算法还是有一定的优势的。本算法已经成功应用于上图中的产品的内径测量,最开始也是使用NI Vision中的找圆算法,但是很多问题确实无法解决,就是因为其圆度的表述非常有问题。明明不圆的产品,其圆度也只有两三个像素。根本无法区别开来OK、NG产品,所以才自己定义找圆函数的。

算法仅售200元,购买地址:
NI LabVIEW Vision 自定义找圆算法_源代码_图像处理_机器视觉商城_LED光源_控制器_工业相机_镜头_图像采集卡_视觉配件_方案_系统_图像处理源代码_培训教程_论坛_机器视觉论坛_石鑫华视觉
https://shop128020756.taobao.com
淘宝店铺购买:
https://item.taobao.com/item.htm?id=524577015039

或者购买本帖附件:




页: [1]
查看完整版本: NI LabVIEW Vision 自定义找圆算法

LabVIEW HALCON图像处理入门教程(第二版)
石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23