首页> 中国专利> 一种基于人工鱼群算法的圆形工件检测方法

一种基于人工鱼群算法的圆形工件检测方法

摘要

本发明公开了一种基于人工鱼群算法的圆形工件检测方法,属于计算机信息图像处理技术领域。本发明首先对待检测图像进行预处理,获取圆形工件的边缘信息,然后根据待测工件图像的尺寸确定一个三维解空间并初始化人工鱼群,使每条人工鱼随机分布在该解空间中,最后人工鱼群采用自适应视野和步长,通过不断交互并协调行为,在解空间中启发式搜索经过边缘点数目最多的圆,从而得到工件的圆心和半径;本发明与传统霍夫变换检测圆的方法相比,可以实现在参数空间中并行搜索且不需要遍历整个空间,较大地减少了空间和时间开销,也提高了检测的精度,具有快速、准确和鲁棒的特点。

著录项

  • 公开/公告号CN106097307A

    专利类型发明专利

  • 公开/公告日2016-11-09

    原文格式PDF

  • 申请/专利权人 安徽工业大学;

    申请/专利号CN201610374573.X

  • 申请日2016-05-26

  • 分类号G06T7/00(20060101);G06T7/60(20060101);

  • 代理机构32207 南京知识律师事务所;

  • 代理人蒋海军

  • 地址 243002 安徽省马鞍山市花山区湖东路59号

  • 入库时间 2023-06-19 00:50:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-23

    授权

    授权

  • 2016-12-07

    实质审查的生效 IPC(主分类):G06T7/00 申请日:20160526

    实质审查的生效

  • 2016-11-09

    公开

    公开

说明书

技术领域

本发明涉及计算机信息图像处理技术领域,更具体地说,涉及一种基于人工鱼群算法的圆形工件检测方法。

背景技术

圆形特征是机械设计与制造领域基本特征之一,圆形工件几何尺寸的精确测量,不仅可以使零件的加工质量得到保证,而且在提高生产效率方面也起着至关重要的作用。因此圆形工件的检测成了一项既基础又重要的工作。霍夫变换是图像处理中从图形中识别几何形状的基本方法之一,自从霍夫于1962年提出以来,它就很快发展为可检测直线和圆等图形的一种有效方法。

霍夫变换具有鲁棒性强、对噪声不敏感的特性,但由于其高运算量、占用存储空间量大的缺点,不能满足工业检测实时性的要求。为了克服上述缺陷,XU等人提出了随机霍夫变换(Xu L,O ja E.Randomized hough transform(RHT):basic mechanisms,algorithms and computational complexities,Computer Vision Graphic Image Process:Image understanding,1993,57(2):131-154.)。随机霍夫变换主要是将图像空间中随机选取的不在同一条直线上的三个点根据圆的性质,按照一定的规则变换到参数空间中的一个点,构成多到一的映射,然后计算满足所选择点的圆参数。此方法避免了霍夫变换一到多映射的巨大计算量,具有一定的优越性。但对于复杂图像,特别是受到噪声干扰的图像,由于无目标的随机采样会引入大量的无效采样与无用累积,检测结果的随机性很大,时间消耗过多,使算法性能大大降低。

张新雨等人于2014年在《仪器仪表学报》上发表了名为《基于人工鱼群霍夫变换的单晶硅直径检测》的论文,采用人工鱼群算法检测标准椭圆模型,并证明了该算法的有效性,可行性。但该算法主要用于标准椭圆的检测,由于圆形工件边缘呈锯齿状且边缘部分易存在凹陷,应用该算法进行边缘点个数统计时,会导致目标圆的适应度小于某些候选圆(例如该圆部分经过工件的外边缘,部分经过凹陷的边缘)的适应度,即容易受到锯齿边缘和凹陷边缘的影响,进而导致检测到的圆心偏离目标圆的圆心,检测到的半径也小于目标圆的半径,难以满足检测精度的要求。

经检索,中国专利申请号201410454074.2,申请日为2014年9月9日,发明创造名称为:适用于在生产流水线的工业产品外形进行圆弧直径在线检测的方法;该申请案基于机器视觉获取工业产品的数字化图像且进行图像预处理。之后进行图像分割、圆弧拟合。最终,获取亚像素轮廓,并基于亚像素轮廓实现圆弧直径的检测。该申请案依托于工业射线底片,可以有效通过机器视觉实现在线测量与非接触测量。但该申请案计算量较大,时间消耗多,算法性能较差。

