APP下载

双残差深度学习鬼成像研究

2021-03-01曹佳宁王花花郑志远

实验室研究与探索 2021年12期
关键词:光路图样残差

高 禄,曹佳宁,卞 通,王花花,郑志远

(中国地质大学(北京)数理学院,北京 100083)

0 引言

鬼成像(Ghost Imaging,GI)是一种不同于传统光学成像方式的非定域成像方式。目前的研究证明,GI方案既可以利用纠缠双光子源实现[1],也可以通过经典的非相干光源实现[2]。针对GI 物理本质的争论至今仍然在持续,但是这并没有妨碍该项技术在实际应用中的推广。GI包含两个空间分离的光路,分别是信号光路和闲置光路。在信号光路中,光直接照射被测物体,经由物体散射或者透射的光被一个桶测量器收集;在闲置光路中,光束自由传播到具有空间高分辨率的面阵探测器;随后将两路光信号的光场强度进行关联测量即可重构出物体的图像[3]。在计算鬼成像(Computational Ghost Imaging,CGI)中,通过仿真计算获得随机图样,从而对非相干热光源的散斑场进行模拟,随机图样分布可以作为闲置光路的光源场,而不再需要物理上的闲置光路,信号光路中则需要将随机分布的光场照射被测物体,然后经由桶探测器进行测量。进而将信号光路和闲置光路的光场强度进行关联测量则可重构出被测物体的图像[4]。

CGI通常需要大量的随机图样来抑制噪声涨落,从而获得高对比度的图像,这导致数据获取非常耗时,也是限制CGI 在实际应用中进一步推广的最主要的原因。针对这一问题,标准化鬼成像[5]和微分鬼成像[6]先后被提出以提高成像效率。Gerchberg-Saxton算法和压缩感知鬼成像(Compressive Sensing Ghost Imaging,CSGI)将GI 视作一个优化问题,可以大幅降低随机采样的数量以提高成像效率。Gerchberg-Saxton所提出的技术则充分考虑了傅里叶变换的积分性质,这为GI的重构提供了一个不同的视角。

最近,深度学习(Deep Learning,DL)在图像处理领域取得了广泛的应用,如图像降噪、图像修复和自然语言处理等[7]。DL在计算成像领域也得到了综合应用,如数字全息、无透镜成像、散射介质和浑浊介质成像、光学加密和鬼成像。深度学习鬼成像(Ghost Imaging Using Deep Learning,GIDL)最早是由Lyu等提出[8],他们的研究证明GIDL 可以在极低的采样率下高质量地重构二值图像,GIDL通常需要将数以千计的GI图片作为输入,将待测物体的图片作为目标来训练深度神经网络(Deep Neural Network,DNN)。这里,本文中所提到的GI图像是表示通过传统鬼成像重构得到的图片。GIDL可以从严重缺损的、几乎难以辨认的图片中恢复出物体。在PSNR、SSIM 和RMSE 指标的衡量下,GIDL取得了非常好的效果。同时,GIDL所需的处理时间远少于没有使用深度学习的方法所需的时间[9]。研究表明,基于深度学习的计算鬼成像方法能够使用模拟数据进行训练,这使得GIDL 更加具有实用性。

GIDL通常需要大量的待测物体图像作为正确的标注,接着它们被一系列随机图样相乘得到相应的GI图像作为神经网络的输入,然而,在目前所提出的大多数GIDL方案中,训练集和测试集均使用了相同的一组特定的随机图样,这一做法会导致GIDL 在实际应用中泛化能力被削弱。本文通过批处理优化了GI 的仿真算法,引入了不同的随机图样,使获得的数据集更接近真实物理情况。将优化后的仿真算法应用到GIDL中,使GIDL的泛化能力得到了显著增强。进一步,为了提高GIDL 的成像质量,让DNN 学习残差图像而非待测物体图像。将GI的残差分成两部分,进而提出了一个双残差(Double Residual,DR)架构来分别学习这两部分不同的残差图像。通过将DR架构和UNet结合,提出了一个新的GIDL,即DRU-Net 方案。实验结果证明,基于DR 结构U-Net 学习网络的鬼成像的图像质量得到了明显的提高,其图像的SSIM 指标是普通鬼成像的3 倍。

1 仿真实验

1.1 批处理优化的仿真算法

