边缘检测的优化及实例
2021-01-18王小丽
王小丽
(西华大学计算机与软件工程学院,成都 610039)
0 引言
随着科技的迅速发展,对美好事物的记录也从胶片转变为数字图片的形式。一副图片不仅记录着美好的瞬间,成为过去发生过的证明,同时也展现着科技的不断发展。现如今,图片和音像不再限于记录人类的生活、美好的景物,而是广泛应用于工业、航空、军事等众多领域。例如:监控系统,随时随地地记录着所检测地的安全,使生命安全和财产安全都得以保障;通过拍摄云层的分布情况,对未来的天气进行预测,进行天气预报,等等。
为了获得更多的信息,需要对图像进行更加细致的观察,分析出图像中更多的信息,其中对图像边缘的分析就是一个典型。随着计算机视觉和图像处理技术的迅速发展,对于图像边缘的检测研究更加细致,方法越来越多,但边缘检测的结果却各不相同。传统的边缘检测Sobel检测算子、Roberts算子等取得的检测结果并不理想,因噪声及检测算子的不足等多种因素的影响,导致检测的边缘损失以及边缘的误检等不足。因此,众多学者致力于研究能够相对完全的、较好的检测边缘的算法,或对原始的检测算法进行不同方向的优化,使检测的结果更好,这是现今的研究热点之一。
1 传统边缘检测
1.1 经典边缘检测算子的特点
常见的边缘检测算子有 Roberts、Sobel、Prewitt、La⁃placian、Canny、Kirsch等经典算子。每种边缘检测算子都具有各自的优势和劣势,表1是从原理、优缺点和处理对象来介绍几种算子的特点。
表1 几种边缘检测算子特点
在边缘检测中边缘定位能力和噪声抑制能力是相互矛盾的,有的边缘检测算法边缘定位能力好,有的边缘检测算法抗噪性能较好,各自具有各自的特点和优势。其中,可能某个参数的选取就直接和检测的结果相互关联。
1.2 各种算子计算量对比
在计算机视觉领域对边缘检测算法的要求就是三要:边缘定位要准确、运算速度要快、噪声抑制能力要强。一般情况下,边缘检测的算法越复杂,计算量就越大,边缘定位相对要准确。表2是对一个N×N的图像,其运算量的对比。
表2 计算量对比
实际上,算法的计算量和算法本身的复杂性以及参数类型息息相关。实际引用中,多数会在边缘检测结果和计算量之间选择一个折中的方案,使边缘定位结果相对准确或计算量相对简单。
为了得到更好的边缘检测结果,使边缘的定位更加准确,学者们开始致力于边缘检测的优化,研究出很多的方法或辅助很多方法来使边缘检测的结果更加准确,为后续图像的深入研究(目标识别、图像分析等)打好坚实的基础。
2 边缘检测的优化
2.1 图像平滑
在理想条件下,当采集图像时,物体的反射光线能够不受任何损失地被反射到图像采集设备。但在实际情况下,受空气中颗粒物质、光照强度以及背景等因素的影响,物体的发射光线在传播过程中会受到不同程度的损失,导致最终的成像中含有噪声。除此之外,图像采集设备由于受传感器材料属性、工作环境、电子元器件和电路结构等影响,也会或多或少给图像引入噪声。图像常见噪声基本上有高斯噪声、泊松噪声、乘性噪声、椒盐噪声四种噪声。
考虑到噪声的情况同时为了得到更好的边缘检测结果,在进行边缘检测之前,对图像进行预处理——去噪。表3简单介绍了常见的几种滤波器。
文献[1]中,汤子夜等人利用小波变换在多尺度分析和时频局部转化方面的优势,依据导数极值点可以反映信号的基本结构以及详细精确的描述,通过调整尺度的数值使极值点发生改变以得到全尺度下图像的整体概貌的原理,通过两个一维滤波器对二维图像进行快速分解,分解得到4个部分分别对应4个不同的滤波器,由此得到原二维图像在下一尺度上的低频概貌、在垂直方向的概貌、在水平方向的概貌以及对角线方向的细节四个不同的概貌。
表3 几种常见滤波器
噪声和图像中的边缘同处于高频部分,往往在进行图像平滑时,或多或少会对图像中的边缘造成损失,在实际进行噪声去除时,需要对两者进行折中,选择合适的滤波器,即可以保证有效地去除噪声,还能完整地保留边缘。
2.2 增加边缘检测算子的方向
在一幅图片中,边缘点的位置和方向往往是不定的,一般情况下边缘检测算子是通过求解图像函数的梯度强度和方向以获取图像的边缘。在边缘检测算子中,检测方向和大小各不相同,检测的结果也各有差异,但通常情况下,往往是边缘算子检测的方向越多检测到的边缘越多。因此,为了检测到更多的边缘,在原有检测方向的基础上,增加了更多方向的检测。下面将以传统的Sobel边缘检测算子为例进行阐述。
传统的Sobel边缘检测算子是通过一阶导数得到图像的边缘点。通过水平Gx和垂直Gy两个方向的卷积模板对图像的邻域进行平均计算出图像的梯度幅值,当梯度幅值较大时,说明相邻的灰度值之间变化很大,存在边缘像素点,反之,则不存在边缘像素点。
Sobel边缘检测算子:
文献[2]中,韩龙飞和逯超两人提出一种改进的So⁃bel算子边缘检测,增加了两个对角线方向,使其在原有水平和垂直两个方向的基础上变成4个方向,并提高了对角方向梯度的权值,使得该算法对斜向边缘特征的提取更加准确,检测的边缘更加精细,局部特性更好,抗噪能力更强。
新增对角方向卷积模板:
2.3 阈值选取和边缘点优化
在通过方向卷积模板对图像中的梯度幅值及方向得以确认之后,就需要对检测到的点进行一个筛选,确定哪些点是图像中的边缘点,哪些点是非边缘点以及介于两者之间的点。筛选的条件或前提——阈值的选取。阈值的选取目前分为单阈值选取和双阈值选取,单阈值相对简单直接,大于阈值的为边缘点,反之,就为非边缘点;而双阈值则要复杂一点,分为高阈值和低阈值,因此最终的情况就要分为:大于高阈值、小于低阈值和介于两者之间这三种情况。边缘点确定如下:
当边缘点确定之后,将图像中的边缘点和非边缘点通过二值图像的形式表现出来,根据边缘检测的好坏,二值图像中的边缘可能存在伪边缘、不连续的边缘等问题。除了对边缘检测算法进行优化之外,也对检测到的边缘进行形态学处理,使边缘更加完善。
数学形态学是一门建立在格论和拓扑学基础之上的图像分析学科,基本运算包括膨胀、腐蚀、开运算和闭运算、Top-hat变换等。
表4 四种形态学运算
文献[4]中张金凤、刘昕两人,在Sobel算子原有水平和垂直方向上,加入了45°和135°方向检测模板,同时在得到的边缘检测图中嵌入形态学高低帽变换算法,不仅扩大了检测的方向范围,对图像边缘的检测更加准确,而且有效地提高了图像的对比度,丰富细节信息。其中,高帽变换可以突出图像细节,低帽变换可以突出相连接目标间的界限。加入高低帽变换之后,不仅消除了假边缘,而且还使图像边缘细节更加完整。
表5 高低帽变换
文献[5]中邹汪平,把孤立像素作为一种发展目标,通过形态学进行处理以去除孤立像素(通常使用的是clean方法来有效去除孤立像素,最后选择闭运算)。通过迭代阈值法来设定不同种类的特征阈值,然后根据图像特征将图像分割成不同种类。然后进行边缘检测。
3 优化实例应用
在边缘检测优化中,仅仅只进行图像平衡或增加边缘检测方向或对边检测结果优化往往是不能够满足理想的要求。在实际中,往往结合多种优化方式来达到最好的效果。
文献[7]中许乐灵、胡石两人提出一种引导滤波自适应双阈值并改进Kirsch算子的优化边缘检测算法:首先针对图像局部信息的特征在图像不同边缘位置动态生成引导滤波函数(其中引导滤波函数的主要参数是通过线性回归原理来求解的),然后在Kirsch算子的基础上将图像像素的8个方向的卷积求导化简为4个方向的梯度运算,最后利用双阈值来判定边缘区域并按照连点画图的方式提取最终的边缘。引导滤波器在消除噪声的同时保留了图像轮廓信息;改进Kirsch的双阈值边缘检测算法,运算量明显减少,运算速度也提高了,具有良好的实时性和应用价值。
文献[9]中,王振华、胡伏原等人根据图像边缘在纹理细节上的差异特征提出自适应算子的方法:首先,在梯度模值基础上构造自适应掩模算子以判定掩模区域的梯度起伏;其次,针对不同的梯度变化通过联合数值约束与梯度约束优化待检测图像;最后采用均值迭代计算阈值选取边缘点。在约束优化时,梯度约束能够增强图像纹理细节,而数值约束能够有效抑制噪声干扰。自适应算子的方法检测图像的边缘能够有效防止边缘细节的丢失和断裂,并具备较好的抗噪性能。
文献[10]中,张棋等人提出一种自适应阈值和非极大值抑制相结合的边缘检测算法:引入中值滤波的思想生成自适应动态阈值(根据中值滤波原理,随着窗口移动,目标点发生改变,从而产生不同的局部阈值),并采用极大值抑制的方法细化梯度图像,同时通过增加梯度检测方向(增加了45°和135°,并在梯度取绝对值的基础上进行梯度合成)提高了算法对复杂纹理的识别能力。经试验验证:检测出的边缘清晰,图像细节全面,视觉效果较好,具备良好的环境适应能力。
4 结语
本文简单介绍了几种经典边缘检测的特点及计算量对比,然后从边缘检测的前、中、后三个方面对边缘检测的优化方法分别进行了阐述,但在实际应用中,往往不会只考虑单一的一种优化方式,会结合多种优化方法来对边缘检测进行优化。在第三部分简单介绍了几个多种优化方法共同优化的实际应用例子,结果表明,多种优化能够更好地弥补传统边缘检测的不足,在去除噪声的同时还能提升边缘检测的质量。