APP下载

改进Canny 的无人机影像边缘检测算法研究

2023-09-21王晓红周润民

智能计算机与应用 2023年9期
关键词:梯度边缘滤波

王 辉, 王晓红, 周润民, 苏 靖

(贵州大学矿业学院, 贵阳 550025)

0 引 言

近年来,随着测绘装备的更新和发展,地理数据的获取方式越来越多样化。 由于无人机采集数据灵活、高效、安全且成本低,无人机影像成为地理数据获取的一种主要方式[1-2]。 影像中富含丰富的场景信息,对无人机影像中的目标区域进行边缘检测和提取,是无人机数据应用与信息挖掘中的一项重要工作[3]。 目前常用的边缘检测算法主要分为两类:差分法和深度学习法[4]。 差分法是通过计算梯度来检测边缘信息,常见的梯度算子包括一阶差分算子如Sobel、Prewitt 和Roberts 等,二阶差分算子如Laplace、LOG 以及Canny,这些算子原理简单、容易实现,但抗干扰性能差、提取边缘不够精确。 尽管如此,Canny 算子凭借其较好的信噪比和检测精度被广泛应用[5]。 基于深度学习的边缘检测算法利用神经网络的分层特征来提高检测精度,Hu 等[6]使用距离场卷积神经网路(DF-CNN)预测非边缘点到边缘点的欧式距离,实现了端到端的目标边缘检测;黄胜等[7]通过图像分割子网络将学习到的图像语义信息传递给边缘检测子网络,提出一种语义信息指导的精细化边缘检测方法。 但此类方法需要大量的训练样本,且模型复杂,对硬件设备要求高;而差分类算法无需训练,可在低成本的移动设备上实时运行。 为此,本文保留经典Canny 算法的高定位性能和单边缘响应准则的基础上,针对经典算法无法去除椒盐噪声和阈值设置不灵敏的缺陷,构建一种自适应的无人机影像地物边缘检测算法。

1 Canny 边缘检测算法及其原理

Canny 边缘检测算法的基本思想是利用二维高斯函数与灰度图像进行卷积,找出滤波后图像的局部最大梯度值,选取合适的阈值得到图像的边缘[8]。 经典Canny 算法在平滑图像的过程中选取的二维高斯函数,式(1):

其中,参数σ需要根据经验人为设定。

如果参数值过小,则不能有效滤除噪声,导致滤波效果不佳;反之则会对图像造成过度平滑,导致部分边缘信息丢失。 且通过计算水平和竖直两个方向的偏导数来获取梯度值时,由于导数计算对噪声非常敏感,只从两个方向获取边缘容易出现伪边缘和边缘漏检的现象。 算法的高低阈值需要人为设置,在处理不同的图像时,固定的阈值并不能使每一幅图像都达到最佳效果,算法的自适应能力差。 因此,许多研究者基于Canny 算子提出一系列改进算法,刘丽霞等[9]针对经典Canny 中高斯滤波在平滑图像时边缘模糊这一问题,用引导滤波去噪,并改用大津法自适应选取双阈值,提高了Canny 算法的定位精度和鲁棒性;陈顺等[10]针对遥感影像含有大量混合噪声,利用非下采样轮廓波变换将影像分解,采用高斯滤波对各分量去噪,对重构后的影像结合顶帽变换和改进的Canny 算子进行边缘检测,可以最大程度的保留遥感影像的真实边缘;马为駽等[11]构建了一种混合滤波器对含噪的遥感影像进行滤波,针对去噪后的影像,利用Canny 算子进行边缘检测,提升了影像配准和识别的精度。 尽管大量研究者提出了不同的改进算法,但仍然没有在去噪和保边上两者兼顾,且由于阈值设置不当,导致检测封闭地物时精度不高。

2 改进的Canny 边缘检测算法

本文引进自适应各向异性扩散滤波来代替高斯滤波对无人机影像进行平滑去噪,为了检测到更多的边缘细节,利用Sobel 模板从4 个方向求一阶偏导数,并根据影像本身信息自适应获取双阈值来提高边缘检测精度。 本文算法流程如图1 所示。

图1 本文算法流程图Fig. 1 Algorithm flow chart of this paper

2.1 各向异性扩散滤波

