萤火虫算法的图像边缘检测*
2015-10-31刘紫燕
帅 暘,冯 丽,祁 佳,刘紫燕
(1.贵州大学 大数据与信息工程学院,贵州 贵阳 550025;2.国家电网重庆市电力公司,重庆 400014)
0 引言
边缘是图像最基本的特征之一[1],图像边缘一般指图像灰度变化率最大像素点的总和,边缘广泛分布于物体间以及物体与背景之间[2]。边缘检测是数字图像处理中的重要技术,是图像分割、目标检测、目标提取等图像分析技术的基础[3]。
传统的基于微分法的算子是图像边缘检测的常用算子,如 Sobel、Roberts、Prewitt、Laplacian 和 Canny算子等,后来有基于形态学、模糊集理论、小波分析变换和神经网络等的边缘检测方法[4]。而传统的基于微分的边缘检测算法往往存在自适应性差、固定阈值等问题。将仿生学应用于边缘检测是目前的研究热点之一,其中有遗传算法、人工鱼群算法、蚁群算法和粒子群算法等。与传统的边缘检测算法相比,群智能算法具有鲁棒性好、扩展性好、适应性好且运算速度快等优点[5]。
本文首次将群智能算法中的萤火虫算法应用于图像的边缘检测中,利用萤火虫算法搜索图像灰度梯度矩阵中的最大值,从而得到图像的边缘。
1 边缘检测理论
1.1 图像边缘的定义
图像的边缘中含有该图像的大部分信息,这些信息体现在图像局部特征的不连续性,即图像中灰度变化比较剧烈的地方[6]。因此,我们把边缘定义为图像中灰度发生急剧变化的区域边界。根据灰度变化的剧烈程度,通常将边缘划分为阶跃状和屋顶状两种类型[7]。阶跃边缘两边的灰度值变化明显,而屋顶边缘位于灰度值增加与减少的交界处。那么,我们可以对两种边缘分别求取一阶、二阶导数就来表示边缘点的变化。对于一个阶跃边缘点,其灰度变化曲线的一阶导数在该点达到极大值,二阶导数在该点与零交叉;对于一个屋顶边缘点,其灰度变化曲线的一阶导数在该点与零交叉;二阶导数在该点达到极大值[8]。
1.2 图像边缘检测步骤
图像边缘检测主要包括以下4个步骤,如图1所示。
图1 边缘检测步骤示意
(1)图像滤波
边缘检测算法主要是基于图像亮度的一阶和二阶导数,但是噪声会对导数的计算产生较大影响,因此必须使用滤波器降噪来提升边缘检测器的性能。
(2)图形增强
图形增强即在确定图像各点邻域强度的变化值后,通过增强算法将邻域强度值变化显著的点突出显示。
(3)图像检测
在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,应该用某些方法来确定那些是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。
(4)图像定位
如果某一应用场合要求确定边缘位置,则边缘的位置可以在子像素分辨率上来估计,边缘的方位也可以被估计出来。
2 萤火虫算法
2.1 萤火虫算法基本理论
萤火虫算法[9-10]由印度学者 Krishnanand等人于2005年提出,该算法是模拟自然界中萤火虫的发光行为的群智能算法,但在算法中舍弃了萤火虫发光的一些生物学意义,只是利用了萤火虫的发光和吸引特性,即根据其搜索区域范围寻找其它萤火虫,并向邻域内位置内亮度高的萤火虫位置移动,从而实现算法的搜索与优化。
在该算法中,萤火虫彼此吸引的原因取决于两个要素:自身亮度和吸引度。萤火虫的亮度越高就表示它所处的位置就越好,即目标值越佳;吸引度与亮度具有相关性,越亮的萤火虫拥有越强的吸引力。萤火虫具有自身的视野范围和亮度,在萤火虫决策范围(决策半径小于视野半径)内,荧光亮度高的萤火虫可以吸引亮度弱的萤火虫往它的方向移动。发光亮度相同的萤火虫各自随机移动,互不吸引。萤火虫的亮度和吸引度与其他萤火虫之间的距离相关,随着距离的增加而减小,随着距离的减小而增加,这是模拟了萤火虫的荧光在空间传播的特性。
其过程是通过计算萤火虫的荧光亮度,通过萤火虫的吸引度来决定萤火虫移动过程,用好的萤火虫取代位置较差的萤火虫的迭代过程。
2.2 萤火虫算法数学描述
首先,定义萤火虫的2个状态:荧光素(ioti),与萤火虫的亮度成正比关系,萤火虫的荧光素值越高其自身亮度越到;决策半径(rdi),即萤火虫的领域范围的大小,在[0,rs]之间变化,rs即为萤火虫的视野范围。
在萤火虫算法中,萤火虫分2个阶段完成优化,更新阶段和移动阶段。
(1)更新阶段
在每次萤火虫移动之前,要根据式(1)和式(2)计算萤火虫的荧光素和决策半径。第i只萤火虫的荧光素定义如下所示[10]:
式中,rho表示荧光素挥发因子,delta是灰度图像像素点的梯度值,gaddressi表示萤火虫i当前所在的位置,delta(gaddressi)表示第i只萤火虫所在位置的灰度值,maxfun_my(delta(gaddressi))表示第i只萤火虫所在位置的目标函数值,。
萤火虫的决策半径如式(2)所示:
式中,beta为领域变化率,nt为邻域阀值,rs为视野范围。
(2)移动阶段
在移动过程中,先通过式(3)计算每一只萤火虫先找出领域范围内萤火素比自己大的萤火虫数目,然后再按式(4)以一定的概率按式(5)向其移动。
萤火虫决策范围内的萤火虫数目的公式为:
式中,Nit为决策范围内萤火虫荧光亮度较高的萤火虫数目。萤火虫的移动范围是有限的,它只能向领域范围内的萤火虫移动。
其概率转移公式为
式中,Pij表示萤火虫i以一定的概率Pij向领域内的萤火虫j移动,其移动公式如下:
优化过程如下:第 i个萤火虫根据式(1)和式(2)计算它的荧光亮度和决策半径,然后按式(3)找出决策范围内荧光亮度较高的领域的萤火虫,按一定的转移概率式(4)选择一个萤火虫j并向它移动;通过更新萤火虫的位置和萤火虫的状态,即荧光亮度和决策半径,重复直到满足迭代条件或者精度,最后找出最好的萤火虫。
3 基于萤火虫算法的边缘检测
3.1 算法的基本思想
如前所述,图像相邻区域图像边缘灰度值是不连续的,其图像边缘点的梯度值比非边缘点的梯度值高,所以人工萤火虫寻优的过程就是寻找灰度图像梯度值高的过程,即灰度图像梯度值高的点即为最优解。
将灰度图像分割成10×256的矩阵,然后将萤火虫随机分布在10×256的灰度图像像素上,并将萤火虫领域范围内的满足条件的萤火虫的值设置为255。通过萤火虫的亮度和吸引度向最好位置的萤火虫移动,不断更新萤火虫位置和决策区域来完成寻优过程。萤火虫的亮度由目标函数值决定,目标函数是萤火虫的灰度梯度值减去图像灰度阈值。
3.2 获取各点灰度梯度值
灰度图像像素的梯度值是将灰度图像相邻行和相邻列的像素点作相减,然后再将减得的值相加。本文将灰度图像像素的梯度值作为目标函数参数,其梯度计算方法如下:
设F为灰度图像,xij为灰度图像F的第i行第j列的灰度值,如式(6)所示:
将灰度图像F的相邻两行相减得到图像F1如式(7)所示;将灰度图像相邻两列相减得到图像F2如式(8)所示。
将F1与F2相加,求得灰度图像F的梯度值F',即:
3.3 算法的基本流程
步骤1:初始化基本参数(见表1);
设置萤火虫个数n,邻域阀值nt,邻域荧火虫数Nit,感知半径 rs,决策半径 r0,步长 s,荧光素浓度iot,邻域变化率bt,荧光素挥发因子rho,适应度提取比例gamma,最大迭代次数it_max或搜索精度,随机分布萤火虫在10×256的灰度图像上;
表1 萤火虫算法参数设置
步骤2:根据式(1)设置每个萤火虫的荧光素;
步骤3:根据式(2)选出萤火虫决策范围内的萤火虫数目,并设置萤火虫的值为255;
步骤5:根据式(4)更新萤火虫的位置;
步骤6:根据式(5)更新动态决策域;
步骤7:如果达到给定的精度或迭代次数,则结束返回最优解;否则t=t+1,跳转到步骤。
具体算法实现为:
4 实验结果及分析
为验证萤火虫算法的边缘检测性能,在MTALAB 2010b平台进行仿真实验(见图2~图9),选用256×256像素的灰度图像,如图2、图6所示。参数设置如表2所示。
表2 萤火虫算法仿真参数设置
首先将本算法和传统Sobel算子及Roberts算子的检测结果进行了对比,为避免算法随机性误差,共进行了30次仿真实验,图3、图7、图8和图9是其中一次仿真实验的结果。
从图3、图4和图5的检测结果可以看出,与传统方法相比,萤火虫算法能够有效地检测出图像边缘,同时能较好的抑制公路两旁绿化带所带来的背景噪声。
图2 公路灰度图像
图3 萤火虫算法检测结果
图4 Sobel算子检测
图5 Roberts算子检测
为探究种群规模n对本算法检测结果的影响,分别取不同的种群规模进行仿真,结果如图7、图8和图9所示。
图6 水果灰度图像
图7 萤火虫算法(n=30)
图8 萤火虫算法(n=50)
图9 萤火虫算法(n=100)
图7、图8和图9中,n代表萤火虫算法的种群规模。从图中可以看出,随着种群规模的提升,基于萤火虫算法的图像边缘检测算法的检测精度有了明显提升。
5 结语
本文使用萤火虫算法来进行图像的边缘检测,并结合仿真实验证明了萤火虫算法能快速有效地检测出图像的边缘。与传统的Sobel、Roberts算子相比,该算法能够有效抑制图片中的背景噪声。随着萤火虫数目的提升,该算法能在运算时间未出现大幅度增加的情况下,显著提高图片边缘检测的精确度。但是在实验过程中发现,使用萤火虫算法时,图片的边缘信息不够完全,有部分丢失。这是因为仿真时设置的萤火虫数量有限,不能完全找出边缘信息。增加萤火虫数量可以提高边缘的完整性,但同时会增加系统开销。我们下一步的研究方向将改进萤火虫算法,提升其边缘检测的精度和抗噪能力,使其更适用于边缘检测。
[1]杨新华,寇为刚.基于FPGA的Sobel算子图像边缘检测算法[J].仪表技术与传感器,2013(01):102-104.YANG Xin-hua,KOU Wei-gang.Sobel Operat or Image Edge Detection Algorithm based on FPGA[J].Instrument Technique and Sensor,2013(01):102 -104.
[2]刘紫燕,祁佳.实时图像边缘检测形态学优化设计及FPGA实现[J].电子技术应用,2013,19(09):132 -134,138.LIU Zi- yan,QI Jia.Edge Detection and Morphology Optimization of Real- Time Image based on FPGA[J].Application of Electronic Technique,2013,19(09):132-134,138.
[3]陈波,杨阳,沈田双.基于模糊聚类分析的边缘检测算法[J].仪器仪表学报,2006,27(z6):1603 -1604.CHEN Bo,YANG Yang,SHEN Tian - shuang.Image Edge-Detection Algorithm based on Fuzzy Cluster Analysis[J].Chinese Journal of Scientific Instrument,2006,27(z6):1603-1604.
[4]刘紫燕,祁佳.层次聚类算法的实时图像边缘检测及FPGA 实现[J].红外技术,2014,36(01):53 -57.LIU Zi- yan,QI Jia.Hierarchical Clustering Algorithm of Real- Time Image Edge Detection on FPGA[J].Infrared Technology,2014,36(01):53 -57.
[5]楚晓丽,朱英,石俊涛.基于改进人工鱼群算法的图像边缘检测[J].计算机系统应用,2010,19(08):173-176.CHU Xiao- li,ZHU Ying,SHI Jun - tao.Image Edge Detection based on Improved Artificial Fish-School Swarm Algorithm[J].Computer Systems& Applications,2010,19(08):173-176.
[6]丁宇辰,谢水珍.机械零件边缘检测方法的研究[J].通信技术,2012,45(12):101 -103.DING Yu-chen,XIE Shui-zhen.Research on Edge Detection of Mechanical Parts[J].Communications Technology,2012,45(12):101-103.
[7]徐建华.图像处理与分析[M].北京:科学出版社,1992.XU Jian - hua.Image Processing and Analyzing[M].Beijing:Science Press,1992.
[8]段瑞玲,李庆祥,李玉和.图像边缘检测方法研究综述[J].光学技术,2005,31(03):415 -419.DUAN Rui-ling,LI Qing-xiang,LI Yu-he.Summary of Image Edge Detection[J].Optical Technique,2005,31(03):415-419.
[9]Krishnanand K N,Ghose D.Glowworm Swarm Optimization:A New Method for Optimizing Multi-Modal Functions[J].International Journal of Computational Intelligence Studies,2009,1(1):93 -119.
[10]刘长平,叶春明.一种新颖的仿生群智能优化算法:萤火虫算法[J].计算机应用研究,2011(09):3295-3297.LIU Chang-ping,YE Chun-ming.Novel Bioinspired Swarm Intelligence Optimization Algorithm:Firefly Algorithm[J].Application Research of Computers,2011,(09):3295-3297.