中国专利申请号201410359365.3,申请日为2014年7月25日,发明创造名称为:一种面齿轮齿面面轮廓度评定方法;该申请案基于面齿轮传动原理和小偏差假设条件,综合考虑面轮廓度的最小二乘法评定理论以及人工鱼群算法理论,根据实际检测的面齿轮齿面点坐标实现面齿轮齿面轮廓度误差的精度评定。该申请案解决了面齿轮整体齿面精度评价问题,为面齿轮加工后的精度评定提供了一种方法,但该申请案在应用上有其局限性,并不能适用于圆形工件的检测。

发明内容

1.发明要解决的技术问题

为了克服现有技术中对圆形工件检测存在测量精度低、计算量大等技术不足的问题,本发明提出了一种基于人工鱼群算法的圆形工件检测方法;本发明可以实现在参数空间中并行搜索且不需要遍历整个空间,较大地减少了空间和时间开销,也提高了检测的精度;针对圆形工件检测过程中易受工件锯齿边缘和凹陷边缘影响导致检测到的圆心偏离目标圆心问题,本发明在计算圆的适应度即位于候选圆上的边缘点个数时,经过多次实验采用一个较大的阈值T使得目标圆有更多的边缘点,从而使目标圆的适应度大于其他候选圆的适应度且有较大的差异,最终达到消除工件锯齿边缘和凹陷边缘干扰的目的。

2.技术方案

为达到上述目的,本发明提供的技术方案为:

本发明的一种基于人工鱼群算法的圆形工件检测方法,其步骤为:

1)对采集的圆形工件图像进行预处理,并采用Sobel算子进行边缘检测,获取圆形工件的边缘点集S={(x1,y1),(x2,y2),...,(xk,yk),...,(xn,yn)},其中n为边缘点个数,(xk,yk)为第k个边缘点坐标;

2)设定三维向量(a,b,r)表示人工鱼个体X,并根据步骤1)预处理得到的大小为m*n的工件图像确定a的取值范围为[1,m],b的取值范围为[1,n],r的取值范围为[1,min{m,n}/2],建立三维解空间;

3)设定种群规模、视野、迭代次数和拥挤度因子,使每条人工鱼随机分布在步骤2)建立的三维解空间中,对解空间中第i条人工鱼Xi,定义适应度Y用于累加圆(ai,bi,ri)上的边缘点数量,适应度Y公式如下:

Y=f(Xi)=Σk=1nE(ai,bi,ri,xk,yk)

E(ai,bi,ri,xk,yk)=1,|((xk-ai)2+(yk-bi)2)0.5-ri|T0,|((xk-ai)2+(yk-bi)2)0.5-ri|>T

其中,T为设定的阈值;

4)利用步骤3)所述适应度公式计算鱼群中每条人工鱼模拟执行觅食行为、追尾行为、聚群行为和随机行为后的适应度,选择适应度最大的行为执行;

5)选择步骤4)移动后鱼群中适应度最大的人工鱼Xbest=(abest,bbest,rbest)及其适应度放入公告牌中,若在下一次移动后人工鱼适应度大于公告牌中适应度,则更新公告牌中人工鱼及其适应度;

6)随着迭代次数的增加自适应地减小人工鱼的视野和步长;

7)重复步骤4)~6)直至达到步骤3)设定的迭代次数,将公告牌中记录的最大适应度所对应的(abest,bbest,rbest)作为圆形工件几何尺寸参数。

更进一步地,步骤1)所述图像预处理过程为:先对采集的圆形工件图像进行灰度化并中值滤波,然后使用最大类间方差法对图像进行二值化处理和数学形态学处理,所述的数学形态学处理过程为:首先利用形态学闭运算处理图像,之后对图像进行孔洞填充操作。

更进一步地,步骤3)设定种群规模AF_total=40,视野Visual=60,迭代次数Iterate_times=50,拥挤度因子δ=8。

更进一步地,步骤3)中设定的阈值T=5。

更进一步地,步骤4)中所述四种行为描述如下:

A.随机行为:对于人工鱼Xi=(ai,bi,ri),在视野内随机选择一个位置,然后向该方向移动:

XiNext=Xi+Step·Rand()

其中Rand()是一个随机函数,用于产生0到1之间的随机数,Step为人工鱼的步长。

B.觅食行为:对于人工鱼Xi=(ai,bi,ri),在其视野内随机选择一个位置Xj,若该位置处的适应度Yj大于当前位置的适应度Yi,则向该位置前进一步:

XiNext=Xi+Xj-Xi||Xj-Xi||·Step·Rand()

C.聚群行为:对于人工鱼Xi=(ai,bi,ri),探索其视野内的伙伴数目nf及中心位置Xc。若Yc/nf>δYi,表明伙伴中心位置适应度较高且不太拥挤,则朝该位置方向前进一步:

XiNext=Xi+Xc-Xi||Xc-Xi||·Step·Rand()

