微藻是一类可以通过光合作用自养的低等水生微生物[1]。微藻的个体较小,一般只有几微米至几十微米,通常需要借助显微镜才能清晰地看到其形态[2]。微藻种类繁多,主要有裸藻门、绿藻门、硅藻门、蓝藻门、甲藻门、黄藻门、金藻门和隐藻门8类[3]。在水产养殖、水质生态监测、食品加工、生物燃料和环境保护等方面,微藻都发挥着十分重要的作用。因此,对微藻进行实时、快速、准确的智能化检测具有重要意义。
对于微藻的检测,传统的方法主要依靠物理方法,如高光谱分析[4]、偏振光散射[5],以及分子生物学和形态学方法。在光学显微镜下,可以通过人工观察微藻的形态、结构和颜色等特征来识别其种类[6]。这些方法一般都需要借助复杂的设备及大量的人工操作,耗时长,而且检测结果容易受到检测人员自身专业水平的影响。为了解决传统人工鉴定微藻方法中的问题,相关研究人员用边缘检测算法[7]、支持向量机[8]、多层感知机[9]和人工神经网络[10]等传统机器学习方法对微藻进行分类,其中用人工神经网络对微藻进行分类取得了较高的识别率,达到了95% [11]。但这些方法都需要前期人工参与特征选择与提取,工作量较大。
近年来,得益于人工智能、计算机视觉等领域的技术不断发展,部分专家学者开始将基于卷积神经网络的目标检测模型应用于微藻的识别检测中。不同于传统机器学习方法,卷积神经网络不需要人为手动地提取特征,可以通过训练模型自主学习图像的关键特征,并对图像进行识别分类。程钊等[12]基于简单卷积神经网络模型(PlainCNN)提出了多任务卷积神经网络模型PlainCNN-MT,并将混合藻类种类识别的平均准确率提高至95%,但该方法需要先获取混合藻的离散三维数据荧光光谱图。崔雪森等[13]提出了基于AlexNet模型的微藻种类识别方法,对7个藻种进行训练并测试,平均精度均值达到97.86%±1.63%,但该模型能够识别的藻种数量不多,仅有7种;杨寿勇等[14]将Inception v3模型引入微藻种类识别中,通过对25种典型微藻进行迁移学习和参数优化,识别准确率达到了94.19%,但该模型需要手动输入微藻形貌特征信息,过程繁琐;王羽徵等[15]提出了基于改进式VGG16模型的单细胞藻类识别模型AlgaeNet,对卵形小球藻与小等刺硅鞭藻的识别准确率可达99.317%,但该模型仅能识别两种微藻,且为单细胞微藻显微图像。以上3种模型均需预先对微藻显微图像进行分割,获取只包含单一藻种的显微图像,然后再进行图像分类,无法满足实际的微藻检测应用场景,一张微藻显微图像中往往有多个藻种的检测需求。Qian等[16]提出基于Faster-RCNN的藻类检测方法,在一个包含27种藻类的数据集上进行试验,平均检测精度均值为74.64%;王晓阳[17]提出基于迁移学习的YOLO v3模型,对8个藻种进行分类,平均检测精度均值为88.22%。上述两种方法虽能满足一张微藻显微图像中包含多个藻种的检测需求,但检测精度无法满足实际的检测需求,还有待进一步提升。
目前,基于卷积神经网络的微藻检测方法,存在如下问题:大多数检测精度高的方法,模型计算复杂度高,检测速度慢;而模型计算复杂度低,检测速度快的方法,检测精度却又不高。对于平衡好检测速度、检测精度和模型计算复杂度的微藻检测方法,当前的研究还不多。为了解决此问题,本研究中结合微藻显微图像特征,采用 K-means++算法聚类锚框,并基于YOLO v7模型,提出一种轻量级实时高效的微藻检测方法YOLO v7-MA。该方法将YOLO v7的主干特征提取网络替换为轻量级的网络GhostNet,大幅降低模型的参数量和计算量,将特征融合网络中的普通卷积替换为参数量更少的深度可分离卷积(depthwise separable convolution,DSC),进一步降低模型的计算复杂度,并引入CBAM注意力模块来加强网络的特征表达能力,降低因模型参数量减少而造成检测精度下降的影响,最后将本文提出的模型在包含14种微藻的数据集上进行试验,并与其他常用模型进行检测性能的对比,以期为微藻的识别分类提供一种实时高效的检测方法。
目前,在FPS为5~160范围内,YOLO v7模型[18]的速度和精度都超过了所有已知的目标检测模型。YOLO v7模型由3部分组成,即输入部分(input)、主干特征提取网络部分(backbone)和检测头部分(head)。输入部分将输入到模型的图片大小统一转换为640×640×3。主干特征提取网络在YOLO v5的基础上,引入了ELAN结构和MP结构。其中,ELAN结构由不同的卷积块堆叠而成,不改变输入特征层的宽高,通过扩展、随机组合和拼接来加强各个特征层之间的交互,提高模型的学习能力;MP结构由3×3大小的卷积块和Maxpool双路径组成,对输入的特征层进行宽高压缩,以增强网络的特征融合能力。检测头部分由SPPCSPC模块、引入了ELAN结构的PAN模块及RepConv模块组成。其中,SPPCSPC模块在SPP模块基础上,借鉴CSPLayer的思想,增加了一条“残差边”,并与经Maxpool操作后输出的特征层进行堆叠;RepConv模块[19]是一种重参数化卷积架构,在模型训练时,为3×3卷积层添加平行的1×1卷积分支,在模型部署时,将分支的参数重参数化到主分支上,取3×3主分支卷积输出,通过增加训练成本来提升模型的推理速度。
为了实现模型在有较高检测精度和检测速度的同时,模型参数尽可能少的目的,本研究中将YOLO v7的主干特征提取网络替换为GhostNet网络。GhostNet网络[20]是华为诺亚方舟实验室2020年提出的一种轻量级检测网络。该网络是由GhostModule组成的瓶颈结构块Ghost Bottleneck堆叠而成,GhostModule结构如图1所示。
图1 GhostModule网络结构
Fig.1 GhostModule network structure
普通的卷积操作,参数量NUMparameters和计算量FLOPs表达式分别为
NUMparameters=ksize×ksize×cin×cout,
(1)
FLOPs=cout×hout×wout×cin×ksize×ksize。
(2)
其中: ksize为卷积核的大小;cin和cout分别为输入通道数和输出通道数;hout和wout分别为输出特征图的高和宽。
GhostMoudle网络的参数量G_NUMparameters和计算量G_FLOPs表达式分别为
(3)
wout×ksize×ksize。
(4)
通过比较式(1)~(4)可知,GhostMoudle网络的计算量和参数量均是普通卷积操作的1/(2ksize×ksize)+1/(2cin)倍。Ghost Bottleneck根据卷积核步长stride(s)大小的不同,分为两类,当需要对输入进来的特征层宽和高进行压缩时,s=2,此时在两个GhostModule中间添加一个步长为2的分组卷积层,同时残差边添加一个步长为2的分组卷积和一个1×1的普通卷积,其结构如图2所示。
图2 Ghost Bottleneck网络结构
Fig.2 Ghost Bottleneck network structure
深度可分离卷积[21]由逐通道卷积(depthwise convolution)和逐点卷积(pointwise convolution)两部分组成。逐通道卷积对输入特征图分组卷积,分组数量为输入通道数,即保持输入通道数和输出通道数一致;逐点卷积通过1×1的普通卷积改变输入通道数。为了进一步降低模型的参数量和计算复杂度,将YOLO v7特征融合网络中的普通卷积块均替换为深度可分离卷积块。
由于主干特征提取网络和特征融合网络的参数量、计算量大幅降低,模型的检测精度也会随之下降。为了保持轻量化网络结构的同时,模型的精度也能得到较好的保证,将CBAM注意力模块引入特征融合网络中。CBAM[22]是一种结合了空间注意力模块(spatial attention module)和通道注意力模块(channel attention module)的卷积块注意力模块,通过学习可以自动获取每个特征空间和特征通道的重要程度,并根据重要程度分配不同的权重来加强重要特征的提取,抑制其他无关的信息。其模型结构如图3所示。
图3 CBAM模型结构
Fig.3 CBAM model structure
通道注意力模块通过平均池化和最大池化压缩输入特征图的空间维度,其表达为
Mc(F)=σ{MLP[AvgPool(F)]+
MLP[MaxPool(F)]}。
(5)
其中: F为输入特征图;AvgPool代表平均池化操作;MaxPool代表最大池化操作;MLP代表多层感知机(全连接层);σ为Sigmoid激活函数。
空间注意力模块通过平均池化和最大池化压缩输入特征图的通道,其表达为
Ms(F)=σ{f7×7[AvgPool(F); MaxPool(F)]}。
(6)
CBAM注意力模块最终输出的特征图表达为
M(F)=[F×Mc(F)]×Ms[F×Mc(F)]。
(7)
其中: f7×7代表卷积核大小为7×7的卷积操作。
在主干特征提取网络更换为GhostNet网络,以及特征融合网络中引入深度可分离卷积和CBAM注意力模块后,基于改进YOLO v7的微藻轻量级实时检测方法YOLO v7-MA模型结构如图4所示。
图4 YOLO v7-MA模型结构
Fig.4 YOLO v7-MA model structure
试验所使用的数据集来自东北大学提供的环境微生物数据集EMDS-7[23]。EMDS-7数据集一共包含2 365张微生物显微图像,41个微生物类别。所有显微图像均是在光学显微镜下放大400倍拍摄获取。由于本文中主要研究的是微藻,故在原始数据集的基础上进行进一步的筛选,选出其中14种共计1 512张微藻显微图像组成微藻数据集,按照 7∶1∶2的比例划分训练集、验证集和测试集。微藻数据集的具体信息如表1所示,14种微藻显微图像如图5所示。
图5 14种微藻显微图像
Fig.5 Microscopic images of 14 species of microalgae
表1 微藻数据集信息
Tab.1 Information on microalgae dataset
微藻种类 species所属门 phylum标签 label数量/张 quantity 纤维藻(Ankistrodesmus)绿藻门Ank64小球藻(Chlorella)绿藻门Chl80腔球藻(Coelosphaerium)蓝藻门Coe77裸藻(Euglena)裸藻门Eug81多芒藻(Golenkinia)绿藻门Gol60异极藻(Gomphonema)硅藻门Gon87束球藻(Gomphosphaeria)蓝藻门Gos58微囊藻(Microcystis)蓝藻门Mic307舟形藻(Navicula)硅藻门Nav75盘星藻(Pediastrum)绿藻门Ped95席藻(Phormidium)蓝藻门Pho276栅藻(Scenedesmus)绿藻门Sce86螺旋藻(Spirogyra)蓝藻门Spi89针杆藻(Synedra)硅藻门Syn77
使用labelImg标注工具对数据集进行标注,每一类微藻标注的标签见表1。在标注过程中,对显微图像中无法得知的微生物及一些杂质统一标注为unknown。需要说明的是,由于本文中主要研究的是微藻的检测,unknown尽管作为标签之一,但是在后续试验中计算平均精度均值时不考虑unknown类。最后,获得的标签文件为PASCAL VOC格式的XML文件。
由于微藻数据集的数据样本量不足以让模型在训练时达到收敛状态,为了提高模型的识别准确率,采用高斯模糊、水平翻转、垂直翻转、非等比例缩放、随机平移、透视变换和随机裁切等数据增强方式随机组合,对训练集进行扩充,最后共计获得15 480张训练集样本。部分数据增强样本见图6。
图6 数据增强样本
Fig.6 Data augmentation samples
YOLO模型使用锚框作为先验框(anchor box),并与真实框(ground truth box)进行比较,调整后获得预测框(prediction box),恰当的锚框可以提高模型检测的精度。YOLO系列模型一般会预设9个默认尺寸的锚框,考虑到微藻数据集中各个目标的尺寸大小相差较大,为了获得更适合本试验数据集的锚框,使用K-means++算法生成新的锚框。K-means++算法具体流程如下:
算法 K-means++聚类锚框
输入 训练集中所有目标框的宽高集合B,聚类中心数K。
输出 K组锚框。
1)从B中随机取一个值作为初始聚类中心C1。
2)计算B中所有样本与已有聚类中心的最小IoU距离d(x),按照概率
,
(8)
选取下一个聚类中心C1。
3)重复步骤2),直到找到K个聚类中心。
4)对数据集中的每个样本xi, 计算xi到K个聚类中心的IoU距离,并将其划分为距离最小的聚类中心所对应的类别。
5)根据划分结果重新计算K个聚类中心,即
(9)
6)重复步骤4)和步骤5),直到聚类中心位置不再变化,输出最终的聚类中心。
通过K-means++聚类算法,最终生成9个适合微藻数据集的锚框,分别为(22,29)、(33,46)、(47,73)、(81,49)、(72,115)、(147,107)、(103,202)、(195,232)、(363,481)。
试验使用CIoU Loss作为模型的边界框回归损失函数。CIoU[24]在考虑重叠面积、中心点距离两个因素的基础上,还考虑了预测框和真实框宽高的纵横比。损失函数表达式为
LCIoU=1-IoU+[ρ2(Bgt, Bp)]/c2+αv。
(10)
其中: IoU为预测框与真实框的交并比;Bgt和Bp分别为真实框和预测框;ρ为真实框与预测框中心点之间的距离;c为包围真实框与预测框的最小矩形框的对角线距离;α为权衡参数;v为衡量真实框与预测框宽高的一致性。α、v的具体表达式为
α=v/(1-IoU+v),
(11)
v=4/π2[arctan(wgt/hgt)-arctan(w/h)]2。
(12)
式中: wgt和hgt分别为真实框的宽和高;w和h分别为预测框的宽和高。
在模型检测精度方面,为了客观地评价YOLO v7-MA和YOLO v7在改进前后的差异,选取准确率(precision)、召回率(recall)、F1值(F1 score)和平均精度(average precision,AP)作为评价指标;在模型检测性能方面,为了更加全面地评价FasterRCNN-VGG16、FasterRCNN-Resnet50、YOLO v4、YOLO v4-Mobilenet v3、YOLO v4-VGG16、YOLO v4-Resnet50、YOLO v5s、YOLO v7和YOLO v7-MA 8个模型的综合检测性能,选取平均精度均值(mean average precision,mAP)、模型参数量、浮点运算次数(FLOPs)和每秒传输帧数(FPS)分别作为检测精度、模型大小、计算复杂度和检测速度的评价指标。
试验所用的操作系统为Ubuntu 18.04,CPU型号为Intel(R) Core(TM) i9-10900K CPU@3.70 GHz,GPU型号为Nvidia Geforce RTX 3090,显存24 G,使用的深度学习框架为Pytorch 1.7.1,编程语言为Python 3.7.5,GPU加速库为CUDA 11.0、CUDNN 8.1。
由于YOLO v7的主干特征提取网络被更换为GhostNet网络,为了避免模型从头开始训练,在将微藻数据集放在改进后的模型上进行训练之前,需要先用ImageNet 数据集训练GhostNet网络,获得预训练权重,然后再用微藻数据集对模型进行微调(Fine-tune)。微调主要分为两步:第一步,冻结主干特征提取网络,设置批量大小batchsize为32,优化器使用Adam,初始学习率设置为0.001,使用余弦退火算法降低学习率,训练50轮;第二步,解冻主干特征提取网络,训练整个模型,此时设置batchsize为16,优化器和初始学习率不变,训练100轮。训练过程中,每训练完1轮保存1次训练集损失和验证集损失,每训练完10轮保存1次权值文件,并保留最优权值。训练过程中,训练集和验证集损失变化如图7所示,模型训练到109轮时,达到收敛状态。
图7 损失值变化曲线
Fig.7 Change curves of loss value
YOLO v7-MA与YOLO v7模型在微藻数据集上的检测结果如表2所示。从表2可见:两个模型在小球藻、腔球藻、裸藻、异极藻、舟形藻、盘星藻、栅藻和针杆藻等8个藻种上的检测效果较好,平均精度达到100%;在纤维藻和螺旋藻上的检测效果较差,其中,YOLO v7模型在两个藻种上的平均精度均低于90%,而YOLO v7-MA模型在两个藻种上的平均精度超过92%,优于YOLO v7模型;YOLO v7-MA模型仅在多芒藻和微囊藻上的检测精度略低于YOLO v7模型,这主要是因为多芒藻在形状特征上与小球藻比较相似,微囊藻在形状特征上又与束球藻比较相似,而YOLO v7-MA模型的特征提取和表达能力比YOLO v7模型提高的同时,对数据集中标注的其他藻种和未知藻种或杂质的学习能力也有提高,因而在检测时会将少数多芒藻、微囊藻检测为小球藻、束球藻和其他未知藻种或杂质。总体而言,YOLO v7-MA模型在14种微藻上的平均准确率比YOLO v7模型低0.84%,但在平均召回率和平均F1值上比YOLO v7模型分别高出1.15%、0.23%,平均精度均值也比YOLO v7模型高出0.95%。这表明,与YOLO v7模型相比较,YOLO v7-MA模型在微藻数据集上检测结果表现得更优异且稳定,能保证所有类别微藻的平均精度均值在92%以上。
表2 YOLO v7和YOLO v7-MA模型在微藻数据集上的检测结果
Tab.2 Test results of YOLO v7 and YOLO v7-MA model on microalgae dataset
微藻种类speciesYOLO v7YOLO v7-MA准确率/%precision召回率/%recallF1值/%F1 score平均精度/%AP准确率/%precision召回率/%recallF1值/%F1 score平均精度/%AP纤维藻(Ankistrodesmus)100.0084.6291.6784.62100.0092.3196.0092.31小球藻(Chlorella)100.00100.00100.00100.0096.15100.0098.04100.00腔球藻(Coelosphaerium)100.00100.00100.00100.00100.00100.00100.00100.00裸藻(Euglena)100.00100.00100.00100.00100.00100.00100.00100.00多芒藻(Golenkinia)98.3996.8397.6099.7993.8596.8395.3298.44异极藻(Gomphonema)100.00100.00100.00100.00100.00100.00100.00100.00束球藻(Gomphosphaeria)89.4785.0087.1897.6694.7490.0092.3197.83微囊藻(Microcystis)100.0098.6199.3099.99100.0099.3199.6599.69舟形藻(Navicula)100.00100.00100.00100.0094.12100.0096.97100.00盘星藻(Pediastrum)100.00100.00100.00100.00100.00100.00100.00100.00席藻(Phormidium)96.7797.8397.3098.9697.2897.2897.2899.37栅藻(Scenedesmus)100.0096.4398.18100.00100.00100.00100.00100.00螺旋藻(Spirogyra)100.0080.9589.4785.46100.0089.9594.7192.17针杆藻(Synedra)100.00100.00100.00100.0096.6790.6293.55100.00平均值 average98.9095.7397.1997.6198.0696.8897.4298.56
为了客观、准确地评估本文所提出的模型在微藻数据集上的检测精度、模型大小、计算复杂度及检测速度等方面的综合性能,与其他8种模型进行比较。
从表3可见:YOLO v7-MA模型的参数量最少,浮点运算次数大幅低于FasterRCNN-VGG16、FasterRCNN-Resnet50、YOLO v4、YOLO v4-VGG16、YOLO v5s、YOLO v7模型,略高于YOLO v4-Mobilenet v3、YOLO v4-Resnet50模型;YOLO v7-MA模型在GPU上的检测速度高于FasterRCNN-VGG16、FasterRCNN-Resnet50、YOLO v4、YOLO v4-VGG16模型,虽略低于YOLO v4-Mobilenet v3、YOLO v4-Resnet50、YOLO v5s、YOLO v7模型,但51.86的FPS依旧能满足于实时检测的要求,而且在CPU上的检测速度(FPS为5.07)是除了YOLO v4-Mobilenet v3模型之外,其余8个模型中最高的;YOLO v7-MA模型相比于其他模型,取得了98.56%的最高检测精度。
表3 不同模型检测性能的对比
Tab.3 Comparison of detection performance with different models
模型model输入图片尺寸input size参数量quantity of parameter浮点运算次数FLOPs每秒传输帧数FPS(GPU)每秒传输帧数FPS(CPU)平均精度均值/%mAPFasterRCNN-VGG163×600×600136.98×106370.26×10944.490.2290.51FasterRCNN-Resnet503×600×60028.42×106939.48×10923.430.0593.45YOLO v43×416×41664.36×10659.86×10949.181.5292.02YOLO v4-Mobilenet v33×416×41639.99×10627.60×10959.5015.4293.58YOLO v4-VGG163×416×41623.59×106111.95×10928.092.2697.43YOLO v4-Resnet503×416×41633.68×10635.43×10952.001.5695.22YOLO v5s3×640×64047.06×106114.48×10952.294.9089.07YOLO v73×640×64037.27×106105.00×10955.702.3697.61YOLO v7-MA3×640×64022.64×10638.45×10951.865.0798.56
各模型在部分测试图片上的检测结果见图8,YOLO v4、YOLO v4-Mobilenet v3、YOLO v4-VGG16、YOLO v5s模型均存在不同程度的漏检现象,FasterRCNN-VGG16、FasterRCNN-Resnet50、YOLO v4-Resnet50、YOLO v7、YOLO v7-MA模型对于微藻显微图像中不同的藻种均能有效检测出来,其中YOLO v7-MA模型检测出的目标置信度最高。
图8 不同模型在部分测试图片上的检测结果
Fig.8 Detection results of different models on some test images
为了验证各种改进策略的有效性,通过消融试验对比分析不同改进策略给模型检测效果带来的影响。从表4可见:通过K-means++算法聚类锚框后的YOLO v7,较初始模型的平均精度均值提高了0.1%;主干特征提取网络更换为GhostNet后的YOLO v7-A模型,较初始模型的参数量减少了10.55×106,FLOPs减少了63.38×109,平均精度均值下降了0.47%;在特征融合网络中将普通卷积块改为深度可分离卷积块(DBRC)的YOLO v7-B模型,较初始模型的参数量减少了4.1×106,FLOPs减少了3.17×109,平均精度均值下降了1.03%;在特征融合网络中引入CBAM注意力机制后的YOLO v7-C模型,较初始模型的平均精度均值提高了0.07%;同时更改主干特征提取网络为GhostNet、特征融合网络中普通卷积块为DBRC的YOLO v7-D模型,参数量降低至22.62×106,FLOPs降至38.44×109,平均精度均值虽有轻微下降,但在此基础上加入CBAM后的YOLO v7-MA模型,整个模型精度上升至98.56%,较初始模型提高了0.95%。上述消融试验表明,引入GhostNet和深度可分离卷积,可以大幅降低模型的参数量和计算复杂度,虽然平均精度均值会有轻微下降,但是再引入K-means++算法和CBAM注意力机制后,能够弥补精度的亏损,最终既能将模型轻量化,又保证了模型有较高的精度。
表4 不同改进策略在微藻数据集上的检测性能
Tab.4 Detection performance of different improvement strategies on microalgae dataset
模型model改进策略 improvement strategyK-means++GhostNetDBRCCBAM参数量quantity of parameter浮点运算次数FLOPs平均精度均值/%mAPYOLO v737.27×106105.00×10997.61YOLO v7√37.27×106105.00×10997.71YOLO v7-A√√26.72×10641.62×10997.14YOLO v7-B√√33.17×106101.83×10996.58YOLO v7-C√√37.29×106105.00×10997.68YOLO v7-D√√√22.62×10638.44×10996.93YOLO v7-MA√√√√22.64×10638.45×10998.56
目前,对目标检测模型进行轻量化设计主要有两种方式,一种是直接采用轻量化的检测网络,如GhostNet、MobileNet和ShuffleNet等;另一种是将目标检测网络中存在的大量普通卷积块替换为深度可分离卷积块。曹远杰等[25]基于GhostNet残差结构构建了YOLO-GhostNet饮料识别模型,结果表明,该模型尺寸仅为2.18 Mb,较YOLO v4-Tiny模型减小90%,相比YOLO v4-Tiny模型,在GPU加速下平均处理图片速度提高24%,CPU处理速度加快56%,YOLO-GhostNet模型在饮料测试集中的平均精度均值达到79.43%,相比YOLO v4-Tiny模型,其在精度无损失情况下能够大幅降低模型计算量和参数量,同时加快推理速度。王卓等[26]以YOLO v4模型作为基础框架,提出了一种轻量化苹果实时检测模型YOLO v4-CA,该模型将MobileNet v3作为主干特征提取网络,并在特征融合网络中引入深度可分离卷积,结果表明,YOLO v4-CA模型的平均精度均值为92.23%,在嵌入式平台上的检测速度为15.11 f/s,约为YOLO v4模型的3倍。本研究中,以YOLO v7为基础框架,采用GhostNet作为主干特征提取网络,同时将特征融合网络的普通卷积块替换为深度可分离卷积块,结果表明,改进后的YOLO v7-MA模型平均精度均值为98.56%,这与上述试验结果基本一致,在不损失模型检测精度的情况下,模型参数量和计算复杂度均大幅下降,检测速度有所提升。
为了强化模型对目标关键特征的关注度,提高网络抗背景干扰能力,在模型中引入SE、CA、CBAM、ECA等注意力机制是目前比较主流的一种技术手段。李书琴等[27]提出了一种基于轻量级残差网络的植物叶片病害识别模型Scale-Down ResNet,为了保持低识别错误率,在模型中加入SE注意力机制模块,在Plant Village数据集上的试验表明,当模型参数量为8×104、计算量FLOPs为55×106时,模型识别错误率为0.55%;当参数量达到2.8×105、计算量FLOPs为176×106时,模型识别错误率为0.32%,低于ResNet18模型;张晓鹏等[28]提出一种基于改进YOLO v5的海上船舶识别模型SE-NMS-YOLO v5,该模型融合了SE注意力机制模块和改进非极大值抑制模型,结果表明,SE-NMS-YOLO v5模型在船舶识别任务上的准确率、召回率和F1值分别为90.6%、89.9%、90.5%,检测效果均优于YOLO v5和YOLO v4模型;李小波等[29]在基于YOLO v5s的口罩检测模型主干网络中分别引入4种注意力机制,以抑制无关信息,增强特征图的信息表达能力,结果表明,引入CBAM模块后的模型较初始模型的平均精度均值提升了6.9%,在4种注意力机制中提升幅度最明显。本研究中,将CBAM注意力机制模块引入特征融合网络中,改进后的模型平均精度均值较初始模型提高了0.07%,这与上述试验结果类似,CBAM的确提升了模型检测精度。此外,也有研究人员将不同的注意力机制结合在一起使用,也取得了不错的效果,这也是笔者在后续工作中值得一试的方向。
不同的数据集中,每一类待检测目标的尺寸大小均不一样,有的相差很大,而有的相差很小。虽然YOLO系列检测模型提供了9个默认的锚框尺寸,但考虑到每个数据集自身的特点,一般采用K-means或K-means++等聚类算法重新生成锚框,以提高模型的检测性能。黄凤琪等[30]提出一种基于可变形卷积改进的YOLO目标检测模型dcn-YOLO,该方法使用K-means++算法后,能聚类出更符合数据集尺寸的锚盒,且dcn-YOLO模型的平均精度均值较初始模型提高了0.15%;赵严等[31]提出了一种基于改进YOLO v4的林业害虫检测模型Pest-YOLO v4,该方法采用K-means++算法聚类先验框,以提高先验框Avg-IoU值,且Pest-YOLO v4模型的平均精度均值达到90.4%,相较于YOLO v4模型提高了4.2%。本研究中,在采用K-means++算法重新聚类锚框后,模型的平均精度均值较初始模型提高了0.1%,检测精度比原来略有提升,且不影响模型检测速度和计算复杂度,这与上述试验结果基本一致。
1)提出了一种基于改进YOLO v7的微藻轻量级实时检测方法YOLO v7-MA,该模型在微藻数据集上的平均精度均值为98.56%,参数量仅为22.64×106,FLOPs为38.45×109,在GPU上测得的FPS为51.86,在CPU上测得的FPS为5.07。该模型能够满足对微藻的实时、快速、准确的智能化检测,大幅降低检测人员的工作量。
2)将GhostNet作为YOLO v7模型的主干特征提取网络,同时将特征融合网络中的普通卷积块改为深度可分离卷积块,改进后的模型参数量和FLOPs较YOLO v7模型分别降低了14.63%和66.55%;为了弥补模型轻量化带来的检测精度亏损,使用K-means++聚类锚框和CBAM注意力模块,保证了检测精度的提升,做到了模型轻量化和检测精度两者的兼顾。
3)本文中提出的YOLO v7-MA模型的平均精度均值相较于FasterRCNN-VGG16、FasterRCNN-Resnet50、YOLO v4、YOLO v4-Mobilenet v3、YOLO v4-VGG16、YOLO v4-Resnet50、YOLO v5s和YOLO v7模型均有提高,参数量均有减少,在CPU上的检测速度较快,显示出YOLO v7-MA模型在微藻检测上的优越性,适宜部署在算力资源不足的嵌入式设备上。
[1] 周银,许丹,肖恩荣,等.水生植物能源化利用技术与方法研究进展[J].环境科学与技术,2016,39(11):118-126.
ZHOU Y,XU D,XIAO E R,et al.Progress on the technology and methods of the energy utilization of aquatic plants[J].Environmental Science & Technology,2016,39(11):118-126.(in Chinese)
[2] 孙军,宋煜尧,刘海娇.海洋浮游植物快速鉴定与监测技术[J].海洋科学进展,2022,40(4):701-716.
SUN J,SONG Y Y,LIU H J.State-of-the-art rapid identification and monitoring techniques for marine phytoplankton[J].Advances in Marine Science,2022,40(4):701-716.(in Chinese)
[3] 张国维,李勤慎,邵东宏,等.微藻在水产养殖中的研究应用进展[J].中国水产,2020(2):72-74.
ZHANG G W, LI Q S, SHAO D H,et al.Advances in the research and application of microalgae in aquaculture[J].China Fisheries,2020(2):72-74.(in Chinese)
[4] 曾伟基,苟偲钰,曹洁茹,等.麻痹性贝毒产毒藻株的三维荧光光谱识别技术研究[J].光谱学与光谱分析,2022,42(1):130-135.
ZENG W J,GOU S Y,CAO J R,et al.Identification of paralytic shellfish algae by three-dimensional fluorescence spectral[J].Spectroscopy and Spectral Analysis,2022,42(1):130-135.(in Chinese)
[5] 王勇.利用偏振光散射区分悬浮颗粒物与海洋微藻分类的研究[D].北京:清华大学,2018.
WANG Y.A study on classification of suspended particles and marine microalgae by polarized light scattering[D].Beijing:Tsinghua University,2018.(in Chinese)
[6] 陈仁霞,朱葆华,曹子豪,等.一株富含多不饱和脂肪酸杜氏藻的鉴定和优化培养研究[J].中国海洋大学学报(自然科学版),2022,52(10):59-67.
CHEN R X,ZHU B H,CAO Z H,et al.Identification and optimal culture of a Dunaliella sp.rich in polyunsaturated fatty acids[J].Periodical of Ocean University of China(Natural Science Edition),2022,52(10):59-67.(in Chinese)
[7] PROMDAEN S,WATTUYA P,SANEVAS N.Automated microalgae image classification[J].Procedia Computer Science,2014,29:1981-1992.
[8] DANNEMILLER K,AHMADI K,SALARI E.A new method for the segmentation of algae images using retinex and support vector machine[C]//2015 IEEEinternational conference on electro/information technology.Dekalb,IL,USA:IEEE,2015:361-364.
[9] MOSLEH M A,MANSSOR H,MALEK S,et al.A preliminary study on automated freshwater algae recognition and classification system[J].BMC Bioinformatics,2012,13(17):1-13.
[10] CORRA I,DREWS P,SILVA DE SOUZA M,et al.Supervised microalgae classification in imbalanced dataset[C]//2016 5th Brazilian conference on intelligent systems.Recife,Brazil:IEEE,2017:49-54.
[11] MANSOOR H,SORAYYA M,AISHAH S,et al.Automatic recognition system for some cyanobacteria using image processing techniques and ANN approach[C]//Int conf on envir and comp science IPCBEE.Singapore:IACSIT Press,2011,19:73-78.
[12] 程钊,赵南京,殷高方,等.基于多任务卷积神经网络的浮游藻类群落识别方法[J].光学学报,2022,42(5):235-243.
CHENG Z,ZHAO N J,YIN G F,et al.Identification method of planktonic algae community based on multi-task convolutional neural network[J].Acta Optica Sinica,2022,42(5):235-243.(in Chinese)
[13] 崔雪森,田晓清,康伟,等.基于卷积神经网络的微藻种类识别[J].上海海洋大学学报,2021,30(4):710-717.
CUI X S,TIAN X Q,KANG W,et al.Identification of microalgae species based on convolutional neural network[J].Journal of Shanghai Ocean University,2021,30(4):710-717.(in Chinese)
[14] 杨寿勇,张海阳,李成,等.基于卷积神经网络模型的微藻种类识别[J].环境科学与技术,2020,43(S2):158-164.
YANG S Y,ZHANG H Y,LI C,et al.Recognition of microalgae species based on convolutional neural network model[J].Environmental Science & Technology,2020,43(S2):158-164.(in Chinese)
[15] 王羽徵,程远,毕海,等.基于深度学习VGG网络模型的海洋单细胞藻类识别算法[J].大连海洋大学学报,2021,36(2):334-339.
WANG Y Z,CHENG Y,BI H,et al.Recognition algorithm of marine single-cell algae based on deep learning VGG network[J].Journal of Dalian Ocean University,2021,36(2):334-339.(in Chinese)
[16] QIAN P S,ZHAO Z Y,LIU H B,et al.Multi-target deep learning for algal detection and classification[C]//2020 42nd annual international conference of the IEEE engineering in medicine & biology society.Montreal,QC,Canada:IEEE,2020:1954-1957.
[17] 王晓阳.基于图像的海洋微藻识别系统的设计与实现[D].大连:大连海洋大学,2020.
WANG X Y.Design and implementation of image-based marine microalgae identification system[D].Dalian:Dalian Ocean University,2020.(in Chinese)
[18] WANG C Y,BOCHKOVSKIY A,LIAO H Y M.YOLOv7:trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[EB/OL].arXiv:2207.02696.https://arxiv.org/abs/2207.02696.
[19] DING X H,ZHANG X Y,MA N N,et al.RepVGG:making VGG-style ConvNets great again[C]//2021 IEEE/CVF conference on computer vision and pattern recognition.Nashville,TN,USA:IEEE,2021:13728-13737.
[20] HAN K,WANG Y H,TIAN Q,et al.GhostNet:more features from cheap operations[C]//2020 IEEE/CVF conference on computer vision and pattern recognition.Seattle,WA,USA:IEEE,2020:1577-1586.
[21] CHOLLET F.Xception:deep learning with depthwise separable convolutions[C]//2017 IEEE conference on computer vision and pattern recognition.Honolulu,HI,USA:IEEE,2017:1800-1807.
[22] WOO S,PARK J,LEE J Y,et al.CBAM:convolutional block attention module[M]//Computer vision-ECCV 2018.Cham:Springer International Publishing,2018:3-19.
[23] YANG H C,LI C,ZHAO X,et al.EMDS-7:environmental microorganism image dataset seventh version for multiple object detection evaluation[EB/OL].arXiv:2110.07723.https://arxiv.org/abs/2110.07723.
[24] ZHENG Z H,WANG P,LIU W,et al.Distance-IoU loss:faster and better learning for bounding box regression[J].Proceedings of the AAAI Conference on Artificial Intelligence,2020,34(7):12993-13000.
[25] 曹远杰,高瑜翔.基于GhostNet残差结构的轻量化饮料识别网络[J].计算机工程,2022,48(3):310-314.
CAO Y J,GAO Y X.Lightweight beverage recognition network based on GhostNet residual structure[J].Computer Engineering,2022,48(3):310-314.(in Chinese)
[26] 王卓,王健,王枭雄,等.基于改进YOLO v4的自然环境苹果轻量级检测方法[J].农业机械学报,2022,53(8):294-302.
WANG Z,WANG J,WANG X X,et al.Lightweight real-time apple detection method based on improved YOLO v4[J].Transactions of the Chinese Society for Agricultural Machinery,2022,53(8):294-302.(in Chinese)
[27] 李书琴,陈聪,朱彤,等.基于轻量级残差网络的植物叶片病害识别[J].农业机械学报,2022,53(3):243-250.
LI S Q,CHEN C,ZHU T,et al.Plant leaf disease identification based on lightweight residual network[J].Transactions of the Chinese Society for Agricultural Machinery,2022,53(3):243-250.(in Chinese)
[28] 张晓鹏,许志远,曲胜,等.基于改进YOLOv5深度学习的海上船舶识别算法[J].大连海洋大学学报,2022,37(5):866-872.
ZHANG X P,XU Z Y,QU S,et al.Recognition algorithm of marine ship based on improved YOLOv5 deep learning[J].Journal of Dalian Ocean University,2022,37(5):866-872.(in Chinese)
[29] 李小波,李阳贵,郭宁,等.融合注意力机制的YOLOv5口罩检测算法[J].图学学报,2023,44(1):16-25.
LI X B,LI Y G,GUO N,et al.Mask detection algorithm based on YOLOv5 intergrating attention mechanism[J].Journal of Graphics,2023,44(1):16-25.(in Chinese)
[30] 黄凤琪,陈明,冯国富.基于可变形卷积的改进YOLO目标检测算法[J].计算机工程,2021,47(10):269-275,282.
HUANG F Q,CHEN M,FENG G F.Improved YOLO object detection algorithm based on deformable convolution[J].Computer Engineering,2021,47(10):269-275,282.(in Chinese)
[31] 赵严,刘应安,业巧林,等.基于深度学习的林业害虫检测优化[J].液晶与显示,2022,37(9):1216-1227.
ZHAO Y,LIU Y A,YE Q L,et al.Forestry pest detection optimization based on deep learning[J].Chinese Journal of Liquid Crystals and Displays,2022,37(9):1216-1227.(in Chinese)