SCI论文(www.lunwensci.com)
摘 要:边缘信息是数字图像信息的重要组成部分,传统的边缘检测程序会因串行执行指令而导致检测效率下降。为了提 高图像边缘信息的处理能力,提出一种基于现场可编程门阵列的改进 Sobel 算子的边缘检测方法,其中, Sobel 算法的卷积核 从 2 方向扩展到 8 方向,并具备阈值自适应能力。板级测试结果表明,基于现场可编程门阵列的改进 Sobel 算法边缘检测方法 充分发挥 FPGA 并行处理的优势,能够高效准确地检测图像的边缘信息,图像层次感强、成像稳定,在图像的并行处理中有明 显的优势。
Research on Image Edge Detection Technology of Improved Sobel Algorithm
Based on FPGA
XING Zhihua, SHANG Jianhua
(School of Information Science and Technology, Donghua University, Shanghai 201600)
【Abstract】:Edge information is an important part of digital image information. The traditional edge detection program reduces the detection efficiency because of its serial execution instructions. In order to improve the processing ability of image edge information, this paper proposed an improved Sobel operator based on FPGA (Field Programmable Gate Arrays). The convolution kernel of Sobel algorithm was extended from 2 directions to 8 directions and it had threshold adaptive capability. Board-level experiments show that the FPGA-based improved Sobel algorithm edge detection method gives full play to the advantages of FPGA parallel processing and it can efficiently and accurately detect the edge information of images. It not only has a strong sense of image hierarchy and stable imaging, but also has obvious advantages in parallel processing of images.
【Key words】:image processing;8-direction Sobel operator;adaptive threshold;FPGA
1 系统框架结构
科学技术的快速进步给数字图像处理技术带来了广 阔的发展空间,并使其广泛应用于人工智能和通信等领 域。在数字图像处理技术中,图像边缘检测技术是准确 获取图像信息的必要手段,也是后续高级图像处理的 重要基础 [1]。图像边缘是指图像灰度发生空间突变的像 素集合,是图像的重要特征 [2],利用图像梯度可对突变 的像素点进行标识。当采用一阶导数求解图像梯度时, Roberts 算子求解简单,但抗噪性较弱 ;Prewitt 算子的边缘定位能力不佳 ;Canny 算子的边缘检测效果较 好,但实现复杂,会极大降低处理速度 [3]。相对而言, Sobel 算法则能弥补上述不足,在噪声弱化、边缘检测 和处理速度等方面能力突出,更适于求解图像的梯度信 息 [4.5]。其次,边缘检测算法通常对噪声干扰较为敏感, 因而采用中值滤波可较好地消除椒盐噪声的影响。综上 所述,本文基于 FPFA 设计图像边缘检测系统,并借助 LCD 屏幕显示数字图像的边缘检测结果。
基于 FPGA 的改进 Sobel 算法图像边缘检测系统结构如图 1 所示,系统主要包括图像数据接收模块、图像存储模块、锁相环模块、图像显示模块和图像处理模块5 个部分。其中, FPGA 芯片为 Cyclone 系列第四代的EP4CE10F17C8.锁相环模块使用 Quartus II 中的 IP 核。 图像数据接收模块接收主机 PC 通过 UART 串口发送的 数据 , 并将数据输出至图像存储模块。图像存储模块通 过 FPGA 控制片外 SDRAM 芯片和内部读写 FIFO 进而 对大量数据进行高速缓存。图像显示模块通过 FPGA 驱 动 TFT 液晶屏,以显示图像处理模块的输出数据。
1.1 锁相环模块
在复杂的 FPGA 设计中,不同模块通常需要不同频 率的时钟,借助 PLL 模块可以将已有时钟分频和倍频, 以满足各模块时钟要求 [6]。在改进 Sobel 算法边缘检测 系统中, 串口接收模块的工作时钟为 50MHz, SDRAM 控制器的工作时钟是 2 个具有一定相位差的 100MHz 信 号,而 TFT 屏显示控制器模块需要 33MHz 的时钟信号。 为了满足整个系统工作的时钟信号要求,基于系统外部 50MHz 的时钟信号,调用 Quartus II 的 PLL IP 核生成 相应的时钟信号。
1.2 图像数据接收模块
图像数据接收模块负责将接收到的数据进行串并转 换 [7]。主机 PC 发出的数据经 FPGA 处理后再经串口输 出到存储模块。在设定的波特率下接收 UART 数据,首 先检查空闲状态,等待数据起始位 0 ;其次,判断起始 位是否为 0.如果条件满足,则开始接收数据,并且从 低位到高位串行接收 8 位数据 ;最后,判断结束位是否 为 1.如为 1 表明一帧数据接收完成。如此往复,保证 所有数据被成功接收。
1.3 图像存储模块
图像存储模块由读写 FIFO 和片外 SDRAM 组成。其 中, FIFO 是一种先进先出的数据存储器,无外部读写地 址,通过地址自动加一操作控制读写,因此 FIFO 读写 使用简单,可用于跨时钟域数据传递 ;片外 SDRAM 存 储器的输入时钟频率为 100MHz,内存为 256MB,含有4 个内存为 4MB 的 Bank 存储块,数据位宽为 16 位 [8]。
系统开始工作后,片内 SDRAM 存储控制模块中的 写 FIFO 将图像数据接收模块的数据写入片外 SDRAM 芯片中进行缓存,读 FIFO 则将 SDRAM 芯片中的数据 以串行方式读出。SDRAM 控制器模块采用状态机设计 方式。SDRAM 上电后,系统为空闲状态 ;当上电初始 化完成后,系统进入刷新状态,完成自动刷新操作,此 时若有读或写指令请求, SDRAM 控制模块将会转移到 相应的读或写状态,以完成数据的读或写操作。
1.4 图像显示模块
图像显示由 FPGA 驱动 TFT 液晶屏进行显示,显 示屏的分辨率为 800×480.通常情况下, 像素是由 24 位即 3 个字节进行描述的,为了减小图像的数据尺寸, 本系统采用色彩分量 R(Red, 红色 )、G(Green, 绿色 ) 和 B(Blue, 蓝色) 分别占 5bit、6bit 和 5bit 的数据格 式(即 RGB565)输出像素,因此只需 16 根数据线显 示不同的颜色信息。RGB 三原色接口 TFT 屏的显示方 式是电子束逐行扫描,电子束的扫描顺序呈 Z 字形,从 屏幕的左上方开始,在屏幕的右下方结束。当电子束从 上一行最右端移动到下一行最左端时,视频信号会暂 停,即行消隐 ;同理,当电子束从右下角移动到屏幕 左上角开始新的场扫描时,也会出现场消隐 [9]。消隐期 间,需要同步行信号和场信号。由于扫描每一行和每一 场所需要的时间是固定的,因此扫描过程中可用计数器 计时。当行扫描计数器和场扫描计数器计数到达正确图 像位置时产生一个图像数据有效标志信号,并输出待显 示的图像数据 [10]。
2 图像处理模块
2.1 图像的灰度处理
图像进行边缘检测前,首先需对像素的灰度值进行 处理,具体的处理方法主要分为 2 种 :(1)是将图像三 通道中的任一通道数据输出 ;(2)是将 RGB 图像的三通 道数据做加乘运算转换成 Ycbcr 图像,然后使用 Y 分量 显示图像。由于第 2 种方法中 Y 分量显示的灰度图像比 第 1 种方法中单通道显示的灰度图像具有更强的层次感 和更加真实的显示效果 [11],因此本系统采用第 2 种方法 对图像进行灰度处理。将 RGB 图像转换成 Y 分量图像 的处理算法如式(1)所示,为组合逻辑运算,首先, 计 算所有乘法,然后计算所有加法,最后计算最终的和, 若和为负数则赋值 0.
Y = 0.183R + 0.614G + 0.062B + 16 (1)
2.2 中值滤波处理
中值滤波法是通过将中心像素的灰度值与周围值比较后,用计算好的中值替换,从而消除图像中孤立的噪 声点 [12]。由于中值滤波属于非线性平滑处理, 因此能 够克服线性平滑处理导致的图像细节模糊的问题。在进 行中值滤波处理时,首先确定一个滤波窗口,滤波窗口 通常为 3×3 或 5×5 的方形窗口 ;然后,将该窗口在图 像空间上进行水平滑动,滑动过程中按照大小关系对窗 口中的所有像素点灰度值进行排序,选取中值作为中心像素的灰度值,具体公式如式(2)所示 :