D.追尾行为:对于人工鱼Xi=(ai,bi,ri),探索其视野内具有最大适应度Yj的伙伴Xj。若Yj/nf>δYi,表明伙伴Xj的位置具有较高的适应度且其周围不太拥挤,则朝Xj方向前进一步:

XiNext=Xi+Xj-Xi||Xj-Xi||·Step·Rand().

更进一步地,步骤6)中人工鱼的视野和步长按如下公式随着迭代次数的增加自适应减小:

VisualPassed_times=VisualPassed_times-1·(1-Passed_timesIterate_times)

StepPassed_times=f(VisualPassed_times)=VisualPassed_times·α

式中,Passed_times为已迭代的次数,α为衰减因子。

更进一步地,所述的衰减因子α取值范围为(0.9,1)。

3.有益效果

采用本发明提供的技术方案,与已有的公知技术相比,具有如下显著效果:

(1)本发明的一种基于人工鱼群算法的圆形工件检测方法,在图像预处理过程中首先利用形态学闭运算处理图像,之后对图像进行孔洞填充操作,经过该处理后,可以消除工件内部边缘的影响,只获取工件的外边缘,排除无关边缘点的干扰并且减少了计算量;

(2)本发明的一种基于人工鱼群算法的圆形工件检测方法,人工鱼的搜索过程不是从一点出发而是从多个点同时进行,且采用个体的适应度来指导搜索,可以实现在参数空间中并行搜索且不需要遍历整个空间,较大地减少了空间和时间开销,也提高了检测的精度,具有快速、准确和鲁棒的特点;

(3)本发明的一种基于人工鱼群算法的圆形工件检测方法,针对圆形工件检测过程中易受工件锯齿边缘和凹陷边缘影响导致检测到的圆心偏离目标圆心问题,在计算圆的适应度即位于候选圆上的边缘点个数时,经过多次实验采用一个较大的阈值T使得目标圆有更多的边缘点,从而使目标圆的适应度大于其他候选圆的适应度且有较大的差异,最终达到消除工件锯齿边缘和凹陷边缘干扰的目的;

(4)本发明的一种基于人工鱼群算法的圆形工件检测方法,随着迭代次数的增加自适应地减小人工鱼的视野和步长范围,通过不断交互并协调行为,在解空间中启发式搜索经过边缘点数目最多的圆,从而得到工件的圆心和半径,相对于传统减小视野、减小步长择一的方式,能够进一步提高收敛速度和对较小邻域的寻优能力,降低了搜索的盲目性。

附图说明

图1为本发明的一种基于人工鱼群算法的圆形工件检测方法的流程图;

图2为圆形工件灰度图像;

图3为人工鱼群算法解空间示意图;

图4为人工鱼群算法适应度函数迭代曲线示意图;

图5为目标检测结果示意图。

具体实施方式

为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。

实施例1

结合图1,本发明的一种基于人工鱼群算法的圆形工件检测方法,对圆形工件进行检测的步骤如下:

1)图像预处理:对待检测图像,先进行灰度化获得如图2所示的灰度图并中值滤波,然后使用最大类间方差法(OTSU)对图像进行二值化处理和数学形态学处理:首先利用形态学闭运算处理图像,之后对图像进行孔洞填充操作。经过上述处理后,可以消除工件内部边缘的影响,只获取工件的外边缘,排除无关边缘点的干扰并且减少计算量。最后采用Sobel算子进行边缘检测,获取圆形工件的边缘点集S={(x1,y1),(x2,y2),...,(xk,yk),...,(xn,yn)},其中n为边缘点总数,(xk,yk)为第k个边缘点坐标。

2)解空间确定和人工鱼表示:圆的标准方程为(x-a)2+(y-b)2=r2,其中(a,b)为圆心坐标,r为半径。对一幅大小为m*n的工件图像,可以根据图像的大小确定圆心的横坐标和纵坐标范围分别为[1,m]和[1,n],半径的取值范围为[1,min{m,n}/2],这样就确定了一个三维的解空间即确定了a,b,r的取值范围。使用一个三维向量(a,b,r)来表示人工鱼个体X,则解空间中第i条人工鱼Xi=(ai,bi,ri)表示一个候选圆即可能的解。

3)人工鱼群初始化,参数设置如下:种群规模AF_total=40,视野Visual=60,迭代次数Iterate_times=50,拥挤度因子δ=8。使每条人工鱼随机分布在三维解空间中,则对解空间中第i条人工鱼Xi,定义适应度Y=f(Xi)用于累加圆(ai,bi,ri)上的边缘点数量,即把S中的n个边缘点代入人工鱼Xi所对应的圆方程(x-ai)2+(y-bi)2=ri2,满足方程的边缘点个数即为该人工鱼的适应度值。因此,一个更大的适应度代表一个更好的解。人工鱼的适应度Y公式如下:

