王羽徵,程远,毕海,于秋玉,刘丹*
(1.大连海洋大学 信息工程学院, 辽宁 大连 116023; 2.近海(大连)生态发展有限公司,辽宁 大连 116085; 3.智慧视通大连研究院,辽宁 大连 116085)
单细胞藻类是自然界初级生产者中的重要组成部分,可通过光合作用合成高于其他高等植物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]利用图像处理技术对海洋原甲藻ProrocentrummicansEhrenberg、红色裸甲藻GymnodiniumaeruginosumStein等赤潮藻进行识别,平均识别率达94.37%,可用于对海洋赤潮灾害的预测。综上,传统的单细胞藻类分类识别方法,多需要人为对藻类细胞显微图像进行识别统计,这种识别统计方式在样本数量过大时其适用性常会受到限制,识别效果及准确率一般。而随着深度学习尤其是卷积神经网络模型(Convolutional neural networks,CNN)的引入,在一定程度上解决了传统人工对藻类识别统计方法中识别效率及准确率低下的问题,在单细胞藻类统计识别中有较大的优势。
本研究中,为进一步提升单细胞藻类的识别效率,以相似性较高的卵形小球藻Chlorellaovalis与小等刺硅鞭藻DictyochafibulaEhrenberg为样本,引入基于改进式VGG网络模型的单细胞藻类识别算法AlgaeNet,在传统VGG16网络模型基础上优化结构,减小卷积核数量,添加BatchNormalization层,实现了在较低性能计算机上快速完成卵形小球藻与小等刺硅鞭藻显微图像的特征自学习与训练,构建单细胞藻类分类器,对海洋单细胞藻类进行识别与统计,旨在提高藻类识别的速度与精度。
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
由于藻类细胞显微图像目标微小,为提取足够多的样本特征,本研究中基于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
本研究中完成单细胞藻类识别算法网络模型结构的搭建后引入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.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.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
对自建数据集进行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
1)本研究在当前对藻类识别方法的基础上,提出了基于改进式VGG16的单细胞藻类识别算法AlgaeNet,在原始VGG16网络模型基础上,减小了卷积核的数量以保证主流性能计算机的流畅运行。
2)引入BatchNormalization进行神经网络模型加速,可提升藻类细胞分类模型的训练速度。
3)以自建藻类细胞图像数据库为样本,通过两种藻类各约4 000张样本进行训练后,AlgaeNet算法可以准确识别小等刺硅鞭藻和卵形小球藻,准确率达99.317%,性能较AlexNet及其他标准VGG模型更优异,该算法具有较好的训练速度及识别准确度,可实现显微条件下单细胞藻类自动化精准识别。