1.一种基于人工鱼群算法的圆形工件检测方法,其步骤为:
1)对采集的圆形工件图像进行预处理,并采用Sobel算子进行边缘检测,获取圆形工件的边缘点集S={(x1,y1),(x2,y2),...,(xk,yk),...,(xn,yn)},其中n为边缘点个数,(xk,yk)为第k个边缘点坐标;
2)设定三维向量(a,b,r)表示人工鱼个体X,(a,b)为圆心坐标,r为半径,并根据步骤1)预处理得到的大小为m*n的工件图像,确定圆心的横坐标a的取值范围为[1,m],圆心的纵坐标b的取值范围为[1,n],r的取值范围为[1,min{m,n}/2],建立三维解空间;
3)设定种群规模、视野、迭代次数和拥挤度因子,使每条人工鱼随机分布在步骤2)建立的三维解空间中,对解空间中第i条人工鱼Xi,定义适应度Y用于累加圆(ai,bi,ri)上的边缘点数量,适应度Y公式如下:其中,T为设定的阈值;
4)利用步骤3)所述适应度公式计算鱼群中每条人工鱼模拟执行觅食行为、追尾行为、聚群行为和随机行为后的适应度,选择适应度最大的行为执行;
5)选择步骤4)移动后鱼群中适应度最大的人工鱼Xbest=(abest,bbest,rbest)及其适应度放入公告牌中,若在下一次移动后人工鱼适应度大于公告牌中适应度,则更新公告牌中人工鱼及其适应度;
6)随着迭代次数的增加自适应地减小人工鱼的视野和步长;
7)重复步骤4)~6)直至达到步骤3)设定的迭代次数,将公告牌中记录的最大适应度所对应的(abest,bbest,rbest)作为圆形工件几何尺寸参数。
2.根据权利要求1所述的一种基于人工鱼群算法的圆形工件检测方法,其特征在于:步骤1)所述图像预处理过程为:先对采集的圆形工件图像进行灰度化并中值滤波,然后使用最大类间方差法对图像进行二值化处理和数学形态学处理,所述的数学形态学处理过程为:首先利用形态学闭运算处理图像,之后对图像进行孔洞填充操作。
3.根据权利要求1或2所述的一种基于人工鱼群算法的圆形工件检测方法,其特征在于:步骤3)设定种群规模AF_total=40,视野Visual=60,迭代次数Iterate_times=50,拥挤度因子δ=8。
4.根据权利要求1或2所述的一种基于人工鱼群算法的圆形工件检测方法,其特征在于:步骤3)中设定的阈值T=5。
5.根据权利要求4所述的一种基于人工鱼群算法的圆形工件检测方法,其特征在于:步骤4)中所述四种行为描述如下:A.随机行为:对于人工鱼Xi=(ai,bi,ri),在视野内随机选择一个位置,然后向该位置的方向移动:XiNext=Xi+Step·Rand()
其中Rand()是一个随机函数,用于产生0到1之间的随机数,Step为人工鱼的步长;
B.觅食行为:对于人工鱼Xi=(ai,bi,ri),在其视野内随机选择一个位置Xj,若该位置处的适应度Yj大于当前位置的适应度Yi,则向该位置前进一步:C.聚群行为:对于人工鱼Xi=(ai,bi,ri),探索其视野内的伙伴数目nf及中心位置Xc;若Yc/nf>δYi,表明伙伴中心位置适应度较高且不太拥挤,则朝该位置方向前进一步:D.追尾行为:对于人工鱼Xi=(ai,bi,ri),探索其视野内具有最大适应度Yj的伙伴Xj;若Yj/nf>δYi,表明伙伴Xj的位置具有较高的适应度且其周围不太拥挤,则朝Xj方向前进一步:
6.根据权利要求5所述的一种基于人工鱼群算法的圆形工件检测方法,其特征在于:步骤6)中人工鱼的视野和步长按如下公式随着迭代次数的增加自适应减小:StepPassed_times=f(VisualPassed_times)=Visualpassed_times·α式中,Passed_times为已迭代的次数,Iterate_times为总的迭代次数;α为衰减因子。
7.根据权利要求6所述的一种基于人工鱼群算法的圆形工件检测方法,其特征在于:所述的衰减因子α取值范围为(0.9,1)。