韦德鹏,陈继清,2,罗 天,张宏都,龙 腾

(1.广西大学 机械工程学院,广西 南宁 530007;2.广西制造系统与先进制造技术重点实验室,广西 南宁 530007)

0 引 言

图像轮廓提取是机器视觉技术中常用的一种图像预处理操作,主要是根据图像灰度值的差异来检测图像轮廓。目前,国内已有一些学者对图像边缘检测算法做了研究:文献[2]提出了一种基于改进的背景估计和最大熵法的钢坯表面点印字符图像自适应阈值分割方法,该方法采用一种重构一维直方图的鲁棒最大熵法进行全局阈值分割,测试结果表明,该方法分割所得二值图像噪声小、边缘轮廓清晰,具有较强的鲁棒性和较好的适应性。文献[3]提出了一种基于机器学习的图像敏感信息识别方法,根据机器学习中的支持向量机(SVM)原理,设计一种图像分类器实现对图像敏感信息的分类和识别,与传统的图像识别方法相比,该方法具有较高的识别精度,可在较短的识别时间内完成图像敏感信息识别。文献[4]提出了一种基于改进Canny算子的图像弱边缘检测算法,该算法使用梯度倒数加权滤波法对原始图像进行滤波处理,既能保持边缘,又可以去除各种斑点噪声,可以检测弱边缘,具有较高的边缘检测率;文献[5]提出了一种基于自适应Canny算子和多方向Sobel算子的虹膜边缘检测算法,该算法对虹膜图像能准确定位边缘,检测精度高,能满足实际应用的需要;文献[6]提出了一种基于改进索贝尔算子的灰度图像边缘检测法,改进后的方法具有局部特性更好、定位更准确的特点,增强了目标物体的检测识别效率;文献[7]提出了一种基于Sobel算子的边缘检测算法,该算法采用局部自适应动态阈值提取边缘信息,具有较强的抗噪能力;文献[8]以Sobel算子为基础,提出了一种八方向的边缘检测算法,采用八个方向的模板进行边缘检测,使得检测出的图像边缘更完整。

文献[4-5]使用Canny算子进行图像边缘检测,Canny算法虽然检测精度高,但是算法实现起来较复杂,容易受到噪声的影响,出现“过检测”等问题;文献[6-7]使用Sobel算法进行图像边缘检测,改进Sobel算子虽然运行速度快、抗噪声能力强,但是容易出现漏检的情况;文献[8]虽然通过增加方向模板的数量,使得检测到的边缘信息更完整,但是却忽略了图像噪声的影响,使得整体检测效果较差。

综上所述,早期的方法往往只专注于图像边缘检测算法本身,却忽略了对图像进行预处理和对检测结果进行后处理,这也许能够对图像边缘检测算法的各方面性能有很大提升。

本文在文献[8]提出的传统八方向Sobel算子的基础上提出了一种基于改进八方向Sobel算子的图像轮廓提取方法。该方法首先采用高斯滤波算法对图像进行预处理,以减少图像噪声的影响,然后利用八个方向的模板计算各像素点的梯度,以提取到多个方向上的轮廓信息,最后采用区域生长算法进行后处理,以补充被漏检的边缘信息,从而使得提取到的图像轮廓更精确完整。

1 改进八方向Sobel边缘检测算法

本文提出的改进八方向Sobel图像轮廓检测算法,主要由图像预处理、八方向Sobel轮廓提取和区域生长三个部分组成,其算法流程如图1所示。首先,将输入图像由RGB图像转换为灰度图像,并使用高斯滤波算子对灰度图像进行滤波操作,以减少图像噪声对检测结果的影响;然后,采用八方向Sobel边缘检测算法对经过去噪处理后的灰度图进行图像轮廓的提取,从而获得轮廓图像;最后,使用区域生长算法对提取到的轮廓图像进行后处理,以补充被漏检的图像轮廓信息,从而使得提取到的图像轮廓更完整。

图1 本文算法流程图

1.1 图像预处理

