APP下载

改进Canny算子与形态学融合的边缘检测

2023-01-31唐守锋翟少奇仝光明钟鹏飞史经灿

计算机工程与设计 2023年1期
关键词:形态学算子红外

唐守锋,翟少奇,仝光明,钟鹏飞,史经灿,史 凡

(中国矿业大学 信息与控制工程学院,江苏 徐州 221116)

0 引 言

红外图像边缘检测伴随着红外技术的日益发展而成为图像处理中热点问题之一,并在特征提取、目标识别等领域有着广泛应用。针对红外图像边缘提取常用的方法有Sobel算子、Canny算子、Krisch算子等一阶微分算子和类似Laplace算子的二阶微分算子[1-3],红外图像存在以下问题:①分辨率低以及图像对比度低;②边缘细节损失、模糊;③存在各种背景噪声等。由于上述原因,增加了对红外图像边缘检测的难度。因此,许多学者针对传统边缘检测方法进行改进,提升边缘检测的精度以及普适性。文献[3]利用数学形态学方法对图像进行边缘检测,得到的图像边缘比较完整且光滑,但在噪声图像中出现了伪边缘且抗噪能力不足。文献[4]对传统的Canny算子进行改进,在滤波环节使用数学形态学代替高斯滤波进行去噪,利用Otsu算法代替双阈值算法提高算法的自适应性,在噪声环境下取得了较好的边缘检测效果且具有较强的自适应性。文献[5]对传统Sobel算子进行改进并在FPGA中实现,取得了良好的检测效果。文献[6]利用深度学习技术在红外图像边缘提取方向提出一种改进的整体嵌套边缘检测(holistically-nested edge detection,HED)网络,该方法可以有效抑制背景干扰。任何单一的算法都不能完全兼容所有算法的优点。因此这就促使研究者们一直致力于构想出性能更优的边缘检测算子。

因此,本文针对传统Canny算法的缺陷,从滤波环节、梯度幅值计算环节以及阈值选取环节进行改进,并为了进一步提升算法的抗噪性,将多尺度形态学与改进的Canny算法相结合提出一种边缘检测算法。实验结果表明,本文算法具备很好的抗噪性,检测后得到边缘图像轮廓清晰平滑,细节边缘突出,层次感鲜明。

1 传统的Canny算法

1.1 Canny算法基本原理

Canny边缘检测算法被John F.Canny提出,它是一种传统的多级步骤边缘检测方法且在理论上完善了边缘检测评价标准。Canny算子检测精度高且运算速度快,但是通过对算法的原理的研究和分析,发现其中存在不少缺陷,算法流程如图1所示。

图1 传统Canny算法流程

Canny算法通常处理的图像为灰度图,红外图像有灰度图和彩色图,因此图中的输入图像为红外图像的灰度图。输出图像为Canny算法边缘检测梯度二值化图。

1.2 传统Canny算法的缺点

传统Canny算法存在以下缺陷:①传统Canny算子使用高斯滤波进行平滑降噪,仅考虑了图像在空间域内的相似性,在滤波过程中会导致部分有用的弱边缘丢失,并且高斯滤波卷积核大小的选取受人为因素的影响较大,若卷积核半径的取值较小,图像的噪声无法得到有效抑制,当核的大小过大,则平滑后的图像太模糊,导致边缘定位精度降低,在处理不同图像时难以准确的取得适应值;②传统Canny算法流程图中采用2×2大小的卷积核,仅从水平和竖直两个方向进行检测,卷积核较小,无法提取到完整的边缘信息,且对噪声过于敏感,容易出现伪边缘;③传统Canny算法对高低阈值的选取方式是依靠人为经验进行设定,而不是依据图像本身的特性决定,因此不仅无法顾及局部特征信息,还会因阈值的不确定性而出现一定的误差,缺乏自适应性。

2 改进的Canny算法与多尺度形态学融合

