图像边缘检测算法的Simulink实现及改进*

2023-12-11 12:10彭双平
舰船电子工程 2023年9期
关键词:高斯算子梯度

彭双平

(中国船舶集团有限公司第七一〇研究所 宜昌 443003)

1 引言

图像边缘检测是进行图像处理的一种方法。图像边缘检测常常用于人脸识别、医疗图像、车牌检测和工业检测等实际问题。边缘检测还在图像去噪、生物图像、红外图像、无人机图像、遥感图像处理中发挥着重要的作用[1~6]。现在图像边缘检测在各种软件环境下已经十分成熟[7~9]。但仍有很多技术难关需要突破,例如:图像边缘检测的实时性、边缘化处理、可移植性[10~12]。而这些技术难关可以联合FPGA 和Simulink 来进行技术突破。Xilinx 公司为了方便FPGA 开发推出System generator。System generator 将一些硬件模块融入到Simulink的库工具中,这样用户可以在Simulink 中进行算法的设计与实现,并且可以直接生成HDL 文件,或者生成网表,后期在Vivado 调用,可以直接生成比特流文件。这样可以大大提高FPGA 开发速度,将开发人员从枯燥的底层硬件开发中解放出来,可以专心放在算法设计与实现上。而FPGA 具有高并发性、功耗低等优点[13~15],还可以将算法移植到边缘计算中去[16],这样又极大地推动了算法的落地。

2 边缘检测算法原理与系统设计

边缘检测算法是计算机视觉常用来做图像处理的方法之一。边缘检测算法可以提取到图像中关键的边缘信息。图像的边缘信息是指图像中存在跳变的像素点集合。在现实应用中,最常见的边缘类型是台阶型、斜坡型和屋顶型。台阶型边缘的像素值变化容易检测。斜坡型的检测与梯度有很大的关系。屋顶型的点常常与噪点混淆,这种边缘增加了我们边缘检测的难度。如图1 为三种边缘的数学模型。按照其数学特性,我们可以借助微分来进行边缘检测。由此,借助一阶导数与二阶零点是确定图像边缘的关键。

图1 三种边缘的数学模型及导数

如图2 为本次Simulink实现的具体流程,在实现的过程中,关键为进行问题分析,将现实中的问题数学化,转化为算法。算法设计的优劣决定了Simulink实现算法的效果。

图2 Simulink实现流程

图3 Roberts算子Simulink实现

3 算法实现

本文在Simulink 中实现了Roberts、Prewitt、Sobel、Laplace边缘检测算法和高斯滤波算法。

3.1 Roberts

Roberts 是一种基于局部差分的边缘检测的算子,利用交叉差分的梯度算法计算,梯度的值就代表边缘变化的强度。梯度的方向与边缘的方向正交。

梯度算子的计算方式:

进一步简化,梯度算子可简化为

图像离散化可得Roberts算子:

在Simulink的实现流程如下:

1)将串行数据转化为2*2矩阵输入。

2)进行矩阵与算子的卷积计算。

3)数据转化整理。

4)图像输出。

3.2 Prewitt与Sobel的Simulink实现

Prewitt 与Sobel 都是利用像素点的上下、左右邻点的灰度差来进行边缘检测。但Sobel算子结合了高斯平滑,在Prewitt算子的基础上对相邻点卷积计算增加了权重的概念,从而实现图像锐化并突出边缘轮廓。如图4为两种算子的卷积模板。

图4 Prewitt与Sobel算子

在Simulink中实现的流程如下:

1)将数据由串行数据转化为3*3矩阵输入。

2)四个方向并行与对应的卷积因子进行卷积运算。

3)梯度综合。

4)阈值对比。

5)输出图像。

如图5 为Simulink实现Prewitt 算子总设计图。整个过程充分利用并行计算。原有一个卷积处理的时间,在算法设计中可以实现四个卷积处理。效率整整提高三倍。

图5 Simulink实现Prewitt算法总电路图

3.3 Laplace

Laplace 算子是一种二阶微分算子。在计算的过程中,利用二阶导数零交叉特性来进行边缘检测。如图6为Laplace算子。

图6 Laplace算子

Laplace在Simulink中实现的流程如下:

1)将数据由一维串行数据转化为3*3 矩阵输入。

2)3*3 矩阵与卷积因子进行卷积运算。

3)数据综合

4)输出图像。

如图7所示,逻辑运算时,使用九路并行运算。运算速度提高了八倍。

图7 Laplace算法实现电路图

3.4 高斯滤波的Simulink实现

高斯滤波是一种典型的线性平滑滤波算法。采用加权平均法来对图像的像素点进行平滑处理和噪点消除。这个算法的关键是用加权平均代替原图中的像素点,各个方向的平滑程度是相同的。如图8为高斯滤波的卷积核模型。

图8 简化版高斯核

高斯滤波算法在Simulink的实现流程如下:

1)图像数据转化为3*3矩阵输入。

2)与卷积核进行逻辑处理。

3)数据处理(主要进行数值浮点的对齐)。

4)数据输出,图像显示。

如图9所示,在进行高斯滤波计算时可以进行三路并行计算。运行速度提高了两倍。高斯滤波可以有效地消除图像噪声。在边缘检测的过程中,可以根据需求将其加入其中。

图9 高斯滤波的Simulink设计与实现图

4 系统验证

算法在Simulink 中设计与实现后,在Matlab 中进行仿真验证。如图10为对应算法的实现效果图。

图10 边缘检测实现效果图

对实现的算法图像做进一步分析。如表1 为图像边缘检测算法的效果统计。由数据可知,经过边缘检测处理后,图像的信息熵有很大的降低,说明图像的不可控因素和随机因子有所降低。经过Roberts 边缘检测后,图像的平均梯度有所降低,根据实际效果图,也可以得出,Roberts 对图像的边缘检测是最弱的。Sobel 和Laplace 对图像边缘检测的效果极佳,平均梯度是其他方法的三到六倍。Sobel 和Laplace 可以清晰地绘制边缘轮廓。

表1 图像边缘检测效果统计

根据实验结果和参考文献,得出表2 各种边缘检测算子实现效果比较。

表2 多种算子比较

表3 高斯滤波效果统计

由图11 和图12所示,利用Simulink实现的高斯滤波算法可以消除椒盐噪声带来的影响。在进行边缘处理时,为了消除图像中的噪声,可以对图像先进行高斯滤波,在进行边缘检测。

图11 带有0.02的椒盐图像

图12 高斯滤波

高斯滤波处理后,图像的平均梯度有很大的降低,说明高斯滤波可以将图像中的噪声做平滑处理,将噪声对图像的影响降低。

5 结语

本文使用Simulink实现了当前热门的边缘检测算法。对Roberts、Prewitt、Sobel 和Laplace 等边缘检测算法的Simulink实现给出了详细的实现流程。为了更好地进行边缘检测,本文还给出了高斯滤波的Simulink实现方法和流程。用户可根据实际情况进行选取。本文也验证了Simulink 能够简单快捷地设计与实现算法,并且对后期应用于硬件提供了很大的便利。但本文的算法没有在多个场景进行实证研究,后续需要联合硬件来实现真正的边缘计算。

猜你喜欢
高斯算子梯度
一个改进的WYL型三项共轭梯度法
拟微分算子在Hp(ω)上的有界性
一种自适应Dai-Liao共轭梯度法
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
数学王子高斯
天才数学家——高斯
一类Markov模算子半群与相应的算子值Dirichlet型刻画
一类扭积形式的梯度近Ricci孤立子
Roper-Suffridge延拓算子与Loewner链
有限域上高斯正规基的一个注记