基于FPGA + USB3.0的图像降噪系统
Image Denoising System Based on FPGA + USB3.0
DOI: 10.12677/CSA.2024.141004, PDF, HTML, XML, 下载: 59  浏览: 129 
作者: 刘 影, 张美娜, 刘洪帅, 杜 军*:哈尔滨师范大学计算机科学与信息工程学院,黑龙江 哈尔滨
关键词: FPGAUSB3.0高斯滤波算法双边滤波算法FPGA USB3.0 Gaussian Filtering Algorithm Bilateral Filtering Algorithm
摘要: 针对图像降噪过程中,图像边缘模糊和实时性差的问题,本文提出了一种基于FPGA和USB3.0的图像降噪系统,其中包括高斯滤波和双边滤波算法两种降噪算法,对这两种算法进行实验,并进行了对比分析。该系统的设计充分利用了FPGA的高度并行性和USB3.0的高速数据传输能力,为实时处理提供了强大的支持。实验结果表明双边滤波算法在降噪中,能更好地保留图像边缘信息,并且能够达到实时处理的要求,这一系统的创新性在于其综合运用了硬件加速和高速数据接口,为图像降噪提供了高效可靠的解决方案。
Abstract: This paper proposes an image denoising system based on FPGA and USB3.0, which addresses the issues of blurred image edges and poor real-time performance in the process of image denoising. The system includes two denoising algorithms: Gaussian filtering and bilateral filtering. Experi-ments were conducted on these two algorithms, and comparative analysis was conducted. The design of this system fully utilizes the high parallelism of FPGA and the high-speed data transmission capability of USB3.0, providing strong support for real-time processing. The experimental results show that the bilateral filtering algorithm can better preserve image edge information in denoising and meet the requirements of real-time processing. The innovation of this system lies in its com-prehensive use of hardware acceleration and high-speed data interfaces, providing an efficient and reliable solution for image denoising.
文章引用:刘影, 张美娜, 刘洪帅, 杜军. 基于FPGA + USB3.0的图像降噪系统[J]. 计算机科学与应用, 2024, 14(1): 21-28. https://doi.org/10.12677/CSA.2024.141004

1. 引言

随着现代科技的迅猛发展,图像和信号处理领域一直在不断演进,为各种应用提供了丰富而多样的解决方案。然而,在这个数字化时代,噪声问题成为了影响图像和信号质量的一项主要挑战。噪声源的多样性以及其在实际应用中对信息传输和处理的影响,使得降低噪声水平成为科学家和工程师们关注的焦点之一。

为了有效应对噪声问题,各种降噪算法被提出并广泛研究。肖莉 [1] 提出了一种基于中值滤波的图像预处理改进算法,该算法在椒盐噪声密度比较大的场景,去噪效果比中值滤波更好,但其算法未对图像边缘效果进行考虑。任松涛 [2] 提出了一种基于双边滤波的船舶图像混合域去噪方法,去噪过程中考虑到了图像的边缘信息,取得了良好的降噪效果,但使用的是软件的降噪平台,随着噪声的复杂性和对实时处理性能的不断追求,传统的软件实现往往难以满足系统的性能要求。在速度上无法实现高速的数据传输,也无法达到实时处理的效果。

为此,本文提出了一种基于FPGA和USB3.0的图像降噪系统,在算法方面,采用两种图像降噪算法分别进行实验,分别为高斯滤波和双边滤波,高斯滤波算法能够有效去除图像中的高频噪声,实现较好的降噪效果,然而,其缺点是会使图像边缘部分不清晰,与此不同,双边滤波算法是采用非线性滤波方法,既能平滑信号,又能够很好地保留图像边缘信息 [3] ,因而在噪声去除方面表现出色,本文着重研究双边滤波算法;在实现平台方面,本文旨在结合硬件加速和高速数据传输的优势,提供一种高效、实时的噪声降低解决方案 [4] 。FPGA作为一种可编程硬件平台 [5] ,具有并行计算和硬件加速的特性,为算法的实时性能提供了有力支持。同时,USB3.0接口的引入进一步提高了系统的数据传输速率,确保了实时处理的要求。