针对上述传统Canny算子中存在的缺陷,本文对其进行了改进,本文主要在以下3个方面进行了改进:①采用快速引导滤波代替高斯滤波;②将原来2×2的模板大小改为3×3,并增加对角方向上的梯度分量;③采用改进的Otsu算法对高低阈值进行选取。

2.1 快速引导滤波

引导滤波[7]又称导向滤波,由何凯明等提出,是一种在保留双边滤波优势的基础之上,同时能降低算法时间复杂度,改善边缘轮廓信息的滤波器。引导滤波是通过输入一幅图像作为导向图I(x,y), 对初始图像P(x,y) 进行滤波处理,尽可能使得输出图像Q(x,y)的梯度和导向图相似,同时让输出图像的大致轮廓与输入图像相似,以此来保留边缘并且滤除噪声。而快速引导滤波基本原理是先将引导图I(x,y) 和输入图P(x,y) 进行下采样后作为新的引导图和输入图对系数ak和bk进行计算,然后对ak和bk进行上采样恢复原始大小,快速引导滤波大大减少了滤波的计算时间。引导滤波的原理如图2所示。

图2 引导滤波原理

图2已知的是I和p,需要求的是q,图中的n代表噪声,而q是p消除噪声后的图像。本文将红外图像看作是一个二维函数,假设该函数的输出与输入在一个二维窗口内满足线性关系,公式如下

qi=akIi+bk, ∀i∈ωk

(1)

其中,q为输出像素的值,I为输入像素值,ωk为滑动窗口,k为此时窗口中心像素点的索引,ak和bk是当窗口中心位于k时该线性函数的系数。为了拟合函数的输出值q与真实值p之间的差距最小,并以此来求解每一个局部线性函数中的系数大小。通过最小二乘法进行计算,转化为最优化问题即

(2)

(3)

式(2)为引导滤波算法最小二乘法表示的方法,式(3) 中E(ak,bk) 表示计算最优值的损失函数,ε是为了防止ak过大而引入的正则化参数。通过计算后,我们可以求得线性函数的系数ak和bk为

(4)

(5)

(6)

2.2 梯度幅值与方向

本文传统Canny算法中2×2的邻域内有限差分模板大小改为3×3,在保留原Sobel算子卷积模板的基础上,以x方向为基准,逆时针增加了45°和135°方向上一阶偏导数的差分模板。中心像素8邻域内的梯度模板可以表示为

(7)

其中,Sx、SOpr、Sy、SOpl分别表示x方向、45° 方向、y方向以及135° 方向上的卷积核。通过卷积核对图像进行卷积操作,分别得到各个方向上的梯度分量gx、gOpr、gy和gOpl, 最后进行计算得到图像的梯度幅值G与梯度方向角θ

(8)

(9)

2.3 基于方差与权重的Otsu算法

传统OTSU算法通过计算不同阈值下前景与背景的最大类间方差,使得两类像素之间区分度最大,以此来获取最佳阈值。假设一幅图像表示为I(x,y), 图像大小为M×N, 前景GF和背景GD的分割阈值为T, 灰度值为i的像素点出现的概率记作Pi。 OTSU算法计算阈值则可以表示为

(10)

(11)

μ=ω0·μ0+ω1·μ1

(12)

σ2=ω0(μ0-μ)2+ω1(μ1-μ)2

(13)

其中,ω0、ω1表示前景和背景像素点在整幅图像中所占的比例,μ、μ0、μ1分别代表整幅图像、前景区域以及背景区域的平均灰度值,σ2表示为类间方差。将每个灰度值作为阈值进行计算,选取最大的类间方差值所对应的灰度值作为最佳阈值即

(14)

本文首先将传统OTSU算法对类间方差计算中的平均灰度改为方差信息。使用方差来代替平均灰度值具有更好的自适应性。改进后的OTSU算法可以表示为

(15)

(16)

(17)

