APP下载

基于FPGA 的低照度条件下EBAPS 图像混合噪声去除算法

2022-12-06夏皓天钱芸生王逸伦郎怡政

应用光学 2022年6期
关键词:照度高斯边缘

夏皓天,钱芸生,王逸伦,郎怡政

(南京理工大学 电子工程与光电技术学院,江苏 南京 210094)

引言

夜视技术是指在低照度环境下,对微弱的光学信息进行光电转换、增强处理,从而变为能易于被人眼观察的技术,目前广泛应用在军事夜间侦查和战斗中,是军用夜视装备的重要支撑[1]。目前以电荷耦合器件(charge coupled device,CCD)和互补金属氧化物半导体器件 (complementary metal oxide semiconductor,CMOS)为基础的电子倍增CCD(electron multiplying CCD,EMCCD)、像 增 强 式CCD/CMOS(image-intensified CCD/CMOS,ICCD/ICMOS)和电子轰击式CCD/CMOS (electron bombardment CCD/CMOS)成为微光器件的发展方向。

EMCCD 噪声大,需要制冷器来减小噪声产生的影响[2]。ICCD/ICMOS 是目前发展最迅速最广泛的微光器件,其有暗电流低、增益高的优点[3],但是需要将CCD/CMOS 与像增强器进行耦合,并且有调制传递函数低、噪声大的缺点[4]。电子轰击式有源像素传感器(electron bombardment active pixel sensor,EBAPS)也可称为EBCMOS,具有高增益、低功耗、可数字化显示等优点,同时又具备结构简单、体积小等特点[5]。其工作原理为外界光源照射在探测器表面,光子通过入射窗到达光电阴极发生外光电效应,将光学信号图像转换成电子信号图像;电子在电场的加速下获得能量,在CMOS 的电子倍增层产生大量的二次电子,由此获得电子轰击半导体增益,倍增后的二次电子被光电二极管收集,并通过MOS 晶体管放大电路后以视频格式读出,供后端进行数字化处理[6-7]。EBAPS 在轰击过程中会产生大量的增益噪声,这是由于电荷扩散和辐射损失引起的,其表现形式为类似于散粒噪声的点状或者多个相邻像素聚集的过饱和的像素点[8],除此之外,闪烁脉冲噪声也是低照度图像的主要噪声之一,信号在传输过程中由于某些原因使得光敏区某处电子数量突变,产生异于常态的光电效应,呈现出两极分化的幅值分布,严重影响了人眼的观察[9-10]。

散粒噪声又称泊松噪声,符合泊松分布,目前对于去除泊松噪声的研究主要有两个思路:一是利用去除高斯噪声的方式去除泊松噪声;二是对泊松噪声进行方差稳定变换为高斯噪声再进行噪声的去除[11],主要变换方式有Anscombe 变换[12]和HaarFise 变换[13]。对于受到泊松噪声污染的图像,许玉婷、吴志芳[14]等人提出了利用Anscombe 变换与剪切波结合的方法;王光新[15]等人用最大后验估计的方法去除泊松噪声。

脉冲噪声最大的特点是使某一像素点变为灰度值为极大或者极小值的噪声点,此点的灰度值是孤立存在的,与邻域灰度值无关[16]。对于脉冲噪声最经典的滤除办法就是中值滤波[17],左振鹏[18]和王丽红[19]等人对中值滤波算法进行了改进,提出了自适应中值滤波方法来降低图像噪声。而对于EBAPS 图像包含的二者相结合的混合噪声,单一的高斯滤波和中值滤波处理难以使图像质量达到最佳的效果。LIU[20]、XU[21]和JUNG[22]等人对三边滤波器进行了改进,用于对高斯噪声和脉冲噪声的混合噪声去除。丁继生[23]等人提出了开关中值滤波的算法,但在噪声较大时该算法有效性大大降低。陈伟和党榕[24]提出了一种修正的阿尔法均值滤波与边缘增强算法结合的方法,但与原图结构相似程度不高。涂友钢[25]提出了一种中值代替双边滤波的方法处理低照度图像中的混合噪声,但保留边缘细节能力较差。