2. 系统总体设计

本文设计了基于FPGA和USB3.0的实时图像降噪处理系统,为了实现对噪声的高效降噪 [6] ,本系统首先采用OV5640摄像头对图像进行采集。采集到的视频流数据经过接收模块进行处理,确保高质量的数据输入。接下来,系统通过颜色空间转换模块将RGB色彩空间转换为YCbCr色彩空间,同时提取Y分量,为后续的滤波算法提供更为适合的输入。

在颜色空间转换和Y分量提取后,系统引入了高斯滤波和双边滤波算法模块,该模块采用FPGA硬件加速,以提高算法的实时性能。高斯滤波算法能够有效地去除图像中的噪声,实现平滑的效果,双边滤波算法在平滑图像的同时保留了边缘信息 [7] ,有效地抑制了噪声的影响。FPGA的并行计算和硬件加速特性使得算法能够以更高效的方式处理复杂的滤波操作,从而实现对图像噪声的快速而准确的去除。

经过滤波算法的处理,系统通过GPIF II接口实现对视频流数据的输出,传输到PC机上 [8] 。GPIF II接口的高性能保证了对处理后图像的快速传输,从而满足实时性要求。这一输出阶段使得系统能够在实际应用中灵活适用于各种场景,为用户提供清晰、噪声低的图像。系统总体框图如下图1所示。

Figure 1. Diagram of the overall system block

图1. 系统总体框图

3. 算法模块

3.1. 颜色空间转换原理

RGB到YCbCr颜色空间的转换是通过一系列线性变换和加权求和完成的,其中,RGB通道的像素值通过特定的系数映射到对应的Y、Cb和Cr通道。以下是详细的转换公式:

Y = 0.299 R + 0.587 G + 0.114 B (1)

C b = 0.1678 R 0.3313 G + 0.5 B (2)

C r = 0.5 R 0.4187 G 0.0813 B (3)

3.2. 高斯滤波算法原理

高斯滤波是一种常用的图像处理技术,主要原理是通过应用高斯函数对图像进行卷积操作,从而实

Figure 2. Diagram of the 2D Gaussian distribution curve

图2. 二维高斯分布曲线图

现图像的平滑和去噪。高斯滤波算法通过去除图像中的高频噪声,改善图像的视觉质量,在频域上的效果也较为均匀,不会引入额外的频率成分,有助于避免频域伪影。二维高斯函数的表达式如下。

G ( x , y ) = 1 2 π σ 2 e x 2 + y 2 2 σ 2 (4)

其中,x和y是像素在水平和垂直方向上的偏移,σ为高斯分布的强度,σ的值越大,数据越分散;反之,数据越向中心集中分布。二维高斯滤波算法中,权重与距离有关 [9] ,即与当前像素距离越近,权重值就越大,反之,与当前像素距离越远,权重值就越小。二维高斯分布曲线图如图2所示。

3.3. 双边滤波算法原理

双边滤波算法是一种有效的图像处理技术,其设计旨在平滑图像的同时保留重要的边缘信息,从而实现噪声消除的同时最大限度地维护图像的视觉质量。该算法在处理像素时不仅考虑像素之间的空间距离,还注重灰度值相似性,使得滤波过程更加智能而适应性强。

双边滤波算法公式如下,在此算法中,两个关键的权重函数分别为 G σ s G σ r G σ s 主要关注当前像素在空间上的距离,而 G σ r 则侧重于当前像素与邻近像素之间的相似度。这两个权重函数的乘积 G σ s × G σ r 代表了对当前像素综合考虑空间距离和相似度的权重,累加后归一化,得到最终的权重。

B F [ I ] p = 1 W P q S G σ s ( p q ) G σ r ( | I p I q | ) I q (5)

双边滤波器通过考虑空间域距离和灰度值相似性两个关键因素,实现对像素加权的精准控制。空间域权重确保附近像素对目标像素的影响更显著,进而在图像上产生平滑效果。这与传统的高斯滤波有相似之处,但双边滤波更进一步地引入了灰度值相似性权重。这一权重机制保证只有灰度值相似的像素才对目标像素的计算产生较大的影响,有效地保留了图像中的边缘细节。