各向异性扩散,也称PM 扩散,同高斯滤波、中值滤波一样,是一种以热扩散方程为基础的滤波算法。 该算法在去噪的同时提高了保留边缘细节的能力, 已被应用于图像处理领域。 设I={Ii,j,1 ≤i≤m,1 ≤j≤n} 为原始无人机影像,其中(i,j) 表示像素位置;m和n分别为影像的行列数。 根据影像中当前位置的像元和相邻4 个像元之间的关系,按照式(2)向水平和垂直两个方向扩散。

其中,λ是常数,用于衡量扩散速度;t表示迭代次数;c是一个关于梯度图像单调递减的扩散系数,需要人为设定,主要用来判断是否对阈值内的图像进行扩散。

原始影像在PM 扩散时,影像边缘区域的梯度值较大,因此相应的扩散强度较小,从而达到保护边缘信息的目的;非边缘区域梯度值较小,因此其扩散强度相对较大,具有较好的抗噪性。 但是当影像在强噪声的干扰下,利用差分法计算梯度无法排除强噪声的干扰,导致强噪声处的梯度值甚至可以超过边缘处的梯度值,此时该方法不能有效的区分噪声和边界信息,而且扩散系数和迭代次数需要人为设置,算法的自适应性差。

目前,很多学者针对传统PM 算法的缺点进行改进,如Catte-PM 算法在使用各项异性扩散之前对影像进行高斯滤波,防止噪声的干扰[12]。 但是在计算梯度模之前使用高斯滤波,虽然抑制了噪声,同时也会弱化边缘信息,加大了边缘提取的难度。 因此,本文采用自适应中值滤波(Adaptive Median Filter,AMF)算法平滑后的梯度模代替原始梯度模,在去除椒盐噪声的同时最大程度地保留了影像的细节信息,使边缘信息更完整,具有较好的影像复原效果。对于扩散系数c, 本文根据影像的梯度信息和局部标准差进行自动计算。 以影像的任一像素点为中心,其3×3 大小的正方形区域内的灰度均值为M(x,y),用式(3)表示:

进而可以求出局部标准差σ(x,y),式(4):

影像的边界区域内各像素点的平均值与像素灰度值相差较大,因而局部标准差也会很大;而非边界区域各像素点的平均值与像素灰度值很接近,因而局部标准差变化不大。 通过标准差和梯度信息相结合就可以获得自适应的扩散系数,式(5):

在PM 扩散中引入原始影像和滤波影像之间的边缘相似性β来控制其迭代过程,其定义为式(6):

其中,ΔIf和ΔIg分别表示原始影像和滤波影像的边缘图像,和分别为ΔIf和ΔIg的均值。

当迭代满足式(7)时,迭代终止,获得相应的滤波影像。

式中ε 越小,影像越平滑,相应的边缘信息损失越多,本文取ε=0.2 时可得到较好的滤波效果。

无人机影像获取过程中,光照、阴影等外界因素会使影像产生噪声[13]。 改进后的PM 算法不仅降低了椒盐噪声的影响,且能确保边界信息的完整性,同时使得算法减少了人为干预,更进一步实现了影像的自动化处理,有利于后续的边缘检测。

2.2 3×3Sobel 模板计算梯度幅值及方向

经典Canny 算法中利用2×2 邻域大小的Sobel算子计算梯度幅值,边缘检测准确性低,且抗干扰能力较差[14]。 为了获取更多的边缘信息,本文利用3×3邻域大小的Sobel 梯度模板,从0°、45°、90°以及135° 4 个方向分别计算一阶偏导数,并对各个方向的权值进行归一化处理。 Sobel 梯度模板如图2所示。

图2 Sobel 算子梯度模板Fig. 2 Sobel operator gradient template

将滤波后影像和上述模板进行卷积操作得到4个方向的梯度值。 为了保证其抗干扰性,将4 个方向的梯度值按式(8)投影到水平和垂直方向:

进而得到当前像素的梯度幅值和梯度方向,式(9)和式(10):

计算梯度幅值和方向时综合考虑当前像素点八邻域内4 个方向的梯度值,使影像边缘定位更加准确,也极大地减少边缘漏检的现象。

2.3 基于迭代法和最大熵法自适应获取阈值