CGI的配置如图1 所示。通过计算机仿真模拟生成一系列的随机散斑图样(见图1 左下方)后和待测物体图像分布相乘,并且将每个像素的光强值作求和累加后得到一个光强数值,即信号光路中的“桶测量”值。通过对信号光路的桶测量值和闲置光路的随机散斑图样进行关联测量获得待测物体的图像。计算鬼成像的过程方程如下所示:

图1 计算鬼成像装置示意图

式中:Sm表示第m帧信号光路中桶测量的强度值;Im表示第m帧闲置光路的光强分布函数;〈·〉代表多次测量的平均值。

通过仿真获得赝热光的随机散斑图样来训练神经网络。在朴素的串行仿真算法中,图像是一个接着一个地被处理,从而得到相应的GI图像。因此为每一张图片生成一个不同的随机图样集会产生巨大的输入输出(Input/Output,I/O)。鉴于DL 通常需要成千上万的图片作为数据集,使用朴素的串行仿真算法通常会花费数十个小时。在以往的研究中,一个普遍使用的方法是针对不同的图片采用相同的随机图样来生成数据集。这样可以减少生成随机图样的时间和I/O 数据,但是这也同时牺牲了数据的可靠性和神经网络的泛化能力。本文通过批处理优化了仿真算法,从而实现了基于不同随机图样的更可靠的数据。我们将随机梯度下降(Stochastic Gradient Descent,SGD)中“批”的概念引入到预处理阶段来充分利用CUDA(Compute Unified Device Architecture,CUDA)。图片被分成批,每一批中的所有图片一起构成一个3 维数组。每个3维数组作为最小处理单元。针对每个3 维数组生成一个不同的随机图样。因此,同一批中的图像分享相同的随机图样,然而不同批之间的随机散斑图样则不同。GI图片通过3 维的物体分布数组和相应的随机图样之间的点乘得到。将“批”的尺寸设置为256、512 或者更大的数,优化仿真算法显著减少了I/O。GI 仿真数据标准化公式为

式中,TGImin和TGImax分别表示鬼成像图像中最小和最大的光强值。

通过这种方式,GIDL 的泛化能力得到显著提升,所设计的优化算法不仅可以处理二值图,还可以处理灰度图。朴素的串行仿真算法和优化后的仿真算法都是通过Python 中的PyTorch 机器学习库实现的。PyTorch针对矩阵进行优化,因此矩阵运算的大多数运算时间可以被节省下来。在普通的PC机上,对于128×128 像素图片的训练集,朴素的串行算法需要近28小时来处理,而优化后的算法仅需23 min,计算效率提高了70 倍。

1.2 双残差深度学习架构

在现有的GIDL中,待测物体图像是从GI图像端到端生成的,该过程可以被表达为

式中:O代表神经网络的输出;F{·}代表将GI 图片映射到相应待测物体图片的神经网络。具体的训练过程可以被表示为

式中:Θ表示神经网络参数的集合;L(·)是用来度量神经网络输出和相应待测物体图像之间差距的损失函数;上标i表示第i个输入输出对。取i=1,2,…,K,枚举全部K个输入输出对;W(θ)代表参数正则项,防止过拟合。

目前,残差学习在图像处理领域已经得到了广泛的应用[10]。受DnCNN的启发,让DNN学习残差图像而非待测物体图像。在GIDL 中,用Res表示残差,定义为

DnCNN是目前最有效的一个深度残差网络,它能够处理各种图像降噪任务,包括高斯噪声、SISR 和JPEG图像去块。用来表示DnCNN,训练过程方程为

通过这种方法,重构后的图像可以被表示为

残差映射通常要比原始映射更容易优化,因为残差图像和待测物体图像相比有着更小的像素值。极限情况下,如果恒等映射是最优的,神经网络直接将残差变成0 要比适合恒等映射更简单,但是GI 是个例外,它的残差在数值上太大了导致它非常难以学习。以图2(b)为例,关联测量会导致图像呈现出平均的感觉而变得模糊。图2(a)和(b)之间的残差达到了-209~145,区间长度甚至超过了灰度值的上限,残差比待测物体图像更加复杂,导致残差学习不适用于GI。为此,提出了将残差分为上残差和下残差的方法,通过减少像素值的区间长度使其适应残差学习的特性,并且将残差分成两部分也会使学习过程变得更加简单,图2(c)和(d)分别为上残差和下残差图像。DR 架构的主体包含两个卷积神经网络(Convolutional Neural Network,CNN),双残差的卷积神经网络即记作DRUNet。U-Net是一个U形的深度CNN,其中最大池化层和上采样层对称出现。U-Net最初是为了图像分割问题设计的,后来的研究证明该网络也可以被用来处理鬼成像的去噪问题。U-Net 的变体ResU-Net-在遥感数据方面获得了很成功的应用[11]。