为了解决上述问题,本文提出了基于可编程逻辑门阵列(field programmable gate array,FPGA)的开关融合中值-高斯(open and close mix-median-Gaussian,OCMMG)滤波算法。该算法将脉冲噪声检测与中值滤波相结合用于解决混合噪声中的脉冲噪声,边缘检测与高斯滤波相结合用于解决混合噪声中的泊松噪声,该算法还加入了脉冲噪声判别权重和边缘置信度表征值2 个参数增加图像保护边缘的能力。基于FPGA 对1×10−3lx 照度条件下EBAPS采集的图像进行实时处理,以验证算法的有效性。

1 OCMMG 滤波算法原理

OCMMG 滤波算法是一种基于中值滤波和高斯滤波的融合滤波方法,首先采用最小四方向差值进行脉冲噪声检测,进行第1 步滤波处理;然后采用四方向边缘检测提取边缘进行第2 步滤波处理,得到最后的滤波图像。

1.1 最小四方向差值

在一幅含有噪声的图像中存在梯度突变的边缘或角点不会出现非连续性的小异常窗口,根据梯度突变异常情况来判别高频脉冲噪声对整体图像的影响,本文采用最小四方向差值判别脉冲噪声。

式中: Γi为 方向检测模板; Ω 是以f(i,j)为中心的邻域 像 素 集 合;f(u,v)是 Ω 内 像 素 (u,v)处 的 灰 度 值;D(x,y)min是四方向邻域差值中的最小值; min{}为集合中的最小值。(3)式为传统中值滤波公式,将传统的中值滤波公式引入脉冲噪声判别权重ρ,(4)式为改进的滤波公式,也为本文第1 步滤波算法处理。

式中:f(x,y)为 当前像素灰度值;T1为脉冲噪声判别阈值;h为常数,此处令h=10; med()为像素集合的中值;g(x,y)为滤波处理之后中心像素灰度值。当D(x,y)min远大于T1时,则认为该像素点为脉冲噪声的可能性高,此时的 ρ值趋近于1,当前像素点会更大程度地进行中值滤波;反之,则会保持原来像素点的值不变。

1.2 四方向边缘检测

本文基于传统的Sobel[26]算子,提出了四方向Sobel 算子进行边缘提取,增加了45 °和135 °的梯度方向,弥补了传统Sobel 算子对于斜角方向边缘及角点检测的不足,并根据窗口边缘、纹理情况设立边缘置信度指标表征中心像素为细节纹理的区域。四方向离散型的Sobel 掩模如(6)式所示,(7)式为梯度G的计算公式。式中:R是 以 (p,q)为中心邻域范围像素点的集合;(p,q)是邻域像素点位置。(8)式为传统的高斯滤波公式,(9)式变换为离散的高斯滤波公式,在(9)式的基础上引入边缘检测判别权重τ,作用与(5)式同理,最终滤波结果为(10)式。

式中:F(x,y) 为 最终滤波后的像素灰度值;w为高斯滤波权重;k为常数,此处令k=10; θ为边缘置信度表征值。OCMMG 滤波算法适用于处理脉冲噪声与泊松噪声混合污染的图像。

2 基于FPGA 算法硬件实现

整体硬件设计如图1 所示。整个系统以FPGA为核心,包括驱动模块、算法模块、缓存模块和显示模块。

图1 系统总体框架设计Fig. 1 Design diagram of overall framework for system

2.1 总体逻辑设计

本文中有效像素阵列为1 280×1 024,系统工作时钟50 MHz,EBAPS 驱动时钟40 MHz。在整个系统工作过程中,EBAPS 进行图像采集,采集到的信号为模拟信号,经过AD 模数转换器将模拟信号转换为数字信号,图像数据信号被FPGA 接收,将数据进行本文的图像算法处理,通过VIO 模块实时调节阈值参数,利用AXI4 总线协议,将算法处理后的图像储存到DDR3[27]中,最后进行编码输出,在显示器上显示。系统运用了模块化的思想,模块中的流水线操作节约了资源,还增加了数据的吞吐量,提高了系统运行速度,达到实时性处理的目的。本文将重点讲述算法处理模块的设计,算法模块具体流程如图2 所示。

图2 算法模块流程图Fig. 2 Flow chart of algorithm module