经过非最大值抑制后得到的影像边缘较粗略,需要根据高、低阈值来进一步判断粗略边缘上的点是否为边缘点。 高、低阈值的设置直接关系到边缘检测的精度,是边缘提取的关键[15]。 经典Canny 边缘检测算法需要人为设置双阈值,若阈值设置过高,可能导致边缘线断裂甚至缺失;若阈值设置过低,则容易造成边界误判。 合适的阈值不仅能抑制噪声,还能减少伪边缘的产生。 为了尽可能保留边缘细节以及有效抑制伪边缘,本文采用迭代法和最大熵法(MEN)自适应获取高、低阈值。 迭代法的基本思想是按图像的灰度性质选择一个阈值T1 作为初始阈值,给定规则更新阈值直到达到最优效果为止;MEN 基于信息熵的定义,求解阈值T2,使目标和背景的分布均匀程度最佳,即两类的信息熵之和最大,其基本思想是遍历图像的灰度级找到一个阈值T2,按图像的信息熵分为目标H1 和背景H2 两部分,当这两部分的信息熵之和最大时,说明图像目标与背景的像素分布最均匀,此时T2 为最佳分割阈值。 具体步骤如下:

(1)迭代法自适应获取双阈值

取非最大值抑制后影像的平均灰度值为初始阈值T1,分别计算阈值T1 分割出两部分的平均灰度值,并将两部分的平均值作为新的阈值,比较新阈值和T1 之间的大小,若两差值的绝对值小于某个特定值,则将新阈值作为最优阈值T1 输出,否则将新阈值赋给T1 重新计算,直到满足条件得到最优阈值T1。

(2)MEN 法自适应获取双阈值

在0~255 之间取T2, 分别计算目标类和背景类的信息熵,如式(11)和式(12):

求解使得两个区域的信息熵之和最大时的T2作为MEN 阈值。

针对非最大值抑制后的影像,分别利用迭代法和MEN 法获取最佳阈值T1 和T2 作为边缘提取的高阈值,低阈值取高阈值的二分之一。

2.4 边缘连接

迭代法和MEN 法确定高、低阈值后,像素值高于高阈值的点被判定为边缘点,低于低阈值的点被判定为非边缘点,对于介于高低阈值之间的像素点分析其八邻域像素,有一个点满足边缘点的条件就将其判定为边缘点,并将边缘点连接[16]。 基于迭代法自适应获取阈值后得到的边缘图像为F1, 基于MEN 法自适应获取阈值后得到的边缘图像为F2,根据图像的逻辑运算,将二值图像F1 和F2 同一点的像素灰度值设为h1(i,j) 和h2(i,j),h(i,j) ∈[0,1],并将两者进行逻辑与运算,对应图的灰度值全为1 时,输出为1;否则输出为0,得到融合后的边缘图像。 对最终的边缘图像进行形态学闭运算,改善边缘轮廓的完整性和连续性。

3 实验结果和对比分析

本文基于 Windows10 系统环境下 Matlab R2018a 平台进行两组实验。 实验数据均选取由大疆经纬M300 搭载P1 镜头拍摄的无人机影像,影像一主要地物为道路,影像二主要为建筑物。 通过定量和定性分析,验证本文构建的改进Canny 边缘检测算法的可行性。

3.1 滤波结果及分析

为验证本文改进滤波算法的有效性,将本文算法和高斯滤波、中值滤波、PM 扩散滤波比较。 PM算法中的参数λ取经验值0.125。 在影像中加入混合噪声,无人机影像滤波结果如图3 所示。

图3 无人机影像滤波结果Fig. 3 Filtering results of UAV images

由图3 可知,当在原图中加入0.1 的椒盐噪声和标准差为0.01 的高斯噪声时,不难看出高斯滤波和中值滤波无法去除混合噪声,且高斯滤波使影像边缘变得模糊,视觉效果较差;PM 滤波在平滑过程中更好地保留了图像的边缘信息,但在平滑处出现去噪不彻底的问题;本文改进的滤波算法有效克服了上述缺点,在平滑图像和保留边缘细节方面都有较好的表现。

为了进一步客观的比较各算法的性能,本文选用峰值信噪比(PSNR) 和边缘保持指数(EPI) 评价算法的去噪效果和边缘保持能力。PSNR值越大表示去噪效果越好;EPI值越大代表边缘保持能力越好,PSNR和EPI的计算公式为式(13) 和式(14):

