基于深度学习VGG网络模型的海洋单细胞藻类识别算法

王羽徵1,程远2,毕海3,于秋玉1,刘丹1*

(1.大连海洋大学 信息工程学院, 辽宁 大连 116023; 2.近海(大连)生态发展有限公司,辽宁 大连 116085; 3.智慧视通大连研究院,辽宁 大连 116085)

摘要:为更好地对海洋中单细胞藻类进行有效识别,本研究提出了基于改进式VGG16网络模型的单细胞藻类识别算法—AlgaeNet,在传统VGG网络模型基础上,通过减少卷积核数量,并添加BatchNormalization层进行神经网络模型加速。结果表明:在相同试验条件下,本研究中提出的AlgaeNet算法在训练过程中的损失值收敛速度及对测试集样本(卵形小球藻Chlorella ovalis与小等刺硅鞭藻Dictyocha fibula Ehrenberg)的预测准确率上升速度较传统VGG、AlexNet网络模型优势明显,识别准确率可达99.317%。研究表明,基于改进式VGG16网络模型的单细胞藻类识别算法AlgaeNet在单细胞藻类识别领域具有较好的分类识别性能,可实现海洋中藻类的准确识别。

关键词: 卵形小球藻; 小等刺硅鞭藻;VGG;深度学习;识别

单细胞藻类是自然界初级生产者中的重要组成部分,可通过光合作用合成高于其他高等植物7倍的含碳有机物,是动物的重要食物来源之一,在海洋生态系统中具有重要作用[1]。当水体遭受污染如水体富氧化时,会促使某些种藻类迅速繁殖,导致赤潮和水华发生,此时水体中某种藻类含量暴增,在产生大量有害物质的同时消耗大量水体资源,破坏水体平衡,严重时可导致其他水生生物死亡,最终使整个水体生态圈崩溃[2]。因此,水体中藻类的分布是衡量水体环境的重要指标之一,对海洋单细胞藻类的研究具有重要意义。

目前,国内外学者在藻类图像分类研究方面已取得了重大进展。藻类图像分类技术主要有光学检测技术、生物学检测技术、分子检测技术及流式细胞分析检测技术[3]。国外相关研究中,Gorsky等[4]通过浮游动植物的基本形状特征进行了多种单细胞浮游动植物的识别;Sosik等[5]采用流式细胞仪对单细胞藻类进行图像采样,并引入支持向量机建立了藻类识别分类系统,实现了单细胞藻类的分类识别;欧共体研究项目DICANN (Dinoflagellate Categorisation by Artificial Neural Network)实现了对4个甲藻门Dinoflagellata中的腰鞭毛目内23种腰鞭毛虫的数字显微图像自动识别,并取得了与传统人工专家鉴定结果非常接近的成果,准确率达84%[6];Pant等[7]通过引入线性支持向量机技术,建立了藻类识别系统,实现了对杜氏藻Dunaliella和螺旋藻Spirulina的准确识别,准确率分别达到96%和98%以上。国内学者对单细胞藻类的识别也进行了深入研究,姚志红等[8]提出使用改进式遗传算法对藻类进行识别分类,实现了对月牙藻属Selenastrum、小环藻属Cyclotella等10种单细胞藻类的识别与分类;骆巧琦等[9]引入BP神经网络,实现了对中国11种沿海常见硅藻的有效识别;邓杰航等[10]提出了针对复杂背景的单细胞藻类显微图像识别,解决了电镜下图像背景复杂导致难以识别的问题;谢杰镇等[11]利用图像处理技术对海洋原甲藻Prorocentrum micans Ehrenberg、红色裸甲藻Gymnodinium aeruginosum Stein等赤潮藻进行识别,平均识别率达94.37%,可用于对海洋赤潮灾害的预测。综上,传统的单细胞藻类分类识别方法,多需要人为对藻类细胞显微图像进行识别统计,这种识别统计方式在样本数量过大时其适用性常会受到限制,识别效果及准确率一般。而随着深度学习尤其是卷积神经网络模型(Convolutional neural networks,CNN)的引入,在一定程度上解决了传统人工对藻类识别统计方法中识别效率及准确率低下的问题,在单细胞藻类统计识别中有较大的优势。