f (x, y) = median{g (s, t)}, (s, t) ∈ Sxy (2)
其中, g(s,t) 为原始图像, f (x,y) 为处理后的图像, Sxy 为滤波窗口, median 代表求中值。中值滤波时,首 先对 3×3 滤波窗口的每行像素进行排序 ;其次,对每行 像素灰度最大值、中间值和最小值排序,得到最大值中的 最小值、中间值中的中间值和最小值中间的最大值 ;最 后,对上一步中得到的最小值、中值和最大值进行排序, 得到最终的中值。其中,三行像素的缓存是在 Quartus II 中 Shift Register(RAM-based) IP 核中进行的 [13]。
2.3 改进 Sobel 算法

其中, (i,j) 是 3×3 像素窗口的中心点, sx2 和 sy2 是像素在 0°和 90°方向上的梯度,且
S
x = [f (i −1. j +1) + 2f (i, j +1) + f (i +1. j +1)] −[f (i −1. j −1) + 2f (i, j −1) + f (i +1. j −1)]
S
y = [f (i +1. j −1) + 2f (i +1. j) + f (i +1. j +1)] − [f (i −1. j −1) + 2f (i −1. j) + f (i −1. j +1)]
因此,传统 Sobel 算法是通过求梯度幅值将其与阈 值作比较
[15]。
然而,传统 Sobel 算法有 2 个关键问题 :(1)是卷 积因子的维度有限 ;(2)是边缘检测的阈值需要预先人 为设定。一般情况下, x 方向和y 方向的卷积因子仅能 体现水平和竖直两个方向的边缘特性,因此本文采用改然而,传统 Sobel 算法有 2 个关键问题 :(1)是卷 积因子的维度有限 ;(2)是边缘检测的阈值需要预先人 为设定。一般情况下, x 方向和y 方向的卷积因子仅能 体现水平和竖直两个方向的边缘特性,因此本文采用改进的 8 方向卷积因子进行卷积,以使图像的边缘检测效 果更加精细、图像的特点更加完整 [16]。如图 2 所示为 8 方向的改进型 Sobel 卷积核,选取 8 方向卷积绝对值中 的最大值作为最终结果与阈值进行比较。
边缘检测中, 以阈值为界,将梯度计算结果与事先 设定的阈值进行二值化处理,大于阈值的被认为是边缘 点,反之不是。经过阈值检测,边缘处的像素被凸显, 平滑区域的像素点被削弱,即可得到一幅边缘图像。由 此可见,阈值的选择对于图像处理的结果有着直接的影 响,阈值选取过大会漏掉真正的边缘点,选择过小则会 将非边缘点标识。其次,人为设定阈值时,不同图像获 得最佳检测效果的阈值不同,并且,每次设置阈值后, 均需代码全编译板级测试才能确定阈值设置是否合适, 验证时间过久。因此,为了解决上述传统 Sobel 算法的 阈值设定问题,本文采用自适应动态阈值,以提高图像 边缘检测的精度和速度 [17]。
2.3.2 Sobel 算法的 VerilogHDL 实现及仿真
执行 Sobel 边缘检测算法时, 首先将 8 方向卷积核 换算成有符号数,再利用 Quartus II 的 Shift Register (RAM-based) IP 核实现 3×3 矩阵原始图像 ;然后,利 用乘加器计算 8 方向的卷积结果 ;再取 8 个梯度的绝对 值,比较得到其中的梯度最大值 G (如式(4)所示),并 作为当前像素点梯度幅值的输出值 [18] ;最后,将梯度最 大值G 与自适应阈值进行比较。其中,自适应阈值是利用 中值滤波模块对Lmax_ min 、Lmid_ mid 及Lmin_ max 求平均得到的 [19]。
G = max{| G0 |, | G45 |, | G90 |, | G135 |, | G180 |, | G225 |, | G270 |, | G315 |} (4)
由于中值滤波处理时长为 5 个时钟, 执行 Sobel 算 法时长为 7 个时钟,自适应阈值计算时长为 6 个时钟, 因此,需要将计算得到的自适应阈值延迟 6 个时钟再输 入 Sobel 模块,以使阈值能与其像素对应,获得最佳的 检测效果。
3 系统测试与板级验证
利用 2 方向卷积核的传统 Sobel 算法对如图 3(a) 所示的 RGB565 图像进行处理,并将阈值分别设定为 3 和 7.从图 3(b) 和图 3(c) 的处理效果可知,传统 Sobel 算法对图像的边缘信息识别不细致,为获得最佳的识别 效果并找到最合适的阈值需要花费大量时间进行测试。 图 3(d) 和图 3(e) 分别为 Matlab 编程的图像边缘检测 效果图和改进型阈值自适应的 8 方向 Sobel 算法边缘检 测效果图。较于只有 x 轴和y 轴两个方向的传统 Sobel 边缘检测算法而言,改进型 Sobel 算法的 8 方向卷积 核可使边缘检测后的图像更加连续光滑,方向信息等细 节更全面、层次感更强、清晰度更高。其次,改进型Sobel 算法能够针对不同的像素提供自适应阈值,不仅 使边缘检测的结果更加精确,而且大大节省了模块的测 试时间。

