微生物数字全息显微图像的嵌入式分类系统

2020-12-09 09:27戴陈统王海霞
小型微型计算机系统 2020年12期
关键词:全息嵌入式准确率

陈 朋,戴陈统,宫 平,王海霞

1(浙江工业大学 计算机科学与技术学院,杭州 310023) 2(浙江工业大学 信息工程学院,杭州 310023)

1 引 言

微生物是指自然界中大量、多样的微小生物,其体型微小,结构较为简单,人类肉眼无法直接观察到,需要使用显微镜等方式才能获得其形态[1].微生物对自然环境的生态平衡具有重要作用,而水中微生物的检测,能够有效地指示水质状况[2],对水质检测以及污水处理等领域的研究具有重要意义.

传统方法下微生物的观察与分类鉴定[3],如流式细胞术(Flow cytometry,FCM)、ATP检测法、变性梯度凝胶电泳技术等,需要繁琐的实验步骤,依赖昂贵的仪器和专业人员,检测难度大,耗时长,条件受限制.因此传统微生物分类识别技术还存在很大的改进空间.

近年来,国内外也出现了很多替代人工的微生物检测方法,如Huffman和Serebrennikova等人[4,5]利用细菌的多波长透射光谱创建识别模型,结合多元统计技术对特征光谱进行识别,灵敏度达到87.7%~94.6%;马丽丽等人[6]优化了流式细胞术用于淡水环境中微生物的检测;李乔等人[7]采用支持向量机结合顶帽变换和OTSU等算法对拖拽式水下显微镜图像进行检测,做到实时智能识别,准确率达93.4%.

基于数字全息显微方法的微生物检测,能够记录微生物的几何形状、三维信息,获取相比光学图像更多的目标特征,使得检测工作更加容易,成为研究的关注点[8].例如Bianchi等人[9]利用3束不同角度相干光源对同一目标作全息成像,获得运动细菌和真核细胞的大范围快速动态过程数据;Shaked等人[10]使用全息显微镜观测单个生物细胞悬浮液,通过旋转显微镜获得细胞3D折射率分布,为无标记细胞分选和诊断做出贡献;Robisch等人[11]利用近场X射线成像(Near-field x-ray imaging),同时重建对象和探头,通过波前扩展重建纳米级全息图像.

卷积神经网络(Convolutional neural network,CNN)是人工神经网络的一种,被广泛地应用于图像识别和语音处理,但其在微生物数字全息图像上的应用仍处于探索阶段[12].卷积神经网络其本质是一种输入到输出的映射关系,跳过了显示的数学表达,通过已知模式对卷积网络加以训练,网络即可获得输入输出之间的映射能力[13].

而将数字全息显微方法与CNN相结合,能碰撞出更具创新的微观物体检测技术,例如Trujillo等人[14]利用CNN对全息图中红细胞的检测和计数,无需重建计算,并对比了传统的对重建后数字全息图像中的红细胞视觉检测计数方法,新方法在密集样本中获得了100%的准确性.而Kim等人[15]利用深度迁移学习(Deep transfer learning,DTL),对在线无透镜数字全息显微的细胞图像进行分类.实验证明不同细胞球体能够产生不同的全息图像,尽管人眼无法察觉,但机器视觉分类器能够识别,因此无需重建全息图即以从原始图中提取特征信息.以原始全息图作为输入,经过训练的网络能够对单个细胞进行分类,表现出良好的性能,并节约了大量计算资源.

近年来,仪器产品小型化、便携化成为趋势,嵌入式系统逐渐替代大型主机,被广泛地应用在各个领域[16].数字全息显微成像的嵌入式化也是其前进的目标.将基于PC平台的卷积神经网络算法移植到嵌入式平台,并具有较高的运行效率与准确率,能够促进微生物识别技术的普及.因此,本文提出一种嵌入式分类系统,利用Tengine架构配合多种嵌入式运算库部署卷积神经网络算法,结合全息成像技术,实现嵌入式的微生物数字全息显微图像分类.本文的主要工作如下:

1)针对传统微生物识别分类需要人工干预的缺点,本文将卷积神经网络算法应用到微生物全息显微图像进行自动分类.

2)本文设计嵌入式数字全息显微系统,首次采用多种嵌入式运算库配合Tengine架构在嵌入式平台部署神经网络分类算法,实现全息图像快速分类.