本研究中,为进一步提升单细胞藻类的识别效率,以相似性较高的卵形小球藻Chlorella ovalis与小等刺硅鞭藻Dictyocha fibula Ehrenberg为样本,引入基于改进式VGG网络模型的单细胞藻类识别算法AlgaeNet,在传统VGG16网络模型基础上优化结构,减小卷积核数量,添加BatchNormalization层,实现了在较低性能计算机上快速完成卵形小球藻与小等刺硅鞭藻显微图像的特征自学习与训练,构建单细胞藻类分类器,对海洋单细胞藻类进行识别与统计,旨在提高藻类识别的速度与精度。

1 算法改进

1.1 VGG16网络模型

VGG16网络模型是卷积神经网络模型[12]中分类性能较为优秀的VGG网络模型的一种。VGG网络模型最大的特点是通过大量3×3卷积核的组合与堆叠,提取出感受野中更多更细小的特征。3×3卷积核是可以感受到上下、左右、中心的最小感受野,且2个3×3 卷积核叠加所获得的感受野等于1个5×5的卷积核,3个叠加后的感受野等同于1个7×7的卷积核。大量使用3×3卷积核后可以在获得相同感受野的前提下加深神经网络模型层数。连续的小卷积核比单个大卷积核具有更加良好的非线性。从图1可见,VGG16卷积神经网络模型具有16个权重层,包括13个卷积层和3个全连接层[13]。输入1幅224×224×3的图像,在卷积层采用3×3滤波器,每2个或者3个滤波器连续堆叠组成卷积序列,模仿出更大的感受野效果,滑动步长为1,并利用边界填充保持前后数据维数不变。在池化层采用2×2池化窗口,步长为2,用于减小卷积后的特征图像尺寸及确保模型的平移不变性;全连接层由3个连续的全连接进行组合,通道数分别为4 096、4 096、1 000个;最后由具有1 000个标签的SoftMax分类器进行分类输出[14]

图1 VGG16网络模型结构
Fig.1 VGG16 network structure

1.2 基于改进式VGG16网络模型的单细胞藻类识别算法——AlgaeNet

由于藻类细胞显微图像目标微小,为提取足够多的样本特征,本研究中基于VGG16网络模型结构,结合单细胞藻类目标微小的特点,构建出对两种单细胞藻类显微图像的识别算法AlgaeNet。该算法相较于基础VGG16网络模型,减少卷积核数量,可保证低性能计算机稳定快速运行。同时引入Ioffe等[15]提出的BatchNormalization来加速神经网络模型的训练。BatchNormalization是通过一定的规范化手段,把每层神经网络模型任意神经元输入值的分布归一化到平均值为0、方差为1的标准正态分布,使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的微小变化就会导致损失函数较大的变化,可以使梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

添加BatchNormalization的优点如下:

1) 加快训练速度,可以使用较大的学习率来训练网络模型。

2) 提高网络模型的泛化能力。

3) BN层本质上是一个归一化网络层,可以替代局部响应归一化层。

4) 打乱样本训练顺序[15]

本研究中使用的AlgaeNet神经网络模型结构见图2,输入输出信息及操作参数如表1所示。

图2 AlgaeNet神经网络模型结构
Fig.2 Diagram of AlgaeNet neural network structure

表1 AlgaeNet操作参数及特征图信息
Tab.1 AlgaeNet operating parameter and feature size