2.2 3×3 模板生成模块硬件设计

在FPGA 中,图像的数据信息是以数据流的形式传输,一个时钟周期只能发送一个数据。本文图像的分辨率是1 280×1 024 @ 30 帧/s,采用寄存器数组移位来生成3×3 模板,该寄存器位宽为8 bit,容量是20 504 bit,能够存下2 563 个数据,在数据有效信号为高电平时,数据进入寄存器,并随着时钟进行移位,取寄存器中第1 个、第2 个、第3 个、第1 281 个、第1 282 个、第1 283 个、第2 561 个、第2 562 个和第2 563 个数据组成3×3 模板。具体流程如图3 所示。

图3 3×3 模板生成图Fig. 3 Diagram of 3×3 template generation

在数据传输过程中,取移位寄存器固定位置的数据,完成3×3 模板的生成与滑动。设经过移位寄存器固定位置的数据分别为a11、a12、a13、a21、a22、a23、a31、a32 和a33,如图4 所示。

图4 3×3 矩阵映射图Fig. 4 Diagram of 3×3 matrix mapping

2.3 最小四方向差值模块

采用最小四方向差值的方法对脉冲噪声进行检测。将3×3 模板里的数据与最小四方向差值掩模进行卷积,为了使计算结果始终保持正数,需要将进行减法的两端数据用大减小,输出正的4 个方向的差值,之后再两两进行比较,最后输出最小四方向差值,具体流程图如图5 所示。

图5 最小四方向差值流程图Fig. 5 Flow chart of minimum four-direction differences

方向1、方向2、方向3、方向4 是4 个方向的差值,其最小值为最小四方向差值。从3×3 窗口到计算出最小四方向差值共消耗了4 个时钟周期。

2.4 快速中值滤波算法模块

快速中值滤波模块流程图如图6 所示。

图6 快速中值滤波模块流程图Fig. 6 Flow chart of fast median filter module

快速中值滤波排序详细说明:

1) 列数据排序为将每一列中的3 个数据两两进行比较,划分出每一列中的最大值data_max、中间值data_med、最小值data_min。

2) 排序1 为将3 个最大值数据两两进行比较,划分出最大值中的最小值data_max_min;排序2 为将3 个中间值数据两两进行比较,划分出中间值中的中间值data_med_med;排序3 为将3 个最小值数据两两进行比较,划分出最小值中的最大值data_min_max;

3) 排序4 为将data_max_min、data_med_med、data_min_max 3 个数据两两进行比较,划分出中间值data_median,此为3×3 窗口的中值数据。

排序完成后,用自带的仿真工具仿真,发现数据从输入到选出中值数据输出共耗时5 个时钟周期,因此对同步信号延时5 个周期使数据与数据对齐。

2.5 边缘检测模块

边缘检测模块流程图如图7 所示。

图7 边缘检测模块流程图Fig. 7 Flow chart of edge detection module

在计算G1、G2、G3、G4时,需要加入判断,检测减数和被减数之间的大小关系,保证G1、G2、G3、G4结果为正整数。梯度求和结果G2的计算公式为

为了节约资源减少计算量,用梯度平方G2代替梯度的值。边缘检测模块从输入数据到判定是否为边缘点共消耗了4 个时钟周期。

2.6 高斯滤波模块

用3×3 矩阵[1,2,1;2,4,2;1,2,1]代表离散形式的高斯滤波模型,此滤波模板为一种低通滤波器,与其他滤波器模板相比(如均值滤波),本文滤波模板既加强了中心像素的权重,具有一定的图像平滑作用,又避免了过度平滑,并且在计算中避免了浮点数的出现,高斯滤波模板如图8 所示。

图8 高斯滤波模板Fig. 8 Diagram of gaussian filter template

将卷积后得到的二进制结果进行归一化处理,右移4 位作为最终的高斯滤波结果。在高斯滤波模块中,从输入数据到输出数据共消耗2 个时钟,因此需要将高斯滤波模块的输出数据再延迟2 个时钟,同步信号延迟4 个时钟,与边缘检测模块的数据对齐。

3 仿真与实验

