HTML
-
UMnet网络实现相位解包裹分为两部分,训练包裹相位和真实相位的映射关系如图 1a所示,实现从包裹相位到真实相位的相位解包裹运算如图 1b所示。对于网络的训练,橙色部分是准备阶段,模拟生成包裹相位和真实相位,蓝色部分是网络训练,网络训练获得网络输出的最优参数。
-
UMNet整体网络的设计结构为6层的U形网络结构,如图 2所示。左侧的收缩路径和桥接路径由MobileNetV3改进,选用两种AutoML算法[20],分别为神经架构搜索(neural architecture search,NAS)算法和平台感知NetAdapt算法。运用NAS算法优化网络模块搜索全局网络结构[21],同时使用NetAdapt算法搜索每一层过滤器的数量。NAS和NetAdapt相结合可有效优化网络模型。左侧收缩路径和桥接路径如表 1所示,其中input为输入通道数,bneck为网络的基本结构,SE为是否使用注意力机制,激活函数类型(activation function type,AFT)是ReLU和hard-Swish,output为输出通道数,使用卷积stride进行降采样操作,每一层由多个block组成。block模块是由1×1卷积进行升维、倒残差结构的深度可分离卷积、灵活调用SE模块、1×1降维卷积组成。其中深度可分离卷积将卷积分成深层卷积(depthwise, DW)与逐点卷积(pointwise, PW),与传统卷积网络Unet相比,降低了卷积运算的计算量;与此同时直接调用SE模块会降低网络的运算速度,故本文中将其放在深度可分离卷积之后,扩张层的通道数变为原来的1/4, 在不增加时间消耗的同时提升了网络计算精度。block模块图如图 3所示,当stride为1时,运用shortcut;当stride为2时,不运用shortcut; 运用shortcut可解决网络模型梯度发散问题。
layer input operator output SE AFT stride 1 8 Conv 2d, 3×3 16 false hard-Swish 2 2 16 bneck, 3×3 16 false ReLU 1 2 16 bneck, 3×3 32 ture ReLU 2 3 32 bneck, 3×3 32 false ReLU 1 3 32 bneck, 5×5 64 ture ReLU 2 4 64 bneck, 5×5 64 false ReLU 1 4 64 bneck, 5×5 64 false ReLU 1 4 64 bneck, 3×3 128 ture hard-Swish 2 5 128 bneck, 3×3 128 false hard-Swish 1 5 128 bneck, 3×3 128 false hard-Swish 1 5 128 bneck, 3×3 128 false hard-Swish 1 5 128 bneck, 3×3 128 false hard-Swish 1 5 128 bneck, 3×3 128 false hard-Swish 1 5 128 bneck, 5×5 256 ture hard-Swish 2 6 256 bneck, 5×5 256 ture hard-Swish 1 6 256 bneck, 5×5 256 ture hard-Swish 1 6 256 Conv 2d, 1×1 256 false hard-Swish 1 Table 1. Left shrink path and bridge path
SE模块通过建立卷积特征通道之间的关系来提高网络的精度[22-23],对网络特征进行重新校准,学习使用全局信息,达到强调有效的信息特征抑制无效特征进而提升网络学习能力。SE模块结构如图 4所示。由两个全连接(fully connected, FC)和两个激活函数组成, SERadio是一个缩放参数,用以减少通道数,从而降低网络计算量。
桥接路径是由两个MobileNetV3网络block模块和1×1卷积组成,桥接路径最后操作为1×1卷积,可用于更小的特征图,提升了网络的计算速度。扩展路径的每一层是由一个反卷积通过跳跃连接与收缩路径上对应的特征映射相连接,是由3×3卷积、残差块、3×3卷积组成,每个重复的两次卷积特征通道数减半。
-
收缩路径中激活函数选用ReLU和hard-Swish,在网络的前半段选用ReLU,后半段选用hard-Swish,hard-Swish函数在更深的网络中体现出更多的优势[24]。
式中,x为输入值,ReLU6函数用于抑制最大值,设备精度高低不影响分辨率。Swish非线性提高网络的精度,同时在量化模式下,用ReLU6代替Sigmoid,可减少网络计算量,提升网络的计算速度。
SE模块中选用ReLU和hard-Sigmoid, hard-Sigmoid与Sigmoid函数分段性近似,更容易计算,提升了计算的效率,以此提升SE模块的运算速度。
式中,x是输入值,clip函数是Python库里面对多维数组执行计算中用于限定固定上下值的函数。
-
假设φ(x,y)是待测的真实相位,ψ(x,y)是光学系统提供的包裹相位,它们有以下关系:
式中,i为虚数单位,angle函数采用复数自变量,将真实相位包裹在(-π, π]区间内。
选用随机生成相位图作为数据集,由尺寸为2×2~20×20,取值范围0~20的矩阵经过双三次插值扩大为256×256的矩阵组成,随机生成数据为高斯分布和平均分布随机选取,以获得更好的鲁棒性。由(3)式得出相应的包裹相位,同时对其中20%数据集加入噪声,提升网络抗噪声能力,训练集由包裹相位图和真实相位图作为一对输入和标签,其中21579对用于训练,2381对用于测试。
对于UMnet的实现,使用Pytorch(Python 3.8)框架,主机采用Intel(R)Core(TM)i7-9700, CPU运行主频为3.00 GHz,搭载4G内存NVIDA Geforce RXT 2060 GPU电脑上进行网络训练和测试。网络训练完成后,运用网络(大小为256×256像素)的相位展开时间为0.3 s。
-
使用Mach-Zender光路获取生物细胞的全息图[25]。如图 5所示,由He-Ne激光器发出的波长为632.8 nm的激光经偏振分束棱镜(patical beam structure, PBS)分为参考光R和物光O,参考光R经准直扩束系统(beam expansion, BE)BE 2形成平行光,经过反射镜M2,物光O经准直扩束系统BE 1形成平行光,经过反射镜M1,分别经过40倍显微物镜(microscopic objective, MO),参考光和物光发生干涉,通过合束棱镜(beam structure, BS)合束,被CCD记录下来。