输入图尺寸(宽×高×通道数)input feature size(w×h×c)操作operating操作参数operating parameter输出图尺寸(宽×高×通道数)output feature size(w×h×c)40×40×3Conv2DKernel_Size=3×340×40×6440×40×64Conv2DKernel_Size=3×340×40×6440×40×64Pool2DKernel_Size=2×220×20×6420×20×64BatchNorm2DNum_Features=6420×20×6420×20×64Conv2DKernel_Size=3×320×20×12820×20×128Conv2DKernel_Size=3×320×20×12820×20×128Pool2DKernel_Size=2×211×11×12811×11×128BatchNorm2DNum_Features=12811×11×12811×11×128Conv2DKernel_Size=3×311×11×12811×11×128Conv2DKernel_Size=3×311×11×12811×11×128Conv2DKernel_Size=1×113×13×12813×13×128Pool2DKernel_Size=2×27×7×1287×7×128BatchNorm2DNum_Features=1287×7×1287×7×128Conv2DKernel_Size=3×37×7×2567×7×256Conv2DKernel_Size=3×37×7×2567×7×256Conv2DKernel_Size=1×19×9×2569×9×256Pool2DKernel_Size=2×25×5×2565×5×256BatchNorm2DNum_Features=2565×5×2565×5×256Conv2DKernel_Size=3×35×5×5125×5×512Conv2DKernel_Size=3×35×5×5125×5×512Conv2DKernel_Size=1×17×7×5127×7×512Pool2DKernel_Size=2×24×4×5124×4×512BatchNorm2DNum_Features=5124×4×5128 196(c)Linearnone1 024(c)1 024(c)Linearnone1 024(c)1 024(c)Linearnone3(c)

本研究中完成单细胞藻类识别算法网络模型结构的搭建后引入Adam优化器,这是一种自适应学习率优化算法,是一种对随机目标函数执行一阶梯度优化的算法[16]。Adam算法与传统梯度下降优化器的区别在于,它能够为每一个参数设计独立的自适应性学习率,通过对梯度的一阶矩估计和二阶矩平均值计算改变学习率[17]。同时使用Cross-entropy-loss函数作为Loss函数计算算法损失数值。

藻类识别模型的框架(图3)主要流程如下:

图3 藻类识别算法结构示意图
Fig.3 Schematic diagram of alga recognition algorithm structure

1) 输入藻类图像样本。随机在藻类显微图像样本库中取出两种藻类图片,作为训练样本集进行输入。

2) 预处理。将藻类显微样本图像进行边缘检测后,依据边缘位置进行裁切并填充白色像素,获得相同分辨率的单个藻类细胞图像。

3) 构建藻类细胞识别模型。基于VGG16网络模型模型,使用BN层进行加速,并优化卷积核,提高低性能计算机上的运行效率。

4) 模型训练。设定批处理量、迭代次数、学习率等参数,使用训练集中的数据进行模型训练。

5) 模型测试。从藻类细胞样本测试集中抽取藻类细胞图片进行模型测试,以验证模型的精度。

2 验证试验

2.1 材料与方法

2.1.1 材料 本研究中使用的藻类细胞图像为使用Leica DM4 B数字显微镜对卵形小球藻与小等刺硅鞭藻藻液样本拍摄的全彩色数字照片(图4)。

图4 卵形小球藻和小等刺硅鞭藻显微图像
Fig.4 Microscopic image of green alga Chlorella ovalis and diatom Dictyocha fibula

2.1.2 方法

1)藻类细胞数据集的准备。基于改进式VGG网络模型的单细胞藻类识别算法AlgaeNet的目标是对单细胞藻类进行准确识别,为了提取到更多的藻类细胞特征,采用以单个细胞图像为训练数据对AlgaeNet进行训练。

2)藻类标本的显微图像处理。将藻液制作成标本之后通过LeicaDM4 B显微镜后获得标本的全彩数字图片,如果直接使用彩色图像进行图像处理工作,计算机将分别对红、绿、蓝3通道进行计算,计算量大且影响运行效率。为了尽可能地减少运算量,提高运行效率,本算法使用灰度图进行图像处理,处理后使用彩色图像覆盖,图像处理流程如图5所示。

图5 图像处理流程示意图
Fig.5 Image processing method diagram