本文对测试图片进行仿真,并设置了多种客观评价指标对仿真结果进行分析;此外,基于FPGA实现了实时去噪算法,并对实验结果进行对比。

3.1 仿真实验对比分析

本文以512×512 像素分辨率的Lena、Goldhill、Pepper 作为测试图片来验证实验结果,经过反复大量仿真实验,验证了本文算法的可行性。根据EBAPS探测器的成像特点,随着照度的降低,所采集图像灰度值的分布逐渐降低,灰度范围逐渐变小,并且存在以泊松和脉冲噪声为主要噪声的混合噪声。本文在3 张测试图片的基础上降低其对比度和灰度值,并添加一定程度的混合噪声来模拟不同低照度下的成像效果。通过人眼主观观察,将经过上述处理过的图片添加泊松噪声和2%的脉冲噪声较为合适,图9 为仿真测试图,其中图9(a)为原始图像,图9(b)为模拟偏暗环境光照度下的测试图,图9(c)为模拟中等暗环境光照度下的测试图,图9(d)为模拟暗环境光照度下的测试图。

图9 仿真测试图Fig. 9 Diagram of simulation test

对不同照度的测试图片分别进行了中值滤波、高斯滤波、文献[24]、文献[25]的算法和本文算法进行处理,得到处理后的结果图和客观评价指标。用客观评价指标对去噪后的图片进行评价,客观评价指标有峰值信噪比(PSNR)[28]、结构相似性(SSIM)[29],利用边缘保持指数(EPI)[30]评价边缘保留程度。图10~图12 分别是去噪后的结果对比图。表1~表3 分别是去噪后的评价结果。

图10 照度1 的去噪结果对比图Fig. 10 Comparison diagram of denoising results of illuminance 1

由表1~表3 所示,本文算法的3 种客观评价指标均优于与其对比的4 种算法,具有更好的去噪能力和保护边缘的能力,该算法相比于中值滤波和高斯滤波算法,峰值信噪比分别提高了3.23%和16.34%,结构相似性分别提高了14.66%和33.86%,边缘保持指数分别提高了0.49%和4.21%。与文献[24]与文献[25]相比,本文算法在峰值信噪比PSNR、结构相似性SSIM、边缘保持指数EPI 均为最优结果。由图10~图12 可知,文献[24]中的算法滤波算法结果良好,去除了大部分的脉冲噪声,但图像仍有颗粒感;文献[25]中的算法在照度越低的情况下,图像中出现的黑点越多;本文算法的滤波效果图更符合人眼观察。

表1 照度1 的测试图去噪后评价结果Table 1 Evaluation results of test map after denoising of illuminance 1

表3 照度3 的测试图去噪后评价结果Table 3 Evaluation results of test map after denoising of illuminance 3

图11 照度2 的去噪结果对比图Fig. 11 Comparison diagram of denoising results of illuminance 2

图12 照度3 的去噪结果对比图Fig. 12 Comparison diagram of denoising results of illuminance 3

表2 照度2 的测试图去噪后评价结果Table 2 Evaluation results of test map after denoising of illuminance 2

3.2 FPGA 硬件实验与结果

本文采用自主研制的EBAPS 图像传感器,型号为UV1280,分辨率为1 280×1 024 像素,像素尺寸为12.5 μm,曝光方式为卷帘式曝光,光谱响应范围为0.3 μm~0.97 μm,像素时钟要求小于80 MHz,本文采用40 MHz,输出为差分模拟信号,需要经过AD芯片转换成数字信号进行输出。本文采用的AD芯片为TI 公司ADC14C080,是一款具有模拟差分信号输入、14 bit 数字输出的高性能低功耗的模数转换芯片,转换速率高达80MSPS。FPGA 型号为XC7A100TI-CSG324,速度等级为-1L。图13 为硬件设备及其内部结构图,包括镜头、EBAPS 图像传感器、EBAPS 转接底座、AD 电路板、FPGA 核心板、HDMI 显示板、JTAG 转接板和外部结构。在EBAPS 侧片加入高压环,用自主研制的高压电源给EBAPS 加负高压以实现电子加速,用KLL-04型宽量程微弱光照度计实时测量环境光照度,图14为高压电源与照度计图。

图13 硬件设备及其内部结构图Fig. 13 Hardware device and its internal structure diagram

