近年来,中国海珍品养殖量和需求量迅速增长,大规模商业化养殖对海珍品的检测需要投入巨大的成本。基于计算机视觉的海珍品目标检测技术可有效节约人力,降低运营成本,提高海珍品养殖自动化水平。因此,实现基于计算机视觉的目标检测技术在海珍品养殖产业上的应用,对于提高海珍品养殖的信息化程度,改善养殖条件具有重要意义[1]。
目前,轻量级的目标检测模型已经在各行业有着广泛运用。如在车辆检测领域,刘肯等[2]利用Tiny-YOLO模型实现了在真实环境下对车辆的自动识别。而目标检测在渔业领域上的发展也趋向完善,French等[4]使用卷积神经网络实现了鱼类捕捞视频监控识别;Chen等[5]采用卷积神经网络实现了野外环境下鱼类的分类和检测。随着目标检测在渔业领域应用中的推进,基于深度学习的计算机视觉技术也运用到海珍品目标检测上,并取得了一定效果。如袁利毫等[3]采用YOLOV3模型实现了水下小目标的识别并成功运用在水下海珍品抓取。
目标检测技术应用在海珍品上主要存在以下问题:一是自然环境下,海珍品大多生长在泥沙多、水质混浊的区域,在水下摄像机镜头中呈现出一种深绿色,就需要对采集的图像进行预处理;二是在大型服务器上运行的分类网络如VGG[6]等,对设备要求较高,不便于在海珍品养殖场等区域部署;三是水下通信条件远不及陆地,特别在远离海岸的地方,信号延时较大。因此,构建轻量化模型并把模型运行在船载设备上,是解决此类问题的重要思路。基于上述原因,本研究中提出了基于轻量化深度学习模型的海珍品检测方法,并对水下环境较暗、物体与背景分辨率低等特点,采用优化的Retinex算法[7]进行图像增强,针对通信网络环境复杂,构建低时延、高精度的轻量化网络模型Mobilenet-SSD对海珍品进行检测,旨在实现精确检测多种水下海珍品,为科学养殖海珍品过程中掌握海珍品分布提供可靠保障。
当前主流的深度学习目标检测网络模型有SSD[8]和YOLO模型[9]。为了选择一种适合边缘计算的轻量化网络模型,本文对比了Tiny-YOLO网络模型的主干网络YOLOV2和SSD网络模型的主干网络Mobilenet[10]。Mobilenet模型是当前最流行的轻量化网络模型之一,相比于Mobilenet模型,YOLOV2模型有两点明显的缺点:一是其属于端到端的训练方式,对于训练结果不容易进行科学调试;二是YOLOV2模型只做了7层的卷积尺度变换,特征损失较大,MobileNet和YOLOV2网络模型参数的比较如表1所示。
针对海珍品检测,本文利用Mobilenet网络检测到目标海珍品后,再用SSD的分类网络进行目标分类,组成MobileNet-SSD轻量化深度学习网络模型,以便达到提高海珍品检测准确率和实时性的要求。
表1 Mobilenet与YOLOV2网络模型参数的比较
Tab.1 Comparison of parameters between Mobilenet network and YOLOV2 network
YOLOV2Mobilenet类型type输出(像素×像素×通道数)output(pixel×pixel×channel)类型type输出(像素×像素×通道数)output(pixel×pixel×channel)convmax416×416×16208×208×16conv224×224×3convmax208×208×32104×104×32conv dwconv112×112×32112×112×32convmax104×104×6452×52×64conv dwconv112×112×6456×56×64convmax52×52×12826×26×128conv dwconv56×56×12856×56×128convmax26×26×25613×13×256conv dwconv56×56×12828×28×128convmax13×13×51213×13×512conv dwconv28×28×25628×28×256conv13×13×1 024conv dwconv28×28×25614×14×256
本研究中使用的网络模型是Mobilenet-V1版本,Mobilenet核心思想是引入了深度可分离卷积[10](图1),将标准的卷积过滤器拆分成深度卷积和逐点卷积两个结构。假设输入与输出的长×宽不变,标准的卷积过程是将输入为DF×DF×M的输入层转化为维度为DF×DF×N的输出层,其中DF×DF为输入或输出feature map的长×宽,M为是输入通道数,N为输出通道数。 假设卷积核过滤器的尺寸为DK×DK,则标准卷积核的计算量为DK×DK×M×N×DF×DF。对于深度可分离卷积来说,卷积执行次数的计算分为2步,第一步深度卷积计算中,有M个DK×DK的矩阵移动DF×DF次,第二步1×1卷积计算中,有N个1×1×M的卷积核移动DF×DF次,因此,将以上2步执行次数相加,得到总的卷积执行次数,深度可分离卷积的计算量为DK×DK×M×DF×DF+1×1×M×N×DF×DF,深度可分离卷积和标准卷积的计算量比值为
(1)
图1 深度卷积和逐点卷积
Fig.1 Deep convolutional neural networks and point by point convolution neural networks
Mobilenet的卷积核尺寸选用DK×DK=3×3,带入式(1)得到深度可分离卷积的计算量是标准卷积的1/8~1/9,从而达到提升网络模型运算速度的目的。
水下海珍品目标检测网络模型Mobilenet-SSD的整体结构如图2所示。模型将增强后的图像统一调节长×宽至300×300像素,送入网络结构,图中绿色边框组成的是Mobilenet网络模型,图像经过Mobilenet基础分类网络模型的底层网络提取位置边缘等信息,通过上层网络提取更加具象的特征。图中由黑色边框组成的目标检测器SSD是采用多尺度特征进行预测,取消预先提取候选区域这一步骤,对目标按照位置和类别置信度分别进行评价,评估总体的损失函数。在形成Mobilenet-SSD网络模型后,分别在conv11、conv13、conv14_2、conv15_2、conv16_2、conv17_2卷积共6层上提取特征,将SSD检测器的最小尺寸38×38改进为19×19尺寸的feature map,开始提取特征送给检测器,同时在6层不同尺度的特征层生成多组对应先验框(prior box),这些先验框选取的长与宽比例分别为1、2、3、1/2、1/3,在6层特征层上各采用一次1×1卷积对每个先验框进行位置和类别的预判别。令n为该特征层所需要的先验框个数,则对于位置预测所需要的卷积核个数是n×4,对于类别预测需要的卷积核个数是n×c,其中c是类别数,本文中取为3。由于每个真实目标(ground truth)会匹配多个先验框,最后要选择交并比(IOU)最大的先验框与真实目标做匹配成为真样本,对于其余先验框,如果交并比大于一定阈值,就将这些框删除,这个过程就是非极大值抑制(NMS)算法,只留下得分最高的框然后输出。非极大值抑制算法对于海珍品目标检测十分必要,因为海珍品生长特点是密集性的,即使在1×1卷积核情况下,仍会受到其余海珍品的部分影响,非极大值抑制过滤多余先验框,保证了分类网络在卷积核中心分类的准确性。
在Mobilenet-SSD结构上,conv11、conv13、conv14_2、conv15_2、conv16_2、conv17_2卷积的先验框的个数分别是3、6、6、6、6、6,对于某一类检测目标,检测器都有19×19×3+10×10×6+5×5×6+3×3×6+2×2×6+1×1+6=1917个先验框负责检测这个目标。图2下半部分展示了将卷积提取特征至SSD检测器并最后输出的过程。
图2 Mobilenet-SSD网络模型结构
Fig.2 Mobilenet-SSD network structure
试验数据来自ChinaMM2018水下机器人目标抓取大赛官方标注的海珍品数据集,由潜水员在特定养殖海域进行拍摄,拍摄对象为海参、海胆、扇贝三类目标,图像格式为.jpg格式,固定分辨率为720×405像素,官方同时也提供了标注有图像类别和位置的.xml文件,文件名与图像名称一一对应。
筛选通过Retinex算法增强后的图像,选定5 606张图像用于训练和测试模型性能。由于海珍品的生长特性,往往是一张图像中有多类海珍品,且每种海珍品的数量不止一个,因此,对于一个轻量化模型来说这个数据量是足够的。按照VOC2012数据集的格式规范化数据,将80%的数据量用于训练验证,20%用于测试。在与图像对应的信息文件中,包含了图像名称、海珍品类别名称、标注框的位置信息、标注框的长和宽。
训练数据集图像大小均为统一的720×405像素,训练平台是Windows10操作系统,型号为2070的显卡,12G内存条。全局训练次数为30 000次,初始学习率(rL)设置2组候选值,分别为0.004、0.04,动量系数(α)设置3组候选值,分别为0.5、0.9、0.99。针对这些候选值设计了多组对比试验,序号为1、2、3的试验在固定学习率为0.04的情况下改变动量系数,序号为4、5、6的试验在固定学习率为0.004的情况下改变动量系数,超参数组合试验情况如表2所示。
表2 不同超参数组合对应的平均准确率
Tab.2 Average accuracy of different parameters combinations of super parameters
试验号test No.参数组合parameter combination平均准确率/%average accuracy1rL=0.04,α=0.569.452rL=0.04,α=0.972.873rL=0.04,α=0.9971.114rL=0.004,α=0.574.325rL=0.004,α=0.980.436rL=0.004,α=0.9977.02
由表2可以看出,设置学习率为0.04对于模型的梯度下降过程不能较好地收敛到全局最小值,在网络模型训练初始阶段,设置学习率较大有助于模型尽快收敛,但是在训练后期,较大的学习率会让梯度下降在权重更新的时候出现波动影响收敛。据此在第4组试验时,把学习率定在0.004,对比第4组、第5组、第6组试验,发现当α取值为0.9时的平均准确率最高。动量系数是避免梯度下降时模型陷入局部最小值时引入的一个超参数,α设置为0.5时过小,不能使模型逃脱局部最小值陷阱,α设置为0.99时过大,可能使模型跳过局部最小值。综合以上考虑,最终选择初始学习率为0.004,动量系数为0.9。
根据上面最佳参数组合(rL=0.004,α=0.9)训练模型的权重参数。训练使用的参数初始化方式是载入在Imagenet数据集上已预训练的参数,训练开始后可以通过卷积层的名称固定底层的参数不进行训练,解冻上层卷积结构,针对海珍品的特征进行参数微调。最终在测试集上的损失率固定在0.9~1.1范围内,如图3所示,模型的平均准确率为85.79%,检测一幅海珍品图像用时0.2 s。
图3 网络模型损失函数的变化情况
Fig.3 Change in network loss function
为了进一步说明提出的Mobilenet-SSD模型的有效性,本试验中选择了VGG-SSD模型作为参照,对比两种模型的检测效果。VGG与Mobilenet都是基础分类网络模型,相比Mobilenet,VGG网络卷积核尺寸较小,但是参数量更多。从海珍品的大小和海珍品的品种2个方面分别做比较,每个评价指标均设置3组对比试验。为了对比两种检测模型的效果,需要先确定模型的评价指标。
由于本文构建的Mobilenet-SSD网络模型的主干网络Mobilenet最大的优点是网络参数量小,对运行速度有显著提升,因此,在选择评价指标的时候,除了采用在各类检测物体的准确率和调和平均值(F1)指标外,还加入了对每张图像的运算时间指标(t)。F1的计算公式为
(2)
其中:P为准确率,P=TP/(TP+FP);R为召回率,R=TP/(TP+FN),公式中TP、FP、FN、TN参数含义如表3所示。
表3 分类结果混淆矩阵
Tab.3 Classification results of the fuscate matrix
真实情况the truth预测结果 prediction正例positive example反例negative example正例 positive exampleTP(真正例)FN(假反例)反例 negative exampleFP(假正例)TN(真反例)
为了获得真正例和假反例,需要先计算交并比(IOU),交并比是预测框与真实值的交集和并集的比值,本文参考PASCAL VOC数据集所用的指标,设置交并比的阈值为0.5,如果IOU>0.5,认为检测结果是真正例,否则认为是假正例。真正例确定后,漏检的物体数即假反例就可以由所有正例减去真正例求出。
在实际测试集当中,海珍品的大小往往对最后的检测结果有较大的影响。大目标遮挡较少,识别难度低,小目标较为密集遮挡程度大,识别难度高。根据目标在整幅图像中所占的比例把目标分为大、小两类,同时将模型对大、小两类目标海珍品的检测结果进行了评价。定义占全图面积5%~20%为小目标,超过20%为大目标。图4为Mobilenet-SSD和VGG-SSD 2种模型在大、小两类目标海珍品上的检测效果,表4是对检测结果进行统计。表4中总体的计算方法是:统计大、小两类目标试验的总样本数、所有正样本数、所有检测到的样本数和所有检测到的正样本数量,采用相同的试验方法计算总体的准确率、召回率和F1值。分析显示,Mobilenet-SSD模型在检测结果优于VGG-SSD的同时,更明显的提升是检测速度比VGG-SSD快了近4倍,说明Mobilenet-SSD模型在不损失性能的同时,通过优化卷积之间的连接结构,使参数量下降并加快了运算速度。
图4 2种网络模型对大、小两类目标海珍品的检测效果
Fig.4 Detection effect of two network on big and small target in high value marine food organisms
为了进一步分析在不同种类海珍品上的检测效果,本文用Mobilenet-SSD和VGG-SSD 2种模型分别对海参、海胆和扇贝3类海珍品目标检测效果进行对比。在原始数据中3类海珍品生长区域往往高度混合,海参和扇贝颜色相近,海胆颜色区分度最大但生长也最为密集,完全被检测到难度较大。图5为2种模型在不同种类海珍品上的检测效果。
表4 Mobilenet-SSD与VGG-SSD网络模型对大、小两类目标海珍品的检测结果统计
Tab.4 Detection results of big and small target in high value marine food organisms by Mobilenet-SSD and VGG-SSD network
目标 target检测模型 detecting network准确率(P) accuracy/%召回率 (R) recall rate/%F1值 F1 index/%耗时(t) time/s大 bigVGG-SSDMobilenet-SSD95.1396.2289.1487.1892.0491.480.920.21小 smallVGG-SSDMobilenet-SSD71.4170.1360.0367.4165.2268.740.960.21总体totalVGG-SSDMobilenet-SSD82.1183.8768.9376.8476.8180.200.940.20
统计每类海珍品被正确分类的样本数TP、被分入正例的负样本数FP和被分入负例的正样本数量FN,并计算相关评价指标,结果显示,Mobilenet-SSD模型的F1值比VGG-SSD高10.69%,平均准确率比VGG-SSD高9.58%(表5),这表明Mobilenet-SSD模型在识别精度上表现得更为优异。两种模型同时在扇贝识别上表现最好,在海参识别上表现次之,在海胆识别上表现最差(表5)。推测导致这种情况的原因可能是:扇贝生长分布较为分散,遮罩较少,所以检测效果最好;部分海参埋在泥地下,可提取特征区域小,交并比小,导致假正例多,影响准确率;海胆分布太过密集,遮挡大,导致很多海胆未被检测到,召回率最低。
图5 2种网络模型对不同种类海珍品的检测效果
Fig.5 Detection effect of two network on different kinds of high value marine food organisms
表5 Mobilenet-SSD与VGG-SSD网络模型对不同种类海珍品的检测结果统计
Tab.5 Detection results of different kinds of high value marine food organisms by Mobilenet-SSD network and VGG-SSD network
种类species检测模型detecting networkTPFPFNP/%R/%F1/%Pm/%海胆 sea urchinVGG-SSD80529951472.9161.0366.4468.41Mobilenet-SSD84619842280.1466.8772.9181.43海参sea cucumberVGG-SSD65014222982.0773.9577.8077.14Mobilenet-SSD69213515083.0877.3680.1286.02扇贝scallopVGG-SSD143172889.1783.6383.3186.17Mobilenet-SSD149142289.2482.9185.9689.44总体totalVGG-SSD159845877177.7267.4572.2276.21Mobilenet-SSD168734759484.2478.7182.9185.79
图6展示了部分识别遗漏或误判的场景,图6(a)把背景海草识别为扇贝,图6(b)左侧存在一块扇贝漏检的情况,图6(c)因为检测目标过于密集反而遗漏了稀疏部分的目标。
图6 部分存在错误识别的图像
Fig.6 Part of the misidentified image
1) 提出了基于卷积神经网络的轻量化模型Mobilenet-SSD,在构建适合自己数据集的结果上确定了适用于海珍品检测的学习率0.004和动量系数0.9,最终输出的模型在3类海珍品检测上的平均精度为85.79%,测试一张海珍品图像用时0.2 s,在大、小两类海珍品目标检测上,较VGG-SSD模型在准确率和实时性上都有明显提升。
2) 对比因不同种类海珍品而产生的准确率、召回率差异,表明Mobilenet-SSD模型能够满足在自然海域里对海参和扇贝的检测,而海胆因为密集型的生长分布情况,容易造成目标丢失的情况。
3)在使用相同数据集的已报道文献中,与使用YOLOV2网络模型相比,本文中提出的Mobilenet-SSD网络模型更加轻量化,为搭载在功率更低的水下设备上提供了条件;与使用Tiny-YOLO模型相比,Mobilenet-SSD模型增加了网络层数,使得目标特征得到充分利用,同时模型的训练结果更容易调试,为未来的更新升级创造了空间。
[1] 常忠岳,关长涛,李连森,等.升降式海珍品生态养殖装备的研发与设计[J].水产养殖,2016,37(2):18-22.
[2] 刘肯,何姣姣,张永平,等.改进tiny-yolo的车辆检测算法[J].计算机与数字工程,2019,47(12):3095-3098,3106.
[3] 袁利毫,昝英飞,钟声华,等.基于YOLOv3的水下小目标自主识别[J].海洋工程装备与技术,2018,5(sup 1):118-123.
[4] FRENCH G,FISHER M H,MACKIEWICZ M,et al.Convolutional neural networks for counting fish in fisheries surveillance video[M]//Proceedings of the machine vision of animals and their behaviour(MVAB).Kingston,UK:BMVA Press,2015.https://ueaeprints.uea.ac.uk/id/eprint/55574/.
[5] CHEN G,SUN P,SHANG Y.Automatic fish classification system using deep learning[C]//2017 IEEE 29th international conference on tools with artificial intelligence (ICTAI).Boston,MA,USA:IEEE,2017:24-29.
[6] SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale image recognition[EB/OL].Computer Science,2014.https://arxiv.org/abs/1409.1556.
[7] WEI C,WANG W J,YANG W H,et al.Deep retinex decomposition for low-light enhancement[EB/OL].Computer Science,2018.https://arxiv.org/abs/1808.04560.
[8] LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[C]//14th European conference on computer vision.Amsterdam,The Netherlands:Springer,2016:21-37.
[9] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:unified,real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.Las Vegas,NV,USA:IEEE,2016:779-788.
[10] HOWARD A G,ZHU M L,CHEN B,et al.Mobilenets:efficient convolutional neural networks for mobile vision applications[EB/OL].Computer Science,2017.https://arxiv.org/abs/1704.04861.