在滤波器输出的计算中,近距离的像素被赋予更高的权重,同时仅有灰度值相似的像素对目标像素的影响更为显著。这种综合考虑了空间域距离和灰度值相似性的权重机制,使得双边滤波器成为一种优秀的平滑图像同时保留边缘信息的图像处理算法 [10] 。其算法框架不仅在噪声抑制方面表现出色,同时对图像的局部特征有着出色的保护和保持作用,使其在图像处理领域得到广泛应用。

由于双边滤波同时考虑了像素空间距离和像素相似度的影响,因此在具有边缘梯度的图像中,有较好的效果,即在平坦区域,像素空间距离占优势,在边缘区域,像素相似度占优势。双边滤波在平坦与边缘区域分解图如下图3所示。

Figure 3. Diagram of the bilateral filtering for decomposition in flat and edge regions

图3. 双边滤波在平坦与边缘区域分解图

3.4. 双边滤波算法设计

通过在图像上实现滑窗处理,本设计旨在获取以目标像素为中心的3 × 3窗口,其中需要对行像素进行缓存以支持实时输入。为实现这一目标,本系统采用了FIFO (First-In-First-Out)的方式对行像素进行缓存,同时通过菊花链的形式连接多个行缓存单元,以有效管理和处理图像数据。

首先,滑窗处理是一种常见的图像处理技术,它通过以目标像素为中心获取局部窗口,从而实现对局部特征的分析和处理。在本设计中,所选取的窗口大小为3 × 3,旨在捕捉目标像素周围的上下文信息。

为了支持实时输入,系统引入了FIFO缓存机制 [11] 。FIFO是一种先进先出的数据结构,能够按照输入的顺序存储数据,并以相同的顺序输出。通过采用FIFO,本系统能够灵活地处理图像数据,确保图像的局部窗口能够在实时输入的情况下进行动态更新。

在行像素缓存的过程中,本设计采用了菊花链的连接方式。菊花链是一种链式结构,其中每个节点都与多个相邻节点相连接,形成一个环状链表。通过使用菊花链连接多个行缓存单元,系统可以更加高

Figure 4. Diagram of the three × principle of 3-window generation module

图4. 3 × 3窗口生成模块原理图

Figure 5. Diagram of similarity weight calculation block

图5. 相似度权重计算框图

效地管理和调度图像数据的流动。这种连接方式使得行缓存可以很容易地适应不同输入情况,实现了对图像数据的连续处理。3 × 3窗口生成模块如图4所示。

基于双边滤波算法,该系统首先计算3 × 3窗口内像素与中心像素的差的绝对值。随后,采用查找表的方法 [12] ,通过预先写入Verilog文件的相似度查找表,系统实现了对差值相应权重的直接索引。相似度权重计算框图如图5所示。这一设计方案在保留算法核心思想的同时,通过硬件优化提高了运行效率。

在计算完3 × 3窗口的相似度权重后,将这些权重与3 × 3窗口的高斯权重进行相乘,从而获得同时考虑距离和相似度的双边滤波权重。接着,对这些双边滤波权重进行归一化处理,以确保它们的总和为1,双边滤波权重归一化计算框图如下图6所示。最后,将3 × 3窗口的双边滤波权重进行卷积并累加,得到最终的像素值结果,并将其输出。这一系列步骤综合考虑了空间距离和像素相似度,有效地应用了双边滤波算法以获得更为精确和平滑的图像输出。

Figure 6. Diagram of normalization calculation of bilateral filtering weight block

图6. 双边滤波权重归一化计算框图

4. USB3.0电路结构

在当前研究中选用了AC6102开发板,并采用了Cypress的USB3.0全协议芯片,即CYUSB3014,作为FPGA与PC机之间高速通信的桥梁。为了最大程度地发挥USB3.0芯片的性能特性,特将CYUSB3014芯片的大部分数字IO与FPGA连接,包括32根数据线,13根控制线。另外4根I2S信号线以及UART线使用排针引出,以获得更加灵活的应用。AC6102开发板上的USB3.0电路整体框图如下图7所示。