图14 高压电源与照度计Fig. 14 High-voltage power supply and illuminometer

本次实验分别在1×10−1lx、1×10−2lx、1×10−3lx环境光照度的条件下进行图像采集,采用固定光圈,固定负电压2 000 V,将采集到的未经处理的图像和经过本文滤波算法实时处理的图像进行对比。

需要注意的是采集到的图像会出现条带状噪声及黑色点状污渍,此为EBAPS 工艺所导致,不在本文考虑范围之内,故可以忽略。图15~图16 为室内静态环境结果对比图,图17 为夜晚外部环境实验结果对比图。

图15 静态靶标实验结果对比图Fig. 15 Comparison of experimental results of static targets

图16 静态SF 实验结果对比图Fig. 16 Comparison of experimental results of static SF graphics

图17 夜晚外部环境实验结果对比图Fig. 17 Comparison of experimental results of external environment at night

在采集真实图像时,本文采用同一静态场景的多帧叠加求均值的方式滤除随机噪声并作为理想参考图像,分别计算仿真软件与FPGA 经过本文滤波算法后的PSNR、SSIM 和EPI。如表4 所示,从表中可以看出FPGA 硬件实现的客观评价指标与仿真效果相差不大,可以认为二者处理结果相符。

表4 仿真软件与FPGA 算法客观评价一致性检验Table 4 Consistency test of objective evaluation of simulation software and FPGA algorithm

除此之外,本文加入了3 种照度下存在运动目标的图像进行对比分析,通过上位机进行视频图像的采集,截取视频图像中的某一帧进行实验结果对比,图18 为运动目标实验结果对比图。

由图15~图18 可以看出,在环境光照度越低的情况下,图像的对比度和灰度均降低,在1×10−3lx 照度条件下,图像边缘明显,此时设置的边缘置信值较大,当环境光照度降低时,需要适当调小边缘置信值来增大边缘识别度,在该算法的细节展示上能够看出,噪声被去除的同时边缘并未存在明显的模糊现象,在处理静态和动态、室内和室外的场景都具有良好的去噪效果。

图18 运动目标实验结果对比图Fig. 18 Comparison of experimental results of moving targets

在图像处理速度方面,针对分辨率为1 280×1 024 像素的图像进行处理时,由图19 可以看出,仿真软件处理一帧图像的时间为46.637 s,根据图20所示的仿真波形可以看出,FPGA 处理一帧图像所需时间大约为33.28 ms,约是仿真软件处理速度的1 401 倍,远快于仿真软件的处理速度,能够达到实时性处理的要求。

图19 仿真软件图像处理运行时间Fig. 19 Image processing running time of simulation software

图20 FPGA 图像处理运行时间Fig. 20 Image processing running time of FPGA

4 结论

为了去除包括泊松噪声和脉冲噪声的混合噪声,本文提出了一种基于FPGA 实现的用于低照度条件下EBAPS 图像的实时OCMMG 滤波算法。其主要解决思路为:针对像素异常点的突变,根据设置的判定阈值,采样最小四方向差值提取可疑像素点,进行第1 步滤波处理;根据设置的边缘置信度表征值,采用四方向Sobel 算子提取边缘,进行第2 步滤波处理。仿真结果表明,无论是主观评价和客观评价指标,本文算法均为最优结果,具有一定的优越性。硬件实现结果显示,本文算法能够有效去除EBAPS 图像在1×10−3lx 条件下的混合噪声,同时又能保留边缘信息,并且满足图像处理实时性的要求,可以作为低照度环境中提高图像质量的有效滤波方法。需要注意的是,文中设置的脉冲噪声判别阈值和边缘置信度表征值都为固定值,随着环境光照度变化,噪声大小也会发生变化,固定值会对图像处理造成一定影响。所以,在阈值的选取方面仍需开展进一步研究。

猜你喜欢

照度高斯边缘
天然光影响下的室内照明照度检测方法研究
数学王子高斯
天才数学家——高斯
体育建筑照明设计中垂直照度问题的研究
一张图看懂边缘计算
从自卑到自信 瑞恩·高斯林
在边缘寻找自我
走在边缘
边缘艺术