同时,由于整体图像的亮度较暗,将阈值领域内灰度值的分布概率作为权重,使得阈值向低灰度区域偏移,已获得最佳阈值。添加权重后的类间方差σ2为

(18)

(19)

式中:等号左侧表示阈值T在范围为 (2k+1) 的邻域内灰度的分布概率,本文k中取值为2。最终,通过上述式(14)得到最佳阈值。

2.4 多尺度形态学边缘检测

形态学边缘检测能够有效抑制图像噪声,其最重要的是对结构元素的选取,选择不同大小结构的结构元素,处理后的效果也大相径庭。为达到有效识别边缘、平滑噪声的目的,需要选取合适尺度和类型的结构元素进行形态学边缘检测。

为进一步提高改进算法的抗噪能力,选择使用3个不同大小结构的结构元素对图像进行检测,既对噪声具有好的抑制作用,又可以得到更完整的边缘轮廓。本文中选用的结构元素B1、B2、B3的具体形式分别如下

(20)

首先,采用抗噪膨胀型算子对图像的外边缘轮廓进行提取,同时通过抗噪腐蚀型算子得到图像的内边缘,算子的具体公式如下

yd=(((f∘B1)·B2·B3)∘B3⊕B1)∘B1-
((f∘B1)·B2·B3)∘B3

(21)

ye=((f∘B1)·B2·B3)∘B3-
(((f∘B1)·B2·B3)ΘB1)·B1

(22)

式中:yd表示为外边缘轮廓,ye表示内边缘轮廓,f为输入图像,∘为开运算,·为闭运算,⊕为膨胀运算,Θ为腐蚀运算。

最后将得到的内外边缘、界于内外边缘之间的边缘进行加权融合,从而得到增强的抗噪形态学边缘检测算法,具体融合方式为

Emax=max(ye,yd),Emin=min(ye,yd)

(23)

Ea=yd+ye+1.2(Emax-Emin)

(24)

其中,Ea为改进后的形态学边缘检测算法处理后的低噪边缘图像。

2.5 算法融合

本文将改进的Canny算子与多尺度形态学进行融合,提出一种基于改进Canny算子与数字形态学的边缘检测算法。融合算法具体流程如图3所示。

图3 算法流程

图3所示输入图像为红外图像,输出图像为融合算法处理得到的边缘检测结果图。借鉴文献[9]对双阈值连接的处理方法,对两者进行融合,得到轮廓清晰,降噪效果良好的边缘图像。具体步骤如下:

(1)首先,分别采用改进的Canny算法和形态学方法对输入图像的边缘进行检测,得到边缘图像E1、E2;

(2)其次,对两幅边缘图像作差,求得E1与E2之间的差异图Ed, 即

Ed=E1-E2

(25)

(3)针对差异图中灰度值不为零的像素点Ed(x,y), 在其5×5邻域内根据区域生长法寻找与其相连的边缘点,并标记为1;

(4)确定细节边缘点。若在重新生成的矩阵内,中心像素点周围存在1的个数大于4,则该点为弱边缘点。最终,得到细节边缘图e(x,y), 示意图如图4所示;

图4 像素点邻域及其生长结果

(5)将边缘图像E1、E2与细节边缘图e(x,y) 进行有效融合得到轮廓清晰、细节突出的图像边缘E

E=E1*E2+1.5e

(26)

式中:*表示取模操作,E表示为融合后的边缘图。

3 实验结果验证及分析

3.1 主观评价

为验证本文所提算法对红外图像边缘检测的优越性,本次进行实验的平台配置为:硬件环境CPU Intel(R) Core(TM)-i5-4200H @3.4 GHz、内存为4 GB,运行在Windows 10操作系统,运行软件为Visual Studio 2015。如图5所示,分别为行人车辆、房屋建筑、原油储罐内部场景以及加了噪声的原油储罐内部场景下不同算法对红外图像的边缘检测结果。