3)藻类样本数据集的制作。为了实现AlgaeNet的训练与测试,需将处理后的单个藻类细胞图像划分为训练集与测试集。首先生成数据集文件目录,将所有图像样本按比例分别放入训练集与测试集文件夹内,再采用dataset.ImageFolder函数制作符合神经网络模型格式的数据集。ImageFloder函数会通过文件目录自动将子目录中的图片生成数据集,标签值为自然数排列。在本系统中卵形小球藻默认标签值为0,小等刺硅鞭藻默认标签值为1。

2.2 结果与分析

2.2.1 藻类细胞图像的处理结果 本研究中针对海洋单细胞藻类识别提出了全新的解决方案,不同于其他研究所使用的高倍率单一细胞特写图像[7,9-10],所使用的显微图像具有单张图像目标数量多的特点。但由于单个目标像素值较低,神经网络模型所能提取到的特征较少,对模型的训练有较高要求。为此,使用OpenCV来进行显微图像的处理,显微镜拍摄到的显微图像通过cv2.imread以BGR的通道顺序读入程序中,然后采用灰度心理学模型转换算法将输入图像转化为灰度图。

本研究中以卵形小球藻为例,通过电子显微镜采集到的卵形小球藻图像见图6(a),将输入显微图像转换为灰度图后的结果见图6(b)。在对原显微图像做灰度转换后通过cv2.threshold函数对灰度图进行二值化处理以突出所有藻类细胞。通过试验得出在阈值设定为200时效果较为良好,经二值化操作后的结果见图6(c)。由于藻类细胞在显微镜的光线照射下,中心亮度会明显高于外部。经二值化操作后图像在细胞中心会形成孔洞结构,影响图像分割效果,故在二值化操作后使用cv2.floodfill函数添加膨胀操作来解决孔洞问题,孔洞填充后的图像见图6(d)。经过上述处理后,使用cv2.findContours对经孔洞填充的二值化图像进行边界检测。为展示边缘检测效果,在原始显微图像上使用红线标出细胞边缘见图6(e)。边界检测完成后,利用获取到的边界参数在原始显微图像上进行切割操作,并将切割后的图像统一粘贴至相同大小的纯白背景上,最后得到的藻类细胞图像见图6(f)。经过图像处理,共收集到卵形小球藻细胞图像4 889张,小等刺硅鞭藻细胞图像6 110张。

(a)原始图像 (b)灰度化后图像 (c)二值化后的图像 (d)孔洞填充后图像 (e)边缘检测结果 (f)独立细胞图像
original image grayscaled image binarized image hole filling image edge detection results single cell image
图6 卵形小球藻图像处理示意图
Fig.6 Image processing diagram of Chlorella ovalis

2.2.2 AlgaeNet单细胞藻类识别算法的训练集验证结果 本研究中使用Google Colab云计算平台来对AlgaeNet单细胞藻类识别算法进行验证试验,使用Tesla P4进行GPU硬件加速。在软件环境配置下,使用Pytorch 1.5.0及Cuda 10.1作为训练环境。从藻类细胞图像库中选取80%图像样本作为训练集,即卵形小球藻3 912幅,小等刺硅鞭藻4 889幅,共计8 801幅图像。选取20%图像样本作为测试集,即卵形小球藻977幅,小等刺硅鞭藻1 221幅,用以开展相关模型的训练与测试试验。

选择VGG11、VGG13、VGG16、VGG19、AlexNet网络模型及基于改进式VGG网络模型的单细胞藻类识别算法AlgaeNet进行对比试验。VGG网络模型、AlexNet均采用标准的网络模型结构,AlexNet的结构为5个卷积层与3个全连接层;VGG网络模型中,VGG11为8个卷积层、3个全连接层,VGG13为10个卷积层、3个全连接层,VGG16为13个卷积层、3个全连接层,VGG19为16个卷积层、3个全连接层。设定输入样本分辨率为40×40,批处理量设置为128张样本为1个Batch,学习率设置为0.000 1。在训练过程中,每次迭代均提取一次训练损失数值与测试集预测准确率。训练过程中损失下降曲线与训练集预测准确率曲线如图7、图8所示。训练完成后,分别使用测试集对每种模型的识别准确率进行测试(表2)。

