1. 引言
传统的成像方式是利用透过物体或者被物体散射的光在胶片或焦平面探测器阵列上呈现物体的图像。这对成像系统有着一定的限制,如需要在照明物体的波长范围内存在具有空间分辨率的相机。在很多特定波长的成像系统中,空间分辨的相机可能比较昂贵或者其工作带宽(刷新速率)较低。而鬼成像是通过两束分离的光的空间相关性获取图像信息的方式[1]。在鬼成像系统中,只需要用一个无空间分辨率的桶探测器接受与物体作用的信号路光子,而另一路不与物体作用的参考光子被一个有空间分辨的探测器接收。单独检索桶探测器的光子数和参考光子的空间分布都不能得到物体信息,只有关联两个探测器的信号,才能恢复物体图像[2]。因此,鬼成像实际上是一种间接成像,对于物体端的探测器要求极大降低,有望通过具有极高带宽的单像素探测器实现成像。鬼成像起源于两束光子的量子纠缠[3],最初被认为是一种量子关联特性。后续基于经典光源随机散斑光场的鬼成像实验[4]证明了鬼成像的实现过程并不一定需要纠缠光源,经典光场的随机涨落同样也可以实现鬼成像。鬼成像已经在多种光源下实现成像,包括热光源[5] [6],x射线[7],高斯–谢尔模式光束[8]等。
实际上,参考光路随机散斑光场可以用计算方式实现,并非一定需要实验获取,这就形成了计算鬼成像(CGI)的基本原理[9]。利用空间光调制器或数字微镜阵列等可编程器件产生所需的散斑光场去照明未知物体,再用对应散斑光场和穿过物体后的光子计数即可恢复图像。计算鬼成像进一步简化了鬼成像的实验光路,并使得通过计算机仿真鬼成像的结果成为可能。此外,计算鬼成像还可以实现光学加密[10]、边缘检测[11]等任务以及经过特殊设计使其具有对湍流的鲁棒性[12],极大拓宽了其在光信息处理和遥感[13]等领域的应用范围。然而,计算鬼成像对散斑数量有明显的要求,无论是使用随机散斑、傅里叶散斑或者哈达玛散斑等形式的散斑照明[14] [15],都需要足够多的散斑以恢复高质量图像。这极大阻碍了高速计算鬼成像及基于CGI的信息处理的发展。
提高计算鬼成像的信息获取速度是该领域的核心问题。一方面,通过改变数据采集方法可以提高计算鬼成像重建速度,如采用压缩感知的稀疏采样[16] [17]或者特殊散斑结构(如哈达玛散斑等) [18]可以加速计算鬼成像的重建。另一方面,采用优化的重建算法如迭代鬼成像[19] [20],对数和指数鬼成像重建算法[21]等也能缩短图像重建时间。深度学习[22] [23]作为一种用于数据建模、数据分类和决策的机器学习方法,已经在图像识别、图像去噪等方面表现出强大的功能[24]。在散射成像和相位成像等方向上,深度学习也被用来优化成像质量[25]。近几年来,利用深度学习,已经实现了计算鬼成像的采样次数减少[26],成像质量优化[27]以及端到端的桶探测器结果直接重构图像[28]。在目标识别比目标成像更为重要的情形下(如在生物医学中的大量图片的医学检测判断),可以通过深度学习算法直接进行高准确度的物体识别从而大大降低采样数量。这里,本文提出一种带有全连接层的四层卷积神经网络(CNN)用于计算鬼成像图像的快速识别,通过对差分鬼成像[9]的数值仿真结果的分析,证明了所提出的卷积神经网络能对通过极少量散斑恢复的低分辨率图像实现高精度识别。对于一个100×100像素的图片,只需要切换500次散斑,即可实现98%的图片识别准确率,相当于CGI的等效采样比可以达到0.05,极大提升了基于CGI物体识别的信息获取速度。需要说明的是,该方法虽然是基于计算鬼成像的数值模拟进行的原理验证,其应用范围却不局限在CGI方向上,这种先于成像的物体识别方法同样可推广到量子鬼成像中实现加速[29],在其他计算成像领域如单像素成像[30]、无透镜成像[31]以及散射成像[32]中也能发挥作用,未来有望在病理分析、材料研究、生命科学和遥感等领域得到应用。
2. 原理与方法
为了实现基于CNN加速的计算鬼成像物体快速识别,需要通过仿真产生不同散斑次数下的重构图像作为本文所搭建网络的训练集,随后用训练好的网络模型实现重构图像的分类操作,因此本文的模型整体框架如图1所示:
Figure 1. The schematic of the CNN
图1. 卷积神经网络原理图
2.1. 计算鬼成像原理及实现方式
计算鬼成像是在基于经典鬼成像的基础上,通过计算散斑与对应光子计数的二阶关联实现目标物体的成像,假设散斑的结构分布为
,散斑照射物体后的出射光子数为
,则成像表达式可由二阶关联函数[32]得到:
, (1)
式中
为平均值运算符,i表示第i张散斑图像,通过对上式展开化简可得重构图像
表示为:
, (2)
其中N为所使用的散斑个数,由于鬼成像的信噪比较低,差分鬼成像作为对成像结果的优化方法而提出,其不同之处在于采用信号方差值代替原本的信号值,它的重构表达式可以表示为:
, (3)
其中
,
为一张散斑的强度之和,由于差分运算能够有效抑制背景噪声,因此差分鬼成
像的成像信噪比相对传统鬼成像有所提高。
本章在基于上述理论基础上选择差分鬼成像的成像方式来实现计算鬼成像的仿真实验,通过Matlab实现成像过程,采用的图像为100 * 100像素大小的字母图片,该图片无需经过任何预处理操作,随机散斑的产生通过生成与图片相同大小的随机矩阵来实现,并将这些散斑矩阵分别与目标图像做乘法运算得到近似于实验中桶探测器所收集的光子数序列,最后将序列中的光子数分别与对应的散斑图像进行差分运算便可实现目标图像的重构。
2.2. 网络模型构建
本章采用CNN [33] [34]网络作为成像结果的训练和分类模型的构建。CNN是一种用于图像处理的监督学习神经网络,该网络在处理二维图像的问题上,特别是在识别位移、缩放及其他形似扭曲不变性的应用上具有良好的鲁棒性和运算效率。该网络结构主要包括三大部分:卷积层、池化层和全连接层,其中卷积层一般用来提取输入图像的局部特征生成相应的特征图,该特征图经过池化层特征映射后会实现特征图的缩放,因此池化层主要用来去除不必要特征以减小特征图大小,全连接层则将提取的图像特征进行类别的映射,常用于输入图像的分类处理。
所构建的CNN网络结构由四层卷积层及三层全连接层组成,模型示意图如图2所示:
Figure 2. Schematic diagram of CNN structure
图2. CNN结构示意图
网络输入采用256 * 256大小的输入图片,经过3 * 3大小填充值为1的卷积核卷积后得到尺寸不变的特征图像,该特征图被2 * 2大小步长为2的最大池化层进行2倍缩放后输出128 * 128大小的特征映射,为了加入非线性因素影响,对该映射采用ReLU函数进行非线性处理,ReLU函数定义如下:
, (4)
该函数能对特征图中的像素值进行线性修正,将值控制在非负范围内,提高模型的非线性能力以学习更复杂的任务,经过非线性处理后的特征图作为第二层的输入继续特征提取直到最后一层。第一层中的卷积核深度设置为64,后续卷积核个数以4倍大小减少,特征图大小每经过一层实现2倍缩放,因此最终卷积输出结果为16 * 16大小,通道数为1的特征图像,随后将该图像进行一维展开作为全连接层的输入,实现6种字母图片的分类,最终的输出结果由softmax函数处理。
使用交叉熵损失函数来计算模型预测结果与实际结果间的差异,对于多分类问题该损失函数表达式为:
, (5)
其中N为样本数量,M为类别数量,
代表第i个样本对于第c类的真实概率,
代表第i个样本为第c类的概率分布。通过该函数可以求解网络的损失值,并使用Adam优化器对网络中的参数实现更新优化:
, (6)
其中
表示t时刻的权重值,
表示
时刻的权重值,
为参数变化值,通过多次迭代训练得到的网络参数配置如表1所示。用该网络实现对不同散斑次数下的计算鬼成像结果分类,以得到能进行正确分类的最少散斑次数。
Table 1. Model parameters for neural network training
表1. 神经网络训练的模型参数
类目参数 |
取值 |
Epoch |
100 |
input_size |
256 |
batch_size |
50 |
loss function |
CrossEntropyLoss() |
optimizer |
Adam() |
learning rate |
0.01 |
3. 仿真结果
3.1. 不同散斑次数下的CGI效果仿真
在上述的仿真设置中,散斑个数是可变化的值,不同的散斑数量对相同目标进行重构会对成像对比度造成影响,本章进行了相应的测试,分别采用
四种散斑个数对字母A进行重构,其成像结果如图3所示。
从图中可以看出,散斑数量越大成像对比度越清晰,反之成像效果越差,因此成像过程中所使用的散斑个数是最终重构结果的决定性因素。由于过多的散斑数量在实际实验中会严重影响鬼成像的重构效率,因此寻找最少采样次数同时又不降低成像质量是至关重要的。
Figure 3. Imaging results with different numbers of speckle patterns
图3. 不同散斑个数的成像结果
3.2. CNN分类结果及分析
根据上述的模型参数,实现了CNN网络结构的搭建,训练集采用六种字母图片(A, B, C, D, E, F),每种共有50张鬼成像仿真结果,每张由1500次散斑重构得到,分批次进行训练,每个批次50张,一共迭代100次,通过Adam优化器更新网络参数,训练后得到的网络模型具有对这六类成像结果的分类能力。
在网络训练好之后,采用只需500次散斑重构的成像结果作为测试集,虽然该重构结果对比度远低于训练所用的图片,但该卷积神经网络依然表现出优越的分类结果。测试网络效果时,采用每类10张图像,将其输入训练好的网络结构,得到的实验结果如图4所示:
Figure 4. Confusion matrix for CNN models
图4. CNN模型的混淆矩阵
该结果表明本文的CNN网络具有分类能力,且分类结果准确率达到98%,具有极高的鲁棒性。
最后,进一步深入研究了该网络对于不同散斑次数重构的图片的识别效果,以字母B图像的CGI识别为例,模拟了散斑次数与分类准确率之间的关系,散斑次数从50到1500的范围内每隔50进行取值,将这些重构结果输入网络中得到每种散斑数目下的准确率,分类准确率与所使用随机散斑个数的关系如图5所示:
Figure 5. The relationship between the accuracy and the number of speckle patterns
图5. 准确率与散斑数目关系
由结果可以看到,随着散斑数目的增加,网络分类的准确率也在提升,当采样次数
时,分类准确率达到98%,
时,准确率接近100%,这说明最低采样次数为400时,重构图像的分辨率就足以被正确识别出来,因此通过该结论可以实现快速的计算鬼成像重构。
4. 总结与展望
本文基于四层CNN深度网络模型,实现了对计算鬼成像结果的分类,分类准确率达到98%,随后以一类图片为例,用该模型研究了散斑数目也就是重构图像的成像对比度对于网络分类精度的影响,结果表明采用鬼成像重构的图像作为网络的训练集是合适的,利用这种高分类准确率的CNN的确可以加速cgi的图像识别,而且恢复图像的散斑数量越多识别准确率越高,当散斑数量到达500张时基本饱和,该条件下的图像特征足以使网络进行高精度识别。相比于采用成像方式,CNN分类能够有效解决应用中的问题,比如材料中结构分子的分类,医学中的病理诊断以及细胞生物学中的分类问题等,这些领域在成像中并不重要,需要通过分类来提取有效信息。
本文方法为减少鬼成像中的数据采集时间提供了一个有效的解决方案,在实际的计算鬼成像中,由于采集的光子数与理想计数之间存在一定差距,这会造成重构的图像对比度受到影响,CNN作为一种能够进行图像优化的模型无论在量子成像中还是在计算成像领域都能起到很好的效果。因此将深度学习引入鬼成像中,通过优化模型来实现成像质量的提升,在一定程度上发挥了神经网络在鬼成像中的作用。