3)针对嵌入式资源有限的特点,本文无需对数字全息图像重构计算,在嵌入式系统中直接采用原始数字全息图像进行分类,节约计算资源.

2 嵌入式数字全息显微系统

本文设计的数字全息显微系统由硬件和软件两部分组成,其中硬件部分主要完成全息图像的采集、计算、结果显示等工作;软件部分依托于硬件,利用卷积神经网络算法,对全息图像进行分类处理,以实现全息图的快速自动分类.

2.1 硬件系统结构

嵌入式全息显微图像分类系统硬件如图1所示,主要由3部分组成,包括:图像采集、信息处理、显示输出.

数字全息光路包括同轴与离轴两种,相比于离轴全息,同轴全息因为具有光路更加简单,更好地微型化等优点,更加适用于数字全息显微技术的便携化应用[17].因此,本系统选择采用同轴全息光路,如图1左侧所示,采用650nm部分相干红色LED作为光源,利用200μm微孔增加其相干性.为了获取更加清晰的图像,本系统采用3.75μm像元尺寸的黑白CCD传感器(SONY ICX445)作为图像传感器.

图1 硬件系统结构Fig.1 Hardware system structure

在信息处理部分采用国产EAIDK嵌入式开发板,以瑞芯微电子公司的RK3399处理器作为主处理器,该处理器由4个A53核心、2个A72核心及Mali-T860图像处理核心组成,最高主频为1.8GHz.RK3399核心配合WiFi模块、蓝牙模块、板载相机、IO接口等组成一块高性能可扩展的系统主板.显示交互部分采用5.5寸液晶屏和触摸屏配合,通过LCD总线和I2C总线实现与RK3399的数据通信,从而完成整个采集、处理和显示过程.

2.2 软件架构

本系统软件架构由两部分组成:1)PC平台卷积神经网络算法训练;2)嵌入式平台算法部署运算.

图2 软件架构Fig.2 Software architecture

软件架构如图2所示,左侧为PC平台卷积神经网络算法训练,本文在Caffe框架下,对GoogLeNet等网络模型进行训练,获得分类算法.右侧RK3399嵌入式开发板具有4GB运行内存和16GB闪存,安装Linux系统,部署Tengine深度学习框架,通过多种高性能计算库充分利用RK3399核心性能,解构分类算法,对摄像头获取的全息图像进行分类计算,将结果通过显示屏输出.

3 数字全息图像的分类算法设计

3.1 全息图像数据集的构建

本系统需使用微生物全息显微图像作为机器学习算法基准,系统采集生物样片数据,如草履虫、竹枝藻、涡虫、舟形藻、杂藻等,其中部分样品尺寸过大,而草履虫、浆果毛、杂藻、竹枝藻这4类样本尺寸与数量较为合适,共80张图像可供使用.

同时,本节采用微生物光学图像数据集,为适应本系统对全息图像分类的特性,将其全息化计算,生成全息图像后作为训练基准.图像数据集采用Whoi微生物光学显微图像[18](如图3所示).

图3 Whoi微生物数据集Fig.3 Whoi microbial dataset

该数据集共包含6600幅图像,分布于22个类别,为节约实验资源,本节随机选取10个类别,每个类别300张原始图像,分割为训练集240张,测试集60张.

为提高分类的准确性,本节将数据集进行旋转扩充,扩充后数据集中每个类别为960张训练图像,240张测试图像,10个类别总计12000张.此外,图片分辨率统一转换为128×128.

全息技术来源于光的波动特性,使用相干光作为光源,照射被测物体,其中透过被测物体的光形成物光波,未透过的光作为参考波,图像传感器通过采集物光波与参考波干涉后的图像,以记录物体振幅及相位信息,得到全息图[19],其中,物光波的复振幅表示为:

O(r,t)=A0(r)ei(φ0(r)-ωt)

(1)

式中,A0(r)、φ0(r)代表物光波与空间位置r相应的振幅与相位,ωt代表波面的瞬时相位.

而参考波则表示为:

R(r,t)=AR(r)ei(φ0(r)-ωt)

(2)

当物光波和参考波相干叠加时,将产生合振动:

U(r,t)=A(r,t)+O(r,t)=Uo(r)ei(φ0(r)-ωt)+UA(r)ei(φ0(r)-ωt)

(3)

其光学强度信息分部为:

I(r)==|O|2+|R|2+R*O+O*R=|O|2+|R|2+2|O||R|cos[φR(r)+φO(r)]