图2 待测物体和鬼成像图像

如图3 所示,一个CNN 用上残差图像训练;另一个用下残差图像训练。DRU-Net 反映了GI 的统计特性,使得GI 的残差变得足够简单,易于学习。DRUNet不仅重构出了丰富细节的高质量图片,还在测试集上展示出很强的泛化能力,取得了比U-Net 和DnCNN更好的效果。

图3 双残差网络(DRU-Net)示意图

DRU-Net由上CNN 和下CNN 构成,分别学习上残差图片和下残差图片,将其定义为

将负值转换为0 使其更加适合卷积运算,并将高度污损的GI图片作为神经网络的输入并分别使用两个残差作为学习目标。在这种情况下,训练过程可以被写为:

式中:Rup表示上CNN;Rdown表示下CNN。这里浮点数被转换成了整数,这样就可以在明显损失的情况下将残差作为图片保存。重构的图片表达式为

使用MSRA10K 数据集[12]作为待测物体图像训练上述3 种神经网络,并且直接采用U-Net 和DnCNN模型。选择了5 120 张图片并将它们的尺寸调整为128 ×128 像素,并将它们分成批,通过优化仿真算法获得了相应的GI图像。由方程(8)和(9)可以计算出上、下残差图像并与其对应的GI 图像配对,来训练DRU-Net。训练过程中,Adam优化器[13]用来最小化均方误差。训练集的批大小取为16,学习率设定为0.000 02,权重的衰减率设定为0.000 3。使用了PyTorch 1.3.1 和NVIDIA GTX 1080M 显卡训练神经网络。

2 实验结果

图4 展示了不同GIDL重构结果之间的差异。第1 列是4 张没有被包含在训练集中的待测物体图像;第2 列是GI 仿真得到的图像;第3、4、5 列分别是DnCNN、U-Net 和DRU-Net 处理得到的结果。图4 中展示了U-Net和DnCNN相对于传统的GI都不同程度地提高了成像质量。相比较于U-Net 和DRU-Net,DnCNN处理图像的结果并不理想,这是因为GI 的残差信息量过大,导致DnCNN并不适用。DRU-Net明显取得了比其他两种方法更好的效果。DnCNN、U-Net和DRU-Net 恢复的图像参数如表1 所示。PSNR、SSIM越高,RMSE 越低,表示图像质量越高。在PSNR和SSIM指标中,DRU-Net取得了最高值,而在RMSE指标下,DRU-Net 取得了最小值。SSIM 指标比PSNR能够更精确地衡量图像的质量。GI、DnCNN、U-Net和DRU-Net的平均SSIM 分别为0.176、0.395、0.518 和0.555,数据表明DRU-Net图像的平均SSIM 指标达到了传统GI方案的3 倍。

图4 GI、DnCNN、U-Net和DRU-Net图像处理结果

表1 GI、DnCNN、U-Net 和DRU-Net 的PSNR、SSIM 和RMSE数据表

3 结语

将“批”的概念引入预处理阶段并优化了GI 的仿真算法,使得短时间内获取大量不同随机图样的可靠数据成为可能,优化后的仿真算法增强了GIDL 的泛化能力。针对GI的统计性质,将GI的残差分成上、下残差实现了进一步的算法优化,提出了新的GIDL 架构——DRU-Net。通过仿真实验将DnCNN、U-Net 和DRU-Net进行了图像处理对比,结果显示DRU-Net 相较现有的GIDL 具有显著的优势,获得了更好的鬼成像的图像重构效果。DRU-Net 恢复出的图像的平均SSIM指标可以达到传统GI 方案的3 倍。目前,大多数GIDL都采用了监督学习,同时GI 过程也被视作一个降噪过程。在未来的研究中,鉴于显著的信息丢失已经不能被视作降噪问题,我们拟实施非监督学习的方法,如图像修复算法[14-15],来“猜”出图像丢失的信息。

猜你喜欢

光路图样残差
基于双向GRU与残差拟合的车辆跟驰建模
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
自制立体光路显示仪
通天之光路
越南电站EPC项目设计图样审批管理
平稳自相关过程的残差累积和控制图
“机械图样的绘制与识读”课程开发与实施
装修图样:清代宫廷建筑内檐装修设计媒介
寒冬必备!最IN喵套装