为了使得提取到的图像轮廓更精确,提升算法的抗干扰性,本文采用高斯滤波算法对待测图像进行滤波处理,以尽可能地消除图像噪声对轮廓提取造成的影响。高斯滤波算法是一种根据高斯函数的形状来选择权值的线性平滑滤波方法,其原理可以理解为:利用一个掩膜与图像进行卷积运算的过程,换句话说,就是使用由掩膜确定的领域内像素的灰度值进行加权平均后作为掩膜中心像素点的灰度值,如图2所示。

图2 高斯滤波示意图

高斯滤波中掩膜的各点系数值可由式(1)的二维分布函数计算得出:

式中:(,)表示掩膜内任意点的坐标;(,)表示掩膜中心点的坐标;表示标准差,其取值代表数据的离散程度,直接影响图像的最终平滑效果,本文取=7进行计算。

本文算法使用的是一个大小为3×3的掩膜对图像进行高斯滤波处理,以掩膜中心点作为坐标原点,则其他各点坐标如图3所示,将各点坐标值代入式(1)即可计算出掩膜中各点的系数值。

图3 掩膜示意图

1.2 八方向Sobel算子

八方向Sobel算法相对于传统Sobel算法,在只有横向、纵向两个方向模板的基础上增加到了八个方向。文献[8]提出的八方向Sobel算法使用的是5×5的方向模板,虽然边缘检测效果有所提升,但这会使得整体计算量增大,检测速度降低。为了解决这一问题,本文采用的是3×3的方向模板,各方向模板如图4所示。

图4 八方向卷积因子

首先,将待检测图像分别与八个方向模板进行卷积运算,由此得到八个方向上的图像轮廓信息、、、、、、、。然后,将计算得到的八个方向的图像轮廓信息通过如式(2)~式(4)所示的方式进行加权求和,由此可计算出图像点(,)处的灰度值′(,)。

为了进一步提高运算效率,本文使用式(5)代替式(4)以减少计算量,从而更快速地求出图像点(,)处的灰度值′(,)。最后,选择一个适合的阈值TH,将计算出来的每一个像素点的灰度值′(,)做阈值运算。若点(,)处的灰度值大于或等于255,判定该点为轮廓;否则,判定该点为非轮廓点,如式(6)所示,由此实现对图像轮廓的提取。

式中:′()表示经过阈值运算后图像点()处的灰度值;TH表示设置的阈值。

1.3 区域生长算法原理

为了使提取的图像轮廓更加精确,采用区域生长算法对提取到的轮廓图像进行后处理。区域生长算法的过程需要确定三个关键问题:种子点选取、生长准则和生长停止条件,本文通过在图像尺寸范围内随机选取10 000个点作为生长种子的位置,使用图像灰度值之差作为生长准则,即若灰度值之差处于设定的阈值范围则满足生长准则,图像中每一个像素点都有归属作为生长停止的条件,其算法流程如图5所示。

图5 区域生长算法流程图

首先,在图像上选取种子点的位置;然后,按顺序对图像的每个像素点进行扫描,以找出没有归属的像素点记为(,),分别判断点(,)的8邻域(如图6所示)的所有像素点(,)是否满足生长准则:若满足生长准则,那么将该像素点(,)与像素点(,)合并,否则,跳到下一个像素点进行判断;最后,当第一个点(,)的8邻域的所有像素点都判断完后,寻找下一个没有归属的像素点重复上述步骤,直到图像中每一个像素点都有归属时,满足生长停止条件,生长结束。

图6 8邻域像素点示意图

2 实验结果分析

为了验证本文算法对图像轮廓提取的效果,从汽车牌照数据集(CCPD)中随机选取3张图片在如表1所示的实验环境下进行了实验,分别使用传统八方向Sobel算法、传统八方向Sobel+区域生长算法和本文算法进行对比实验,结果如图7所示。

表1 配置参数

图7 检测结果