图5 不同方法对红外图像的边缘检测结果(行人车辆)

图5(a)~图5(e)分别表示原始图像、传统Canny算子、文献[4]所提改进后的Canny算法、文献[10]所提改进的形态学边缘检测算法以及本文中提出算法检测后的边缘图像。对比图5中的结果图可以看出,传统的Canny边缘检测算子虽然可以检测到较为丰富的图像边缘,并且定位精度较高,可以提取到大量的细节边缘,但同时也提取到许多无用信息,存在许多误检,视觉效果较差;通过文献[4]和文献[10]所提算法处理后得到的边缘图像相比于传统的Canny算子检测效果得到了明显的提升,检测到的图像边缘较为完整,且轮廓边缘清晰,但仔细观察图5(c)可以看出结果图中依旧存在不少伪边缘,而图5(d)虽然整体图像较为平滑,且大致轮廓较为清晰,但原图中的部分细节边缘处理后未得到很好的保留。通过图5(e)可以看出,本文算法相较于其它算法处理后的边缘图像不仅检测到的边缘轮廓更加清晰,并且可以保留更多的细节边缘,整体图像平滑,视觉效果更佳。

图6和图7分别展示了不同方法对油罐内部和城乡建筑场景的红外图像边缘检测结果。从图6(b)和图7(b)结果可以看出,经典Canny边缘检测算法对油罐内部的红外图像的检测效果明显优于房屋建筑场景下的红外图像,对于较复杂,内含细节信息量较丰富的建筑图像,Canny算法虽然可以得到较为完整的轮廓边缘,但图像中存在比较多的伪边缘,检测的准确率较低,图像整体看上去比较杂乱,且图像视觉效果略显生硬;对比图6、图7中的图(c)和图(d)可以看出,在房屋建筑场景内,图6中图(d)的检测效果明显优于图(c),即在复杂,细节信息较多的环境中,改进的形态学边缘检测算法对图像的检测效果更佳,但在图7中,改进的Canny算子相对于多尺度形态学操作,处理结果后的边缘轮廓更完整,细节边缘更加突出;本文算法在两种环境下,检测到的边缘信息均较为完整清晰,且伪边缘非常少,图像视觉效果更佳。因此,从上述3组对比实验可以得出,本文算法在检测城乡建筑以及车辆行人等不同场景红外图像的边缘具有良好的自适应性,边缘相对更加完整、平滑且具备更佳的定位精度。

图6 不同方法对红外图像的边缘检测结果(城乡建筑)

图7 不同方法对红外图像的边缘检测结果(油罐内部)

为了进一步验证本文算法对含噪声图像的检测性能,在行人车辆、城乡建筑、有关内部场景下的各选一幅图像中添加椒盐噪声以及高斯白噪声,并采用上文中对比实验中的算法进行边缘检测实验。

对比图8(a)~图8(e)可以看出,在处理添加椒盐噪声后的红外图像时,传统Canny边缘检测算法的检测效果很不理想,受噪声的影响比较严重,导致边缘被噪声“淹没”,无法准确的检测到轮廓边缘;通过图8(c)和图8(d),可以看出改进后的Canny算法和改进形态学边缘检测算法对噪声起到了一定的抑制作用,两者检测到的轮廓均比较完整,但前者中还是会存在不少噪声和伪边缘,后者整体图像相对模糊,缺少细节边缘。通过图8(e)可以看出,本文算法相较于其余算法,不仅可以检测到更加清晰完整的边缘,且图像中含有的噪声较少,对椒盐噪声起到了很好的抑制作用。

图8 含椒盐噪声情况下图像边缘检测效果

从图9可以看出,改进后的Canny算法和改进形态学边缘检测算法受噪声的影响小一些,可以识别到目标的大致轮廓,但还是存在漏检、毛刺现象。对比其它结果图,明显可以看出本文算法不仅有效抑制了噪声的干扰和非边缘点的出现,且边缘轮廓更加平滑连续。