(4)

式中,< >表示对时间求平均,*表示复共轭.由此推导得出:在强度分布信息中与时间相关的因素能够消去,保留空间相关项.其中|O|2代表物光波强度分布信息,|R|2代表参考波强度分布信息,第3项则代表两个波之间的干涉效应,由余弦因子调制,其调制深度为:

(5)

干涉条纹的形状由相位差φR(r)-φo(r)决定,因此全息图像能够记录物光波和参考波的振幅和相位信息,并以此推导出被测物体的三位立体信息.

根据以上全息成像原理,结合空间传递函数(SFTP)与角谱算法(ASM),该方法可以模拟出光的传播路径,从光学原图像出发计算它在CCD平面上产生的干涉条纹,最终生成相应的全息图像.空间传递函数(SFTP)公式如下:

(6)

其中Ψp为复振幅,Ψp0为复振幅在z=0平面上的场分布.而衍射场ψp(x,y;z)是由入射场ψp0(x,y)傅立叶变换后,乘以传递函数H(kx,ky;z),再经傅立叶反变换得到,即为角谱算法(ASM),其基本公式:

ψp(x,y;z)=F-1{F{ψp0(x,y)}×H(kx,ky;z)}

(7)

本节在Matlab上部署ASM算法,将CCD像素间距设为3.75um,传播距离设为1200um,光源 波长设为650nm.将Whoi数据集光学显微图像作为输入源,计算获得全息图像.

3.2 卷积神经网络算法及优化

卷积神经网络模型结构多种多样,经典模型例如LeNet、AlexNet等,以及由此发展而来的VGGNet、GoogLeNet.其中LeNet是首个效果比较好的CNN模型,结构简单明了.AlexNet与LeNet相似,通过增加网络层数到8层,由若干卷积层、池化层、归一化层和全连接层组成,首次在ImageNet上取得不错的分类效果.VGGNet相对AlexNet做了部分改进,增加网络层数为16层(VGG16),并减小了卷积核大小,使用多个小卷积核替代大卷积核,同时保持感受野不变,使得网络对特征的学习能力更强.

GoogLeNet则进行了更大胆的结构改变[20],使其在拥有22层网络深度的同时,保持了较小的参数规模.其中,AlexNet参数个数为GoogLeNet的12倍,VGGNet则为36倍,因此在计算机资源有限时,GoogLeNet是更好的选择.

GoogLeNet采用了模块化结构,利用多个连续的Inception子网络(Inception子网络结构如图4下半部分),构造类“基础神经元“结构,来搭建一个稀疏性、高计算性能的网络结构[21].

Inception架构的主要思想是利用密集成分来近似局部稀疏解,采用不同大小的卷积核来表征不同的感受野,以关注不同尺度的特征,最后对特征进行拼接融合.Inception架构的意义在于无需人为定义过滤器类型,由网络自行决定这些参数.

本文将经典GoogLeNet网络模型的输入数据尺寸进行了裁剪和优化,以适应嵌入式平台资源有限的特点.尺寸由224×224减少为128×128,将3通道RGB数据改为1通道灰度数据,在保证足够信息量的前提下将数据量减少90%.相应的,需要将池化层5(Pool5)尺寸由7×7修改为4×4以对应裁剪后的数据量.修改后的GoogLeNet网络结构如图4所示,为作区分,本文将之称为GoogLeNet-Lite.

3.3 嵌入式平台Tengine架构部署

图4 GoogLeNet-Lite网络结构Fig.4 GoogLeNet-Lite network structure

Tengine架构是由开放智能机器(上海)有限公司(OPEN AI LAB)开发,针对嵌入式终端平台设计的前端推理计算框架,采用模块化设计.Tengine架构如图5所示,其主要特点是包含多种高性能优化库,以提高嵌入式SoC神经网络算法运算效率.

图5 Tengine架构Fig.5 Tengine architecture

本系统运行环境为国产RK3399处理器,包含4个A53核心,2个A72核心(CPU)和Mali-T860图像处理核心(GPU),通过加载ACL(Arm Compute Library)驱动程序,驱动GPU进行图形运算,使得在ACL环境下构建的Tengine框架能够同时调用CPU与GPU进行运算,性能更加强劲.