此外, FPGA 硬件的并行流水线处理能力使其在图 像处理方面具有独特的优势。本系统中,图像处理模块 的时钟频率为 33MHz,处理一个像素耗时 15 个时钟 周期。由于系统采用流水线的设计方式,输出第一个像 素需要 15 个周期,之后每个时钟周期都能输出一个像 素。因此,对于系统使用的 800×480 个像素的 TFT 液 晶屏而言,一幅图像的处理时间约为 11.6ms。为了评 价所设计的系统的处理速度,在 Matlab 中编程实现相 同图像的同一处理功能,其中 Matlab 运行的电脑 CPU 主频为 2.66GHz。如表 1 所示,通过 14 次测试可知, Matlab 完成相同处理功能的平均时长约为 28.2ms。因 此,基于 FPGA 的改进型 Sobel 算法的图像处理时长 仅为 CPU 处理时长的 40%,能够显著提高图像的处理 速度,为实时性要求极高的领域提供解决思路。

4 结语
针对数字图像边缘检测有关于检测速度和检测效 果的需求,本文基于 FPGA 优化了 Sobel 算法。首先, 详细描述了基于 FPGA 的改进型阈值自适应的 8 方向 Sobel 算法边缘检测方法,然后将该算法在 FPGA 开 发板上实现,最后进行 Modelsim 仿真及板级测试实 验,验证了系统的可行性。板级测试结果表明,改进型 Sobel 算法的图像边缘检测效果更加明显,方向信息等细节更全面、层次感更强,并能够针对不同的像素提供 自适应阈值 ;其次,基于 FPGA 硬件的处理速度更优, 同一图像的处理时长仅为 11.6ms,是软件平台处理时 长的 40%,能够较好的满足数字图像实时处理的实际 应用需求。