图9 含高斯噪声情况下图像边缘检测效果

3.2 客观评价

为了进一步证实本文所提算法的有效性,通过对不同算法处理后图像的均方根误差(mean squared error)和图像的峰值信噪比(peak signal to noise ratio)进行计算,以此为依据对图像的边缘检测效果进行评价。

MSE即均方根误差,指参数估计值与参数真值之差平方的期望值。均方误差可以表征输入图像与对比图的相似程度,可以衡量处理后的边缘图像是否对原图中的边缘信息得到完整的保留。MSE的值越小,则说明检测效果更佳。其计算公式为

(27)

式中:f′(i,j)、f(i,j) 分别为边缘图像和输入图像,M和N代表图像的宽和高。

PSNR即图像的峰值信噪比,表示图像的最大信号量与噪声强度的比值,同样是目前使用最为广泛的图像边缘评价指标之一。图像的噪声越小,峰值信噪比越大,反之峰值信噪比越大。其计算公式为

(28)

将式(27)带入得

(29)

式中:f′(i,j)、f(i,j) 分别为边缘图像和输入图像,M和N分别代表图像的宽和高,L为每个采样点位数,假设图像每个采样点用8位表示, max(L) 的取值为255。

表1展示了部分不同边缘检测算法对不含噪声图像处理后边缘图像MSE以及PNSR的对比结果,以不含噪声图像的Canny算子检测结果为标准。

表1 不同算法处理后图像的结果

(1)无噪声环境下

通过表1可以看出,在不同场景下,本文算法处理后的MSE均为最小值,文献[4]算法和文献[10]算法之间的值相差较小,而Canny算子处理后的MSE值最高。这表明保留图像边缘的清晰和完整性方面,本文算法的检测效果最佳,所得图像不仅边缘纹理特征显著而且细节信息较丰富。而本文算法处理后图像PSNR最大、多尺度形态学次之、Canny算子最差,说明本文算法处理后得到的图像相较于其它算法边缘更加平滑,噪声更小,视觉效果更佳。

表2展示了部分不同边缘检测算法对含噪声图像处理后边缘图像MSE以及PNSR的对比结果,以含噪声图像的Canny算子检测结果为标准。

表2 不同算法处理噪声后图像的结果

(2)含噪声环境下

通过表2可以看出,在不同噪声的影响下,Canny算子检测到图像边缘的MSE均取得最大值,且PSNR为最小值,说明Canny算法对图像的噪声非常敏感;文献[4]算法和文献[10]算法所得结果两者相比,文献[4]算法对噪声更加敏感,处理后边缘图像的MSE更大,且PSNR值更小;反观本文算法在不同噪声环境中,处理后图像的MSE均远小于其它算法,PSNR也为最大值。综上所述,本文算法在处理含噪声图像时对噪声具有更好的抑制效果,对边缘的检测性能更佳。

4 结束语

本文设计了一种基于改进Canny算子与多尺度形态学融合的边缘检测算法对红外图像进行边缘检测。该方法针对传统Canny算法对噪声敏感、存在伪边缘以及缺乏自适应性的问题进行改进,并为了进一步提升算法对噪声的抑制效果,与多尺度形态学边缘算法进行融合,得到最终的边缘检测算法;最后,通过仿真实验进行对比与分析,从视觉效果和客观评价两方面验证了本算法的有效性,具备很好的抗噪性,检测后得到边缘图像轮廓清晰平滑,细节边缘突出,层次感鲜明,并且可以实际应用于原油储油罐内部探测以及红外目标识别等领域。

猜你喜欢

形态学算子红外
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
网红外卖
拟微分算子在Hp(ω)上的有界性
闪亮的中国红外『芯』
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
8路红外遥控电路
TS系列红外传感器在嵌入式控制系统中的应用
医学微观形态学在教学改革中的应用分析
数学形态学滤波器在转子失衡识别中的应用