第30卷第15期2022年8月
Vol.30No.15
Aug.2022光学精密工程
Optics and Precision Engineering火字旁的女孩名字
可见光视频去噪及其FPGA硬件实现
赵思娴1,2,万敏杰1,2*,钱惟贤1,2,周琳1,2,韶阿俊1,2,陈钱1,2,顾国华1,2*(1.南京理工大学电子工程与光电技术学院,江苏南京210094;
2.南京理工大学江苏省光谱成像与智能感知重点实验室,江苏南京210094)
摘要:在静止场景下普通的图像滤波算法就能够有效抑制噪声,而在运动状态下,现有的滤波算法难以保证去噪的有效性,还会产生拖尾现象;采用运动补偿的滤波算法,又无法有效地抑制噪声。针对以上问题,提出一种基于时空域滤波的视频去噪算法,并在现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)平台上实现。该算法主要运用高斯差分滤波提取图像特征,再用空域滤波抑制高频噪声,采用反馈的方式对分割出的图像区域采用不同的去噪策略。硬件实现的关键
是利用高层次综合(High-level Synthesis,HLS)工具简化编程、DDR3控制模块操作视频流在各模块间输入输出。实验结果表明:该算法能有效去噪,不同场景下,相比基于非下采样轮廓波变换的去噪算法,峰值信噪比最多可提升15dB;将算法移植到FPGA后,峰值信噪比相比于MATLAB软件仿真相差约0.3dB,运行时间缩短71.5%以上,在兼顾实时性的同时达到了较好的可见光视频去噪效果。
关键词:图像处理;视频去噪;可见光;现场可编程逻辑门阵列;运动补偿;高斯差分滤波
中图分类号:TP391.4文献标识码:A doi:10.37188/OPE.20223015.1868
Visible light video denoising and FPGA hardware implementation ZHAO Sixian1,2,WAN Minjie1,2*,QIAN Weixian1,2,ZHOU Lin1,2,SHAO Ajun1,2,
CHEN Qian1,2,GU Guohua1,2*
(1.School of Electronic and Optical Engineering,Nanjing University of Science and Technology,
Nanjing210094,China;
2.Jiangsu Key Laboratory of Spectral Imaging&Intelligent Sen,
Nanjing University of Science and Technology,Nanjing210094,China)*Corresponding author,E-mail:minjiewan1992@;gghnjust@mail.
阿姨生日祝福语
Abstract:It is difficult to suppress the noi in static state of the existing filtering algorithm.Moreover,motion compensated filtering algorithm fails to effectively suppress noi.To solve the problems,a vid⁃eo denoising algorithm bad on spatio-temporal filtering is propod and implemented on the field pro⁃grammable gate array(FPGA).The algorithm mainly us Gaussian difference filtering to extract image features,and then applies spatial filtering to suppress high-frequency noi.Simultaneously,different de⁃noising strategies are adopted for the gmented image area by feedback.Implementing hardware requires high-level synthesis tools to simplify programming,and is to make DDR3control module to operate input 文章编号1004-924X(2022)15-1868-12
收稿日期:2022-03-25;修订日期:2022-04-18.
基金项目:国家自然科学基金青年项目(No.62001234);江苏省自然科学基金青年项目(No.BK20200487);上海航天科技创新基金资助项目(No.SAST2020-071);中央高校基本科研业务费专项资金资助项目(No.JS⁃
GP202102)
第15期赵思娴,等:可见光视频去噪及其FPGA硬件实现
and output of video stream between modules.Simulation results show that the propod algorithm can be ud for denoising.For different scenes,the peak signal-to-noi ratio can be incread by up to15dB in comparison with the denoising algorithm bad on a non-subsampled contourlet(NSCT).After trans⁃planting the algorithm to FPGA,the difference between PSNR and MATLAB simulation program was approximately0.3dB,and the running time was shortened by over71.5%.Considering the real-time per⁃formance,PSNR achieves a better visible video denoising effect.
Key words:image processing;video denoising;visible light;FPGA;motion compensation;Gaussian difference filtering
1引言
视频信号产生噪声的主要原因是在采集、压缩、传输等过程中受到周围环境、温度等方面的影响,以及设备、传输信道等因素的干扰。一方面,由于相机自身成像时图像会产生非均匀性或者在传输过程
中产生动态噪声;另一方面,外在的环境因素,如雾霾、沙尘暴等极端恶劣天气、或光照不足的情况下,成像对比度较低,从而存在图像污染、模糊或轮廓丢失等问题,导致接收到的视频信号质量严重下降,影响视频的视觉效果,也为后续的分析及视频图像的增强[1]带来不便。因此,视频实时去噪算法研究有着广泛的应用价值与实际意义。
目前,较为普遍的视频去噪算法大致可以分为三类:变换域去噪、空间域去噪和时间域去噪。变换域去噪又称为频域去噪,先对图像进行特定的变换,如傅里叶变换、离散余弦变换[2]和小波变换[3]等,把图像信号转换到变换域中,针对图像真值和噪声在频域上的区别进行处理,再把处理完的数据反变换后得到去噪后的图像,这就导致该去噪方式的运算时间较长。近年来,虽然小波变换在视频去噪领域中有了较大的发展,但固定小波基的分解模式不能完全表示自然图像,去噪结果会有一定的偏差[4]。非下采样轮廓波(Nonsub⁃sampled Contourlet,NSCT)算法[5]利用非下采样轮廓波变换,弥补轮廓波有下采样的缺点,增加视频帧中的结构信息特征,算法复杂度也相应提升。空间域去噪算法主要去除的噪声以加性噪声为主,因为视频图像中邻域像素相关性较强,一般可根据邻域像素的局部特征对视频去噪[6]。一些经典的空间域去噪算法主要为中值滤波、均值滤波及自适应滤波等。经典的空域滤波虽然复杂度低、运算时间短,但会模糊视频细节;为改善空域滤波的效果,基于马尔可夫随机场理论的模型,如FRAME模型[7]、VISTA模型[8]、FOE模型[9]等,通过学习的方式获得参数,能够避免人为设置参数所造成的误差,因此有很大的优势[10]。时间域
滤波利用视频前后几帧的相关性来设计算法达到去噪的效果,如基于金字塔结构的去噪算法[11],满足实时性要求,但去噪效果还有上升空间。近年来,多种域结合的算法,如空间域与频率域结合的三维块匹配(Block Matching3D,BM3D)算法[12]被提出,此算法在转换域中加强稀疏表达,在处理图像细节及高斯白噪声时效果较好,但在处理具有高对比度图像的边缘时,由于匹配块不能完整表示图像细节,图像边缘会产生振铃效应[13]。除此之外还有时空频域结合的算法[14],该算法结合了时空域的降噪方法,同时在频域上采用了高斯和拉普拉斯金字塔,达到了很优秀的去噪效果,然而算法复杂度高,且未实现实时处理。在考虑到硬件并行设计方面,也出现了结合时空域的运动纹理感知去噪算法[15]。
为了提高视频去噪算法的去噪能力与实时运行时间,本文提出了一种针对可见光波段的时空域去噪算法,并成功移植到FPGA硬件平台。
2去噪原理
应收账款占用资金本文的视频去噪算法的完整流程如图1所示。该算法先用高斯差分(Difference of Guas⁃
1869
第30卷
光学精密工程
sian ,DOG )滤波得到4层DOG 来提取当前帧图像的特征信息;再对最高层DOG1用卷积模板做空间域滤波,抑制高频噪声;剩下3层DOG 在时
间域上采用区域分割滤波,对不同的区域采取不同的滤波策略;最后把处理后的各层图像相加,得到最终的去噪结果。
2.1高斯差分滤波
为了使算法具有运动补偿的效果,需要对
每帧图像的特征区域进行提取。现有的DOG 滤波[16]具有较好的边缘检测能力,广泛地应用于数字信号图像处理中。其函数表达式为:G D =G σ1-G σ2=
12π
(
1σ21e
-(x +y )夺落厂村
2σ
-
1
σ2
2e
-(x +y )
2σ)
,
(1)
其中:σ1与σ2为高斯滤波的标准差,并且σ1<σ2,x ,y 表示二维平面的横纵坐标。由于高斯滤波函数对图像的平滑程度是通过σ实现的,σ越大,平
滑程度越高,高频成分越少。当DOG 滤波器中心区域通过点线特征较为明显的区域时,因为点线特征周围的背景灰度值较小,高斯滤波后特征处的结果数值较大;当滤波器中心通过灰度值起伏变化不大的平缓区域时,高斯滤波结果则趋于零。如此,便达到了抑制平缓背景的效果。
本算法使用了4个高斯滤波参数,4个参数的大小为σ1<σ2<σ3<σ4,具体取值为1.5,2.5,5.5,10.5,对应得出4层DOG 结果:DOG1,DOG2,DOG3,DOG4。以实验视频其中一帧为例,4层DOG 如图2所示。由于σ1最小,DOG1中包含的高频噪声最多,需要单独对DOG1做进一步的高频噪声抑制处理。2.2
空间域滤波
为了滤除DOG1中的高频噪声,单独对该层进行空间域滤波。由于噪声大部分都服从高斯分布,该层内的高频噪声即为邻域范围内的极大值点,在图像二维平面内可转换成求离散函数的偏导,公式如下:
∂f (
)x ,y ∂x
=f (x +1,y )-f (x ,y ),(2)∂f (
)x ,y ∂y
=f (x ,y +1)-f (x ,y
).
(3)
怀孕初期细微的表现
图1
时空域视频去噪算法流程
Fig.1
Flow chart of spatio -temporal domain video denoising algorithm
1870
第15期
赵思娴,等:可见光视频去噪及其FPGA 硬件实现
由此可知,高频噪声只有邻域极大值的特征而不含有表征方向的信息,因此可用基于梯度的卷积模板来剔除高频噪声,提取含有方向信息的图像特征边缘轮廓信息。
用来抑制极大值的空域滤波卷积模板如下:
G 0=éëêê
êêêêê
êêêêêêêêêùû
úú
ú
ú
ú
ú
ú110-1-1110
-1
-1
若无其事的反义词110-1-1110-1-11
1
0-1-1,
(4)
G 45=éëêê
êêêêê
êêêêêêêêêùû
úúúú
úúú
111101110-1110-1-110-1-1-10-1-1-1
-1,
(5)
G 90=éëêê
êêêêêêêêêêêêêêùûúúúúúúú111111111100000-1-1-1-1-1-1-1-1-1-1,(6)G 135=éëêê
êêêêê
êêêêêêêêêùû
úúú
ú
úúú
111101110-1
110-1-110-1-1-10-1-1-1
-1,(7)
其中:G 0,G 45,G 90,G 135分别是0°,45°,90°和135°方向上的滤波模板。2.3
时域区域分割滤波
在运动场景中,前后两帧的线面特征会产生位移,静止背景部分的平坦区和特征区域部分的
突变区可以通过前后两帧之差进行区分。为了进一步滤除噪声,需要对4层DOG 进行时间域上的滤波,即在时间域上对4层图像数据进行区域分割,具体分割方式如图3所示。
计算当前帧DOG 与上一帧去噪结果的差值,当这个差值小于阈值时,判定当前像素在平坦区域,像素值不变;当差值大于阈值时,判定当前像素在突变区域,取上一帧去噪结果与当前帧DOG 的加权平均作为当前帧的去噪结果,其中,权值a 通常取0.8,表明前一帧的滤波结果对当前帧的滤波结果影响较大。最后把4层DOG 的滤波结果和σ4对应的高斯滤波结果相加得到去噪后的图像,如图4所示
。
图2一帧视频的高斯差分滤波结果Fig.2
DOG filter result of one
frame
图3
时域区域分割滤波流程
Fig.3
Flow chart of domain division filtering in time do⁃
个人简历空表main
1871
第30卷
光学精密工程
3算法的FPGA 实现
该算法使用VIVADO 2019进行硬件编程,
在ZYNQ7045,型号为xc7z045ffg900-2的硬件开发平台上实现,cameralink 接口连接开发板与黑白可见光相机成像,HDMI 接口连接开发板视频输出端口与显示屏,最终显示去噪后的视频图像,总体硬件架构如图5所示。
首先,相机输入的视频数据流通过camera⁃link 接口进入数据解码模块,该模块将数据流转换成标准的VGA 时序信号后输出;在进入下一个模块之前,需要利用Video In to AXI4-stream 这个IP 核把VGA 时序信号转换成AXIstream 格式的数据流,因为分层模块需要的输入输出数据都是AXIstream 格式的数据;数据格式转换完成后,通过分层模块把原始视频帧信号分成4层,输入数据格式转换模块,该模块由5个Video In to AXI4-stream IP 核组成,把4层数据信号加上原始图像数据转换成标准VGA 时序信号,方便时空域滤波模块对数据的处理;FDMA (AXI4
FULL MASTER DIRECT MEMORY AC⁃CESS )能通过控制模块、MIG 控制器和DDR 交互,对滤波模块输出结果通过三缓存的方式存入DDR ,然后输出上一帧的滤波结果给滤波模块;VDMA (VIDEO
DIRECT
MEMORY
AC⁃
CESS )是VIVADO 中专门用来传输图像数据的IP 核,通过该IP 核将最终结果送入HDMI 实现结果在显示器的显示;HLS 图像分层模块和VD⁃MA 都需要通过PS (Processing System )部分的ARM 核来配置参数。3.1
Cameralink 数据解码模块
本文算法实现所选用的可见光相机输出单通道8bit 视频帧数据,采用的Cameralink 标准的视频传输模式是Ba 模式。FPGA 开发板收到的图像相关信号有28bit ,包括1bit 场有效信号、1bit 行有效信号、1bit 数据有效信号和24bit 数据信号。24bit 的数据信号分成A ,B ,C 三个端口,根据相机每时钟周期输出的像素个数使用的端口数不同,根据端口定义就能够解码得出正确的图像数据。最后,把该解码模块封装成IP
核添
图4DOG 滤波结果
Fig.4
期中考试总结与反思Filtering results of DOG
1872