表2 不同网络模型对测试集的预测
Tab.2 Prediction results of different network on the test set

网络模型network 卵形小球藻Chlorella ovalis小等刺硅鞭藻Dictyocha fibula正确 correct错误 wrong准确率accuracy/%正确 correct错误 wrong准确率accuracy/%总体准确率/%total accuracyAlexNet9502797.2361 1873497.21597.225VGG119581998.0551 1843796.96997.452VVGG139383996.0081 1962597.95297.088VGG169344395.5981 1804196.64296.178VGG199492897.1341 1883397.29797.225AlgaeNet970799.2831 213899.34499.317

对自建数据集进行10个epoch训练后,参与对比的5个神经网络模型在对测试集的预测上均达到了较高的准确率。

从图7可见,随着迭代次数的增加,不同网络模型的损失数据都在降低,其中VGG11、VGG13、VGG16、VGG19、AlexNet均在损失数值为0.7时开始保持稳定,随后经过约40次迭代,VGG11与AlexNet网络模型的损失数值开始下降,并在约第150次迭代后获得相对较好的结果,而VGG13与VGG16网络模型的训练效果不理想,分别经过约300、350个批次的训练后,损失数据降至可接受范围,采用改进式VGG网络模型的损失数据下降速度远高于其他网络模型,在50次迭代以内损失数值已获得较好结果。从图8可见,在训练过程中,随着迭代次数的增加,基于改进式VGG网络模型的单细胞藻类识别算法AlgaeNet对样本集预测准确率的提升速度远高于其他网络模型。结合表2可见,与其他模型相比,AlgaeNet性能更高,与其他文献中所采用的BP神经网络、支持向量机[7-9]等方式相比,本研究中所采用的AlgaeNet具有更高的识别精度,更适应于对单细胞藻类显微图像的识别。

图7 不同网络模型训练过程中损失下降曲线
Fig.7 Loss decline curve during different network training

图8 不同网络模型训练过程中准确率曲线
Fig.8 Accuracy curve during different network training

3 结论

1)本研究在当前对藻类识别方法的基础上,提出了基于改进式VGG16的单细胞藻类识别算法AlgaeNet,在原始VGG16网络模型基础上,减小了卷积核的数量以保证主流性能计算机的流畅运行。

2)引入BatchNormalization进行神经网络模型加速,可提升藻类细胞分类模型的训练速度。

3)以自建藻类细胞图像数据库为样本,通过两种藻类各约4 000张样本进行训练后,AlgaeNet算法可以准确识别小等刺硅鞭藻和卵形小球藻,准确率达99.317%,性能较AlexNet及其他标准VGG模型更优异,该算法具有较好的训练速度及识别准确度,可实现显微条件下单细胞藻类自动化精准识别。

参考文献:

[1] THOMAS M K,KREMER C T,KLAUSMEIER C A,et al.A global pattern of thermal adaptation in marine phytoplankton[J].Science,2012,338(6110):1085-1088.

[2] 周名江,朱明远,张经.中国赤潮的发生趋势和研究进展[J].生命科学,2001,13(2):54-59,53.

[3] 孟溪.藻类鉴定及分类方法研究进展[J].生物化工,2019,5(2):102-104.

[4] GORSKY G,OHMAN M D,PICHERAL M,et al.Digital zooplankton image analysis using the ZooScan integrated system[J].Journal of Plankton Research,2010,32(3):285-303.

[5] SOSIK H M,OLSON R J.Automated taxonomic classification of phytoplankton sampled with imaging-in-flow cytometry[J].Limnology and Oceanography:Methods,2007,5(6):204-216.