根据图7可以发现:在整体上,由传统八方向Sobel算法提取到的轮廓图像效果较差,存在噪点多、轮廓不连续的问题;相比于传统八方向Sobel算法,使用增加了区域生长算法的传统八方向Sobel算法提取到的图像轮廓线条连续性更好,但是噪点数量明显增多;而通过本文算法提取的图像轮廓相比于前面两种方法,不仅噪点少,而且轮廓线条也更加连续、完整。

在细节上,通过观察图7中红圈部分可以发现:使用传统八方向Sobel算法提取到的地砖缝隙(如图7b))、汽车后围挡下边缘和中间反光灯(如图7f))的轮廓线条连续性差,汽车备胎箱(如图7i))的圆形轮廓线条存在漏检,且都分布有少量噪点;通过在传统八方向Sobel算法上增加区域生长算法虽然使得提取到的地砖缝隙(如图7c))、汽车后围挡下边缘和中间反光灯(如图7g))和汽车备胎箱(如图7k))的轮廓线条连续性更好、漏检率更低,但也使得噪点的数量增多;而采用本文算法提取的图像轮廓线条连续性更好、噪点数量更少,无论是对地砖缝隙(如图7d))和汽车后围挡下边缘(如图7h))这类直线轮廓还是对汽车备胎箱边缘(如图7l))这种曲线轮廓均具有良好的检测性能。

通过上述分析表明,本文算法对图像轮廓的检测性能良好,抗噪能力强,具有良好的鲁棒性。

为了更直观地展示本文算法对图像轮廓提取的效果,引入了均方误差(MSE)、峰值信噪比([PSNR)和结构相似性(SSIM)三个指标对检测结果进行评价。其中,MSE指参数估计值与参数真值之差平方的期望值,MSE的值越小说明检测图像与原图像越接近,也就是说检测图像的效果更好;PSNR为峰值信号的能量与噪声的平均能量之比,PSNR的值越大说明检测图像所含的噪声越少,图像质量越好;SSIM为衡量两幅图像相似度的指标,其取值范围为0~1,SSIM的绝对值越接近1说明所检测图像与原图像越接近。各指标的计算方法如下:

式中:′(,)和(,)分别表示待评价图像和原始图像;,分别表示图像的长与宽。

式中:表示一个像素点所用二进制位数,一般是8位。

式中:μ,μ分别为,的平均值;σ,σ分别为,的标准差;σ为与的协方差;=(),=()为用来维持稳定的常数;取0.01,取0.03。

从汽车牌照数据集(CCPD)中随机选择20张图片,分别使用传统八方向Sobel算法、传统八方向Sobel+区域生长算法和本文算法对其进行图像轮廓提取,并将在同一算法下获得的20个MSE、PSNR和SSIM数值进行记录并取平均值,结果如表2所示。

表2 检测结果

由表1数据可知:使用传统八方向Sobel算法提取的 轮 廓 图 像PSNR为63.13,MSE为49.72和SSIM为0.018,整体效果较差;由传统八方向Sobel+区域生长算法的提取效果整体优于传统Sobel算法,三个指标分别为83.92,30.14和0.178;而使用本文算法提取的轮廓图像,其PSNR为97.45,MSE为27.89和SSIM为0.231,整体效果相比于前两种算法均有大幅度的提升。其中,本文算法的PSNR比前两种算法分别提高了54.4%和16.1%,MSE分别提高了43.9%和7.5%,SSIM分别提高了92.2%和29.8%。结果表明,由本文算法提取的轮廓图像的质量优于传统八方向Sobel算法。

3 结 语

本文针对传统八方向Sobel边缘提取算法对图像的检测精度差、漏检率高等问题,在传统八方向Sobel算子的基础上提出了一种改进的八方向Sobel算子的图像轮廓提取方法。该方法首先采用高斯滤波对图像进行预处理,然后利用八个方向的模板计算各像素点的梯度,以提取到多个方向上的轮廓信息,最后运用区域生长算法进行后处理,使得最终提取到的图像轮廓更完整。通过实验表明,与传统八方向Sobel算法相比,本文算法提取的轮廓图像的PSNR、MSE和SSIM指标均有提升,因此本文算法提取的图像轮廓更精确,漏检率更低,整体检测效果更优。