Figure 7. Diagram of the USB3.0 overall circuit block

图7. USB3.0电路整体框图

5. 实验结果

5.1. 仿真实验结果

利用ModelSim软件进行仿真,得到了如下结果。其中,per_img_gray表示输入像素值,而post_img_gray则表示经过滤波算法后的输出像素值。图8图9分别展示了高斯滤波算法和双边滤波算法的仿真图。通过对仿真图的观察,可以确认实验结果正确,高斯滤波算法和双边滤波算法在给定条件下得到了预期的输出。

Figure 8. Diagram of the Gaussian filtering algorithm simulation

图8. 高斯滤波算法仿真图

Figure 9. Diagram of the bilateral filtering algorithm simulation

图9. 双边滤波算法仿真图

5.2. 上板实验结果

高斯滤波算法和双边滤波算法经过仿真验证成功后,进行上板实验,连接USB Blaster到JTAG下载口,连接OV5640摄像头到网口左侧的Camera接口,将USB3.0数据线一端插入AC6102开发板,另一端插入PC端的USB3.0接口。将电源开关拨到ON位置。如下图10所示。

Figure 10. Diagram of the hardware connection

图10. 硬件连接图

通过AC6102开发板上的USB3.0芯片将OV5640摄像头采集到的图像数据传输到PC机上,并使用UVC图像显示软件显示,结果如下图所示。由结果图11可知,在同等硬件条件下,双边滤波的边缘保持比高斯滤波效果更好,双边滤波算法能够在降噪的同时很好地保持图像的边缘信息,并且实验过程中实现了对数据的实时处理。

Figure 11. Diagram of the comparison of gaussian filtering and bilateral filtering results

图11. 高斯滤波和双边滤波结果对比图

6. 结语

通过对高斯滤波算法和双边滤波算法进行实验对比,观察到双边滤波算法在保留图像边缘信息方面表现更为出色。然而,在图像降噪方面,还需要进一步深入研究和探索更优越的降噪算法。期望未来能够将这些更先进的降噪算法成功地移植到FPGA平台中,以进一步提升图像处理的性能和效果。

参考文献

[1] 肖莉. 一种基于中值滤波的图像预处理改进算法[J]. 高师理科学刊, 2023, 43(10): 41-44.
[2] 任松涛. 基于双边滤波的船舶图像混合域去噪方法[J]. 舰船科学技术, 2023, 45(14): 148-151.
[3] 肖志云, 渠志云. 结合Otsu与EM的啤酒瓶图像分割及动态计数研究[J]. 重庆理工大学学报(自然科学), 2020, 34(8): 165-175+222.
[4] 刘萌. FPGA在图像处理系统设计与仿真中的应用[J]. 河南科技, 2019(35): 15-17.
[5] 李园, 高家祺, 马小霞, 夏加高. 基于FPGA图像处理的研究现状与热点分析[J]. 电子技术, 2021, 50(7): 1-3.
[6] 王闯. 一种基于FPGA的实时图像增强处理系统设计与实现[J]. 航空计算技术, 2018, 48(5): 255-256+260.
[7] 胡雪梅, 吴占敏. 基于FPGA的含噪图像边缘检测系统的设计与实现[J]. 电子制作, 2023, 31(21): 112-115.
[8] 王月新, 刘明君. 基于DSP+FPGA线性结构的计算机图像处理系统设计[J]. 无线互联科技, 2023, 20(14): 60-64.
[9] 郭东宇. 基于FPGA的数字图像处理技术的应用[D]: [硕士学位论文]. 大连: 大连理工大学, 2020.
[10] 赵冬青, 孟宇航. 基于FPGA的高速图像采集传输系统[J]. 计算机与数字工程, 2023, 51(8): 1861-1863+1923.
[11] 孟晨光, 刘跃成, 甄国涌. 机器视觉领域的FPGA非线性双边滤波系统设计[J]. 单片机与嵌入式系统应用, 2023, 23(7): 57-61.
[12] 何颖秋, 方子涵, 谢亮天. 基于FPGA的实时图像处理与实现[J]. 电子设计工程, 2020, 28(7): 137-141+146.