Y=f(Xi)=Σk=1nE(ai,bi,ri,xk,yk)

E(ai,bi,ri,xk,yk)=1,|((xk-ai)2+(yk-bi)2)0.5-ri|T0,|((xk-ai)2+(yk-bi)2)0.5-ri|>T

其中,n为边缘点总数,(xk,yk)为第k个边缘点坐标;T为设定的阈值。值得说明的是,鉴于圆形工件检测过程中易受工件锯齿边缘和凹陷边缘影响导致检测到的圆心偏离目标圆心,本实施例在计算圆的适应度即位于候选圆上的边缘点个数时,经过多次实验设定T=5,使得目标圆有更多的边缘点,从而使目标圆的适应度大于其他候选圆的适应度且有较大的差异,最终达到消除工件锯齿边缘和凹陷边缘干扰的目的。

4)对鱼群中每条人工鱼模拟执行觅食行为、追尾行为、聚群行为和随机行为,四种行为描述如下:

A.随机行为:对于人工鱼Xi=(ai,bi,ri),在视野内随机选择一个位置,然后向该方向移动:

XiNext=Xi+Step·Rand()

其中Rand()是一个随机函数,用于产生0到1之间的随机数,Step为人工鱼的步长。

B.觅食行为:对于人工鱼Xi=(ai,bi,ri),在其视野内随机选择一个位置Xj,若该位置处的适应度Yj大于当前位置的适应度Yi,则向该位置前进一步:

XiNext=Xi+Xj-Xi||Xj-Xi||·Step·Rand()

C.聚群行为:对于人工鱼Xi=(ai,bi,ri),探索其视野内的伙伴数目nf及中心位置Xc。若Yc/nf>δYi,表明伙伴中心位置适应度较高且不太拥挤,则朝该位置方向前进一步:

XiNext=Xi+Xc-Xi||Xc-Xi||·Step·Rand()

D.追尾行为:对于人工鱼Xi=(ai,bi,ri),探索其视野内具有最大适应度Yj的伙伴Xj。若Yj/nf>δYi,表明伙伴Xj的位置具有较高的适应度且其周围不太拥挤,则朝Xj方向前进一步:

XiNext=Xi+Xj-Xi||Xj-Xi||·Step·Rand()

由适应度Y公式计算步骤4)中每条人工鱼执行觅食行为、追尾行为、聚群行为和随机行为后的适应度,选择适应度最大的行为即4种行为中最好的行为作为最终的行为来执行。

5)更新最优人工鱼的状态:找出移动后鱼群中适应度最大的人工鱼Xbest=(abest,bbest,rbest)及其适应度放入公告牌中,即把40个候选圆中经过边缘点数目最多的圆参数(abest,bbest,rbest)以及位于该圆上的边缘点总数Y=f(Xbest)记入公告牌。在下一次移动后,若人工鱼Xbest的适应度大于公告牌中的适应度,则将其适应度及3个圆参数记入公告牌。

6)更新人工鱼的视野和步长:随着迭代次数的增加自适应地减小人工鱼的视野和步长:

VisualPassed_times=VisualPassed_times-1·(1-Passed_timesIterate_times)

StepPassed_times=f(VisualPassed_times)=VisualPassed_times·α

上式中,Passed_times和Iterate_times为已迭代的次数和总的迭代次数,α为衰减因子,取值范围为(0.9,1),本实施例取α=0.98,本实施例采用自适应减小人工鱼的视野和步长范围的方式,相对于传统减小视野、减小步长择一的方式,能够进一步提高收敛速度和对较小邻域的寻优能力,降低了搜索的盲目性。

7)重复步骤4)到6)直到达到算法限制的最大迭代次数。最后公告牌中记录的最大适应度所对应的(abest,bbest,rbest)即为所要检测的圆形工件参数,从而可以得到圆形工件的几何尺寸信息。

本实施例中人工鱼的搜索过程不是从一点出发而是从多个点同时进行,且采用个体的适应度来指导搜索,可以实现在参数空间中并行搜索且不需要遍历整个空间,较大地减少了空间和时间开销,也提高了检测的精度。

本实施例对圆形工件的检测精度和检测时间详见表1,由表1中数据可以看出本实施例的检测误差在1个像素以内,同时检测时间也可以满足实时性的要求。图4为人工鱼群算法迭代示意图,从图中可以看出算法在第10次左右已经收敛,具有很快的收敛速度。图5为检测结果示意图,其中十字形标记为圆心,可以看出检测到的圆较好的拟合了工件的边缘,也证明了本实施例的有效性。

表1实施例1对圆形工件检测的技术指标

以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号