其中,g(i,j) 为滤波后影像;f(i,j) 为原始影像;m,n分别代表影像的行列数。

4 种滤波算法的性能对比结果见表1。 前两种方法在去噪和边缘保持两方面不能兼顾,本文算法的峰值信噪比和边缘保持能力均高于其他方法。

表1 4 种滤波算法的性能比较Tab. 1 Performance comparison of four filtering algorithms

3.2 边缘检测结果及分析

由于地物光谱特征的差异,无人机影像中每个波段所突出的重点不一样。 为了充分利用影像的多光谱信息,本文将无人机影像分解为R、G、B 3 个波段,逐波段检测影像的边缘信息,最后通过波段叠加把多个波段的边缘信息集中在一幅影像,提高边缘检测的精度。 采用传统Sobel 算子、Canny 算法、Otsu+改进canny 算法以及本文改进算法分别对两幅影像进行边缘检测,通过人眼观察和定量分析验证本文算法的可行性。 原始影像边缘检测结果如图4 和图5 所示。 由图4 和图5 可知,使用Sobel 算子和经典Canny 边缘检测算法能大致检测出道路的边缘,但影像边缘定位能力较差,对于地物相对复杂的影像二没完全检测出建筑物边缘,边缘漏检现象严重; Otsu+改进canny 边缘检测算法相对前两种方法检测结果较好,但是由于影像经过非最大值抑制后,梯度值相对集中,阈值选取不当,导致影像边缘存在断裂和缺失的现象,尤其是两排建筑物中间的道路;而本文算法能检测出完整的边缘,建筑物呈封闭状态且定位精度较高。

图4 原始影像一边缘检测结果Fig. 4 Edge detection result of original image I

图5 原始影像二边缘检测结果Fig. 5 Edge detection result of original Image II

为在原始影像中添加5%椒盐噪声的边缘检测结果如图6 和图7 所示。 从图6 和图7 可以明显看出,前两种方法受噪声干扰影响较大,几乎检测不到边缘信息;Otsu+改进canny 算法和本文算法受噪声干扰小,但是本文算法边缘判断更准确,连续性较好。

图6 加噪影像一边缘检测结果Fig. 6 Edge detection result of noise image I

图7 加噪影像二边缘检测结果Fig. 7 Edge detection result of noise image Ⅱ

为了验证算法的通用性和定性分析的可靠性,对影像一和影像二在无噪声和有噪声干扰下,采用PSNR评价边缘检测效果,PSNR值越大表示图像失真越少,边缘检测能力越好。 评价结果对比见表2。由表2 可知,本文算法利用自适应中值滤波改进各向异性扩散进行去噪,结合迭代法和MEN 法自适应获取双阈值,减少了影像边缘误判和漏检现象,PSNR值均高于文中所提的其他算法。

表2 边缘检测算法PSNR 值结果表Tab. 2 PSNR value result table of edge detection algorithm

4 结束语

本文从无人机影像的本身特征出发,充分利用了影像的多光谱信息,在经典Canny 边缘检测的基础上组合多种算法来增强鲁棒性。 针对经典Canny边缘检测算法无法去除椒盐噪声的问题,利用基于自适应中值滤波的各向异性扩散来对影像进行降噪处理,实验结果表明该方法能有效抑制椒盐噪声。为了准确、客观地选取阈值来判断边缘点,本文结合迭代法和最大熵法自适应获取阈值,并将两种方法获取的边缘信息利用逻辑与运算融合,改善了经典Canny 算法根据经验设置阈值的缺陷,减少了无人机影像中丰富地物造成的边缘误判和漏检现象,提高了算法的自适应性。 但本文算法将部分阴影检测为地物边缘,因此后续研究可考虑结合纹理信息剔除此部分边缘,为无人机影像的目标提取与分割等操作提供更加准确的边缘轮廓信息。

猜你喜欢

梯度边缘滤波
一个改进的WYL型三项共轭梯度法
一种自适应Dai-Liao共轭梯度法
一类扭积形式的梯度近Ricci孤立子
一张图看懂边缘计算
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
地温梯度判定地热异常的探讨
基于随机加权估计的Sage自适应滤波及其在导航中的应用
基于Sage—Husa滤波的GNSS/INS组合导航自适应滤波
在边缘寻找自我