[6] CULVERHOUSE P F,WILLIAMS R,REGUERA B,et al.Expert and machine discrimination of marine flora:a comparison of recognition accuracy of field-collected phytoplankton[C]//Proceedings of 2003 International Conference on Visual Information Engineering.Guildford:IEEE,2003:177-181.

[7] PANT G,YADAV D P,MISHRA A,et al.Automated algal classification using linear support vector machines[J].International Journal of Computer & Mathematical Sciences,2018,7(4):288-293.

[8] 姚志红,费敏锐,孔海南,等.基于改进遗传算法的藻类神经网络识别[J].上海交通大学学报,2007,41(11):1801-1805.

[9] 骆巧琦,李雪松,梁君荣,等.基于形状特征的硅藻显微图像自动识别[J].厦门大学学报(自然科学版),2011,50(4):690-696.

[10] 邓杰航,王晓宇,赵建,等.复杂背景下高分辨率电镜的小环藻识别[J].计算机工程与设计,2019,40(1):167-172.

[11] 谢杰镇,骆庭伟,戴君伟,等.赤潮藻类流式图像自动分析算法的研究[J].计算机科学,2013,40(7):293-296.

[12] 洪奇峰,施伟斌,吴迪,等.深度卷积神经网络模型发展综述[J].软件导刊,2020,19(4):84-88.

[13] SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale image recognition[C]//Proceedings of the 3rd International Conference on Learning Representations.San Diego,2015.

[14] 张建华,孔繁涛,吴建寨,等.基于改进VGG卷积神经网络的棉花病害识别模型[J].中国农业大学学报,2018,23(11):161-171.

[15] IOFFE S,SZEGEDY C.Batch normalization:accelerating deep network training by reducing internal covariate shift[C].Proceedings of the 32nd international confereace on machine learning,PMLR,2015.

[16] 杨观赐,杨静,李少波,等.基于Dopout与ADAM优化器的改进CNN算法[J].华中科技大学学报(自然科学版),2018,46(7):122-127.

[17] 常子汉.基于小波变换与Adam优化的LSTM电价预测研究[D].兰州:兰州大学,2019.

Recognition algorithm of marine single-cell algae based on deep learning VGG network

WANG Yuzheng1, CHENG Yuan2, BI Hai3, YU Qiuyu1, LIU Dan1*

(1.Coloege of Information Engineering, Dalian Ocean University, Dalian 116023, China; 2.Offshore (Dalian) Ecological Development Company Limited, Dalian 116085, China; 3.Smart Vision Dalian Research Institute, Dalian 116085, China)

Abstract In order to better identify marine single-celled algae, a single-cell alga recognition algorithm is developed based on improved VGG16 network—AlgaeNet. This algorithm is derived from the traditional VGG network, reducing the number of convolution kernels, and adding BatchNormalization layer to accelerate the neural network. The convergence rate of the loss value during the training process and the increase rate of the prediction accuracy of the test set samples (Chlorella ovalis and Dictyocha fibula Ehrenberg) are found to be better under the same experimental conditions, compared with the traditional VGG network and the AlexNet network, with prediction accuracy of 99.317%. Experimental results showed that the algorithm had better classification and recognition performance in the field of single-celled alga recognition, with accurate recognition of marine single-celled algae.

Key words Chlorella ovalis; Dictyocha fibula Ehrenberg; VGG; deep learning; recognition

DOI10.16535/j.cnki.dlhyxb.2020-161

文章编号:2095-1388(2021)02-0334-06

中图分类号TP 391.41; S 931.1

文献标志码:A

收稿日期 2020-06-24

基金项目 辽宁省自然科学基金(20180550573);辽宁省博士科研启动基金(2019-BS-031);辽宁省教育厅科研项目(JL201918)

作者简介 王羽徵(1996—), 男, 硕士研究生。E-mail:andrew25wang@163.com

通信作者 刘丹(1978—), 女, 博士, 副教授。E-mail:liudan@dlou.edu.cn