参考文献
[1] 罗紫阳,李雪梅,陈鹏.基于FPGA的Sobel算子边缘检测算法 的实现[J].电子制作,2020(21):6-7.
[2] 龚声蓉,刘纯平,王强.数字图像处理与分析[M].北京:清华大 学出版社有限公司,2006.
[3] 周雨豪.基于FPGA的实时图像采集和预处理系统设计[D]. 武汉:华中科技大学,2021.
[4] CHAPLE GN,DARUWALARD,GOFANEMS.Comparisions of Robert,Prewitt,Sobel Operator Based Edge Detection Methods for Real Time Uses on FPGA[C]// InternationalConference on Technologies for Sustainable Development (ICTSD).Piscataway,NJ:IEEE,2015:1-4.
[5] 陈跃妤.边缘检测算法比较分析[J].农业网络信息,2012(6): 31-33.
[6] CHEN P,LAN J T,WANG R T,et al.High-precision PLL Delay Matrix with Overclocking and Double Data Rate for Accurate FPGA time-to-digital Converters[J].IEEE Transactions onVery Large Scale Integration (VLSI) Systems, 2020.28(4):904-913.
[7] 王媛斌,王宏斌.FPGA与PC通信的UART串口设计[J].兰州 工业学院学报,2020.27(5):56-61.
[8] 查志勋.基于FPGA的实时边缘检测系统研究[D].合肥:合肥 工业大学,2021.
[9] 赵二刚,孙鹏飞,赵立晴,等.基于FPGA的TFT显示屏控制系 统的设计与实现[J].光电子技术,2009.29(2):130-134.
[10] 宁帮祥.基于FPGA的图像边缘检测系统设计[D].太原:中 北大学,2021.
[11] 刘腾飞,刘威.FPGA的图像采集及二值图像显示系统设计 [J].单片机与嵌入式系统应用,2020.20(10):39-42.
[12] Wang L.A New Fast Median Filtering Algorithm Based on FPGA[C]// IEEE the 10th International Conference on ASIC.Piscataway,NJ:IEEE,2013:1-4.
[13] 祁欣,陈剑锋,罗伟林.图像预处理算法的FPGA实现[J].国 外电子测量技术,2021.40(2):102-107.
[14] 李峻山,李旭辉.数字图像处理[M].北京:清华大学出版社, 2007:4.
[15] 柯青林,张文涛,余英铨,等.基于FPGA的8方向Sobel自适 应阈值边缘检测系统设计与实现[J].现代电子技术,2022.45 (24):92-97.
[16] 李晓军.基于FPGA的实时图像边缘检测系统设计及实现 [D].广东:广东工业大学,2022.
[17] 陈磊,叶焱.多方向自适应阈值边缘检测算法及FPGA并行 实现[J].无线通信技术,2019.28(4):21-26.
[18] 张楷强.基于FPGA图像处理的机械零件边缘检测关键技 术研究[D].重庆:重庆大学,2021.
[19] 叶惠娇,冉全,成果.FPGA图像边缘检测系统的设计与实现 [J].计算机应用与软件,2018.35(12):237-240+302.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/57696.html