同样的,本文在嵌入式平台上安装了Protobuf、Boost、Google-glog等组件以支持caffe模型部署,安装Opencv库用以调用图像处理函数,添加对OpenBLAS基础线性代数库的支持使得运算过程更加高效.

Tengine架构中还集成了HCL(Heterogeneous Computing Library)异构计算库,是一种由OPEN AI LAB开发,专用于嵌入式平台神经网络的计算库,提高了算法运行效率.

4 算法训练部署与结果分析

4.1 神经网络算法训练

本系统中神经网络算法模块由PC机训练生成,PC硬件平台处理器为Intel i5 6500,显卡为NVIDIA GTX1050Ti,采用Ubuntu18.04操作系统,部署Caffe深度学习框架,通过NVIDIA CUDA运算平台调用显卡进行卷积神经网络学习训练,在GoogLeNet模型下对12000张图片进行50余次循环运算耗时2小时.

为保证分类算法的准确性,本文采用GoogLeNet、CaffeNet、AlexNet和VGG16Net 4个经典神经网络模型,在全息化的Whoi数据集上进行分类训练.训练完成后对各个网络模型的分类准确性进行对比.各个网络模型分类的最终结果如表1所示.通过表1可知,GoogLeNet网络模型能够在全息化Whoi数据集中获得最高分类准确率,达95.06%,达到了本系统对分类算法准确率的要求.

表1 各网络模型训练最优准确率(Whoi数据集)Table 1 Optimal accuracy of each network training(Whoi)

4.2 算法优化分析与讨论

为对比测试经典GoogLeNet网络与本文优化的GoogLeNet-Lite网络,我们在PC环境Tengine架构下分别对两个网络进行性能测试,结果如表2所示.由表2中各项数据对比得知,相对于经典GoogLeNet,本文优化的GoogLeNet-Lite准确率仅下降1.3%,而输入数据的裁剪使其参数规模缩小14MB,为其带来了计算运行时间减少64.5%的效果.因此,优化后的GoogLeNet-Lite在精度损失较小的同时提高了运行效率,适用于本嵌入式系统.

为使PC平台下Caffe架构的神经网络算法能够运行在嵌入式开发板上,本文在RK3399开发板上安装Linux-redhat系统,利用Tengine网络计算架构对算法模型进行部署.将Caffe架构下算法的参数文件caffemodel与网络结构描述文件prototxt读取至Tengine架构中,从中获取输入张量形状等相关参数.由本地读取输入图像数据,申请张量缓存数据区,通过预运行为图的运行准备资源.预运行测试成功后正式运行图,根据张量模型计算图像数据,并将运行结果保存在张量句柄中,最后将结果输出.

表2 GoogLeNet与GoogLeNet-Lite网络对比测试Table 2 GoogLeNet vs GoogLeNet-Lite

各个网络模型在不同环境下测试结果如表3所示.由表3准确率对比可知,GoogLeNet-Lite与VGG16Net网络模型能够在RK3399-Tengine环境下获得较好的准确率,CaffeNet与AlexNet测试准确率相对较低.由此可得出:同为PC平台下,Tengine架构由于其通用性需求,同时支持Caffe、TensorFlow、ONNX等框架模型,较纯粹的Caffe架构运行耗时更长,近4∶1,运算精度也有一定损失.而同为Tengine架构下,模型在RK3399平台较PC平台运行耗时更长,但考虑嵌入式平台计算资源有限,适当的耗时延长仍在接受范围内.

表3 不同环境下各网络模型测试结果Table 3 Network model test results in different environments

嵌入式RK3399平台、Tengine架构下,各个模型运行时间细分如表4所示,本文将单次运行时间分解为:1)图像预处理;2)模型参数初始化;3)网络运行1帧图像时间.在大量数据连续运行的情况下,模型参数初始化仅需1次,单帧速度可由图像预处理时间+运行1帧图像时间相加而得.

CaffeNet、AlexNet由于提出时间较早,结构设计上较为简洁,模型深度与宽度不足.但正是由于其简洁性,使得在嵌入式平台下依然获得了不错的准确率与运行效率.VGG16Net与GoogLeNet属于同一时期,VGG16Net继承了AlexNet的框架结构,并在此基础上加大网络深度与宽度,使用了小卷积核代替大卷积核、小池化核替代大池化核,以此减少计算量,由表4中实际运行时间来看,尽管获得了较高的准确率,但由于其过于庞大的网络规模,造成帧运行时间过长,不适用于当前的嵌入式平台.而GoogLeNet则通过模块化的Inception子网络设计,不仅利用小卷积核代替大卷积核以减少计算量,并且增加1×1卷积核降低特征图像厚度,使其能够在网络深度达22层的同时参数规模远远小于其他网络.由表4可知,本文优化的GoogLeNet-Lite参数初始化时间极短,仅为其他模型的10%~25%,帧运行时间与同期的VGG16Net相比减少了88.6%,适用于即开即用的户外场景.而22层的网络深度为其带来了较高的准确率,优秀的结构使其在性能与效率中取得平衡,适用于本嵌入式图像分类系统.

表4 Tengine下各网络模型运行时间(ms)Table 4 Network model running time on Tengine(ms)

故本文选择GoogLeNet-Lite作为本系统实际使用网络模型,取得RK3399下最高94.15%准确率的同时,保证了12.7fps帧率.其中,PC平台下Tengine架构相比于Caffe架构损失准确率5.53%,增加运行时间33ms.而Tengine架构下RK3399平台相比于PC平台损失准确率0.16%,增加运行时间35ms.

本系统实物如图6所示.

图6 系统实物图Fig.6 Physical system

采集生物样片数据中共4类80张图像符合网络分类标准,扩充为320张图像后进行分类训练.自制数据集于GoogLeNet-Lite网络下测试准确率81.3%,在训练过程中网络不易收敛,准确率变化幅度大,获得的算法模型可靠性较低.产生这一问题的原因可能是系统采集的图像中,各个对象之间有所重叠、遮挡,多个目标黏连成团,并伴随大量灰尘等杂物产生的光斑.因此导致自制数据集模型识别准确率低于Whoi数据集模型.

4.3 系统对比分析

与传统数字全息显微图像分类方法相比,本文方法通过引入卷积神经网络来识别人眼不可识别的全息图像,无需传统全息重建计算过程.为验证本方法在嵌入式平台下识别速度上的优越性,本文在AM335X嵌入式平台移植了数字全息重建算法,重建过程分为传递函数与角谱算法两个部分,采用OPENCV结合FFTW库提高算法速度,实际测试主频在1GHZ下算法运行时间为590ms.因此,本文通过流程优化,为数字全息图像分类节约时间590ms,与传统数字全息显微图像分类方法相比具有识别速度上的优越性.

相比于其他微生物检测技术,例如VITEK-AMS生物检测仪[22],需4~18小时即可给出准确的生物报告,但其仪器价格高昂.FCM流式细胞仪[6]能够检测未经培养的低浓度微生物样本,单次用时3~5分钟.广为使用的人工微生物镜检方法[23],准确率高,但其流程复杂,费时费力,人工检测无法保证稳定性,难以避免主观因素.本文方法在准确性上与领域内其他方法相近,在检测速度上优于大部分方法,其主要优势在于利用嵌入式平台与全息显微技术,摆脱了大型仪器与实验室环境的束缚,能够做到即采集即检测,为科研工作与工业现场节约微生物检测成本.

5 结 论

本文利用卷积神经网络,设计了一种嵌入式微生物数字全息显微图像分类系统.利用精简的GoogLeNet-Lite网络模型,对全息化的Whoi微生物数据集进行训练,取得了95.06%准确率的分类效果,并利用Tengine框架在嵌入式开发板上部署算法,实测分类准确率94.15%,每帧耗时78.8毫秒(12.7fps).

相对于传统方法,本系统利用嵌入式平台提高了微生物分类系统的便携性,解决系统体积问题,无需对数字全息图像重构计算,直接采用原始数字全息图像进行分类,节约计算资源,利用卷积神经网络实现自动化图像分类,提高识别效率与准确率,并且具有更好的鲁棒性.此外,传统方法需要实验室环境,需要大型仪器分析,需要人工干预等问题,本系统能够在工业现场快速地进行微生物检测,更高效地完成同样的工作,减少了时间与资源成本.而嵌入式系统低成本的特点,有利于产品大规模量产,为微生物检测仪器的普及提供了可能.

猜你喜欢
全息嵌入式准确率
基于IMX6ULL的嵌入式根文件系统构建
全息? 全息投影? 傻傻分不清楚
全息“魔镜”在身边
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
基于ARM嵌入式的关于图像处理的交通信号灯识别
TS系列红外传感器在嵌入式控制系统中的应用