嵌入式设备的轻量化百香果检测模型
2023-01-05罗志聪李鹏博宋飞宇孙奇燕丁昊凡
罗志聪 李鹏博 宋飞宇 孙奇燕 丁昊凡
(1.福建农林大学机电工程学院,福州 350002;2.福建省农业信息感知技术重点实验室,福州 350002;3.福建农林大学计算机与信息学院,福州 350002)
0 引言
随着农业智能化和农业数字革命的快速发展,利用计算机视觉进行果实识别和产量预估等精细化管理成为发展智慧农业的研究热点[1-2]。百香果是福建富民产业的“福果”,百香果产业不仅有高效的经济效益,还有助于推动福建农业的供给侧结构改革[3]。目前,百香果的收获仍局限于人工采摘,具有成本高、作业效率低、劳动强度大和风险高等缺点[4]。为了机械化采摘,实现百香果目标精准检测与定位尤为重要。
针对复杂环境下的百香果果实识别与定位,传统的方法效果不佳,而深度学习网络[5-7]可以自动提取特征,将简单的特征融合为更复杂的特征,通过复杂特征解决识别定位问题,在目标检测方面精度和效率都得到了大幅提升。TU等[8]通过改进RCNN提出多尺度快速的区域卷积神经网络(MS-FRCNN)对叶片严重遮挡的百香果进行检测和计数。该方法识别能力较强,但网络结构复杂、训练速度过慢。唐熔钗等[9]通过在YOLO v3模型中加入密集网络DenseNet来提高模型对自然环境下百香果的检测精度,但加深网络结构使得计算损耗增加。WU等[10]在YOLO v3网络基础上增强特征融合网络和减少多尺度网络检测自然环境中的百香果,但对百香果的识别和定位具有局限性。TU等[11]提出的基于RGB-D检测器与深度学习网络结合的模型,在检测百香果成熟度方面具有较高的检测精度,但该网络只存在理论研究,并没有部署到嵌入式设备。虽然深度学习网络的优化和改进在百香果的检测和定位方面取得优异效果,但同时巨大参数量会导致硬件存储成本和计算成本过高[12],限制了在精准农业化管理中应用和推广。寻找一种精度高、体积小的深度学习算法应用于嵌入式设备尤为重要。
目前学者在深度学习网络轻量化方面做了多种尝试,如设计轻量化网络[13]、网络剪枝[14]、知识蒸馏[15]、模型压缩[16]等。轻量化卷积神经网络通过减少计算量和参数量设计出更加高效的特征提取网络结构,在减少参数的同时几乎不影响网络模型性能。如MobileNet[17]、ShuffleNet[18]、GhostNet[19]。
由于YOLO v5模型较大,在嵌入式平台部署后实时检测百香果的性能低。本文基于改进YOLO v5模型,以复杂环境下绿色百香果为研究对象,在确保检测精度较高的情况下,使得模型轻量化且可部署于嵌入式平台,节约边缘计算设备资源从而达到实时检测要求。
1 数据集建立
本文图像采集地点为福建省漳州市诏安县福果农业综合开发有限公司的黄金百香果基地,采集时间为2021年6月底至8月初。选用尼康数码相机设备拍摄,拍摄时相机距离百香果为80~100 cm,图像尺寸为1 920像素×1 080像素。分别采集了百香果顺光和逆光时独立果实、多个果实、叶片遮挡和果实重叠下共1 000幅图像,复杂环境下的百香果图像如图1所示。
图1 复杂环境下百香果图像
为了降低因训练样本多样性不足而产生的模型过拟合现象,采用对原始图像进行旋转、镜像、加入高斯噪声和改变对比度等处理扩充数据集,增广的百香果图像如图2所示。为了与原图有所区别,高斯噪声平均值和标准方差分别设置为3和40。对比度调节是将原图像R、G、B3通道的强度值[0.4,1]映射到新图像[0,1]中。最终获得2 000幅复杂环境下百香果图像作为数据集并保存为.jpg格式。使用人工标注工具LableImg对百香果目标进行标注,获取准确的百香果位置数据。为了减少复杂背景像素对检测结果的影响,标注时将百香果的最小外接矩形框作为真实框(Ground truth),最终得到VOC格式的xml文件。文件中包含百香果名称、尺寸和位置。对以上标注好的数据集划分训练集和测试集,并按照比例8∶2进行随机分配。训练集和测试集分别为1 600幅和400幅。
图2 百香果增广数据集
2 百香果检测模型改进与部署
2.1 YOLO v5模型构建
YOLO系列算法[20-21]是目前应用最为广泛的一阶段目标算法之一,相比SSD算法,YOLO算法提取物体特征更充分,检测精度高、速度快。相比Fast-RCNN[22]网络,YOLO v5把检测问题作为回归问题处理,可以直接从图像中得到边界框坐标和所属类别的概率,实现端到端的检测性能优化。YOLO v5网络结构可以分为4部分:输入端(Input)、主干网络(Backbone)、颈网络(Neck)、检测网络(Detect)。主要结构如图3所示。
图3 YOLO v5网络结构图
输入端由Mosaic数增强方式将百香果图像进行随机缩放、裁剪、排布后输入网络。主干网络主要实现百香果的特征提取,由Focus模块、C3模块、标准卷积(CBS)模块、SPP模块组成。Focus模块对输入的百香果图像进行切片操作,通过扩张通道数来提取百香果目标特征。C3模块在CSP结构上改进得到,由于网络优化中梯度信息重复,使计算量过高,去掉了残差输出后的批量归一化层和激活函数层,减少了运算量,如图4所示。CBS模块包括二维卷积、批量标准化和激活函数(SiLU)。SPP模块通过不同核尺寸提取百香果特征之后叠加进行特征融合。颈网络主要实现百香果的特征融合,以路径聚合网络(PANet)为主,分为FPN结构和PAN结构。FPN结构从上往下提取特征层信息,提升了目标检测效果。PAN结构从下往上提取特征层信息,得到丰富的位置信息。最后将提取的特征层进行融合,使得PANet网络携带更强的语义特征,增强了定位能力。
图4 C3网络结构
检测网络以目标对象的概率类别、置信度得分、包围框位置作为结果输出。YOLO v5主要计算3类损失函数:边框损失(Bounding box loss)、类间损失(Class loss)和目标损失(Object loss)。其中类间损失采用Focal loss损失函数[23]。
2.2 改进的百香果检测模型
2.2.1模型轻量化
本研究在特征提取网络层选取MobileNetV3[24]轻量化模型替换YOLO v5主干网络,MobileNetV3结合了深度可分离卷积、线性瓶颈和倒置残差结构,为了学习使用全局信息选择性地强调具有信息性的特征,抑制不明显特征而引入了SE结构。MobileNetV3特征提取网络采用一个3×3的标准卷积和多个倒置残差结构,不仅能够减少网络参数还能提取百香果的丰富特征信息。文中主干网络选取的MobileNetV3结构如表1所示。
表1 主干网络中MobileNetV3结构
在主干网络中由于使用MobileNetV3深度可分离卷积替代了YOLO v5传统卷积,在有效提取百香果特征的同时减少了参数量与计算量。假设Dk表示卷积核尺寸,M表示输入特征图通道数,N表示卷积核个数,DW和DH表示输出特征图的长和宽。深度可分离卷积参数量PD计算式为
(1)
深度可分离卷积计算量QD计算式为
(2)
传统卷积参数量PN计算式为
(3)
传统卷积计算量QN计算式为
(4)
深度可分离卷积和传统卷积参数量比RP、计算量比RQ计算式为
(5)
(6)
2.2.2有效通道注意力机制
深度学习中注意力机制用来强调百香果目标处理对象的重要信息,以选择出比当前任务目标更关键的信息。MobileNetV3在颈部采用SENet轻量化结构,SENet对每个通道独立使用全局平均池化操作,使其生成的特征层具有全局感受野;使用2个非线性的全连接层,使得网络提取丰富的特征信息。虽然在全连接层捕捉非线性通道交互采用降维方式控制模型复杂性,但是降维会使得通道注意力产生效率低和不必要的依赖关系,也会使所有通道产生消极影响。
本文采用ECANet(Efficient channel attention net)[25]替换SENet构建MvECA模块,如图5所示。
图5 MvECA结构
该模块避免了降维引起的检测效果不理想,同时采用交互覆盖率K的快速一维卷积有效地捕获了跨通道交互信息,更好地捕捉百香果图像重要特征,既提升模型效果又降低模型复杂度,该模块引入很少的附加参数,并且在局部有适当的跨通道交互,更有效的学习通道注意力,带来了显著的性能增益。其中交互覆盖率K与通道维数C之间的关系为
(7)
(8)
yi——当前目标的聚合特征
而所有通道共享相同的学习参数可以让模型性能进一步提升。共享后通道注意力计算式为
(9)
最后,通过k个参数的一维卷积快速实现有效获取局部跨通道的交互信息。
2.2.3逐点卷积网络
通过轻量化网络MvECA将主干网络替换后,在与特征融合网络堆叠时通道出现不匹配的情况。针对这一情况,再次对主干网络进行修改。在主干网络的第4层和第10层增加逐点卷积网络(Poinrwise conv net),方便特征提取和特征融合网络在维度上更好连接,同时也会提高网络对百香果检测的平均精度,与标准卷积不同的是逐点卷积采用1×1的卷积核对上一层的特征层进行单点上的特征提取。该设计首先采用二维卷积提取百香果特征,接着归一化处理特征使其保留原始的表达能力,最后输入到非线性激活函数中。非线性激活函数使用h_swish函数
(10)
其中ReLU6函数在16位浮点数或者8位整型低精度时有较优的数值分辨率,易于量化部署,有利于在嵌入式移动平台中使用。
综上,最终改进后MbECA-v5结构如图6所示。
图6 MbECA-v5结构图
2.2.4跨域与域内多轮训练迁移学习策略
对于网络模型参数的大量减少引起检测精度下降问题,本文采用了跨域与域内多轮训练相结合的学习策略进行知识迁移。即利用跨域与域内相结合的迁移方式在原来训练70轮的基础上再训练70轮。虽然扩大复杂情况下百香果训练数据集会更容易学习到百香果特征,提高检测精度,但是由于受百香果成熟的季节性限制,大规模的数据集实地获取较为困难,时间成本高。通常情况下,域内和跨域多轮训练迁移方式也可以提高检测精度,而对于识别对象为复杂环境下的百香果,迁移前后的源域和目标域相似度有差异,精度提升有限。因此在源域与目标域之间添加仅含百香果特征的过渡域,以减少源域和目标域之间的差异,大幅提高模型的检测精度。
本文使用VOC2007数据集作为源域,原扩充的数据集为目标域,记作数据集2。由于通用百香果数据集少,因此将扩充的百香果数据集中500幅图像随机挑选为过渡域,记为数据集1。根据OTOVI等[26]提出预训练模型在不相关的学习任务上比随机初始化模型效果要好的观点,将VOC2007数据集训练模型的结果作为数据集2的预训练模型,使用VOC2007数据集网络模型特征参数学习复杂环境下百香果的特征,该策略称为跨域迁移学习;将数据集1训练模型结果作为数据集2的预训练模型,用部分百香果特征参数调整复杂环境的百香果特征参数,该策略称为域内迁移学习。将VOC2007数据集和数据集1共同训练模型结果作为数据集2的预训练模型,进一步学习复杂环境下的百香果特征,提升迁移学习的效果。该策略称为跨域与域内结合学习。
2.3 训练与嵌入式平台
模型训练平台硬件配置为AMD Ryzen 7 5800H CPU @ 3.70 GHz,GeForce GTX 3060 Laptop GPU,16 GB运行内存,软件环境为64位Windows 10系统,采用Pytorch 1.7深度学习框架和Python 3.7语言,配合CUDA 11.0进行训练。
模型验证和迁移部署设备采用英伟达公司Jetson Nano,GPU为128core Maxwell,CPU为四核ARM,A57@1.43 GHz,内存为4 GB、64位LPDDR4。相应配置系统为ARM版Ubuntu 18.04操作系统,模型运行环境的配置为Jetpack 4.5、Python 3.6、Pytorch 1.8、Torchvision 0.9、Cuda 10.2、Cudnn 8.0。Jetson Nano测试图如图7所示。
图7 Jetson Nano 测试图
2.4 模型评价指标
模型评价指标为精确率P、召回率R、平均精度均值(mAP)和浮点数计算量。精确率P表示预测的正确样本占所有样本的比例,召回率R表示预测的正确样本占实际正样本的比例,平均精度均值便于从宏观角度评价不同卷积神经网络模型对图像识别性能。浮点数计算量用于衡量模型计算复杂度。
嵌入式设备实时检测性能对在百香果园的应用非常关键,检测速度也就成为了目标检测算法的一个重要评价指标,用于评价模型部署在嵌入式平台的性能。对于速度这一指标本文使用实时帧率FPS表征。
3 结果与分析
3.1 模型训练结果与分析
试验采用Adam优化算法进行优化,图像尺寸调整为640像素×640像素,学习率(Learnning rate)为0.001,初始动量(Momentum)设置为0.937,初始权重衰减系数0.1,批尺寸(Batch size)设为8,训练轮数(Epoch)为70。测试时设置交并比(IOU)为0.5,置信度为0.6。使用算法在数据集上进行训练,训练结束后保存精度最高的和最后一次的模型参数。
训练过程的参数指标如图8所示。随着训练轮数增加,精确率和召回率均不断上升,训练前15轮精确率和召回率曲线上升速度最快,当训练达到70轮时,精确率和召回率曲线趋近于平缓,最终分别达到94.2%和83.6%。mAP曲线也随着训练次数的增加逐渐上升,最终复杂环境下百香果检测平均精度均值达到92.5%,上述训练曲线趋势说明改进后的模型具有有效性和高识别性。
图8 训练模型参数指标变化趋势
3.2 消融试验
消融试验结果如表2所示。从表2可以看出,利用轻量化网络替换主干网络减少了参数量,使用注意力模块关注百香果整体,同时减小了网络模型。添加设计的逐点卷积拟合通道和提升精度,使用迁移学习策略调整初始化网络模型,大幅提升了模型的精确率、召回率和平均精度均值。
表2 消融试验结果
由表2可知,在YOLO v5s网络中将原来主干网络替换为轻量化网络后精确率、召回率和平均精度均值都有所下降,造成上述原因是改进的模型参数量和卷积层数减少,不利于复杂环境下百香果的特征提取,导致网络提取特征能力下降。为了弥补替换主干网络所带来的精度大幅下降,在网络中添加注意力机制和逐点卷积,可以看出,对召回率和平均精度均值都有明显提升。最后利用跨域与域内多训练相结合的迁移学习策略对模型初始化参数调整,减少前后源域与目标域的差异性,提升迁移训练效果。与基线网络相比,经过上述改进后的模型平均精度均值提高0.2个百分点,模型占用存储空间(模型体积)仅为6.41 MB,减少为基线网络的55.5%。
3.3 不同注意力机制对比试验
在网络轻量化模型的基础上施加不同的注意力机制,展现不同注意力机制对模型检测能力的影响,如表3所示。
表3 不同注意力机制试验结果
从表3可以看出,相比SE、CBAM[27]和CA[28]注意力模块,施加ECA模块的MobileNetV3模型检测精度最为理想,原MobileNetV3模型使用SE注意力模块,检测平均精度均值为78.2%。较SE注意力模块,施加CBAM模块检测精度上升2.2个百分点,模型体积减少0.65 MB;施加CA模块检测精度提高2.7个百分点,体积减少0.37 MB。在不同的交互覆盖率下施加ECA模块检测精度均有大幅提高,体积减少0.59 MB。说明在轻量化网络中施加不同注意力机制会减少模型的体积,适合的注意力模块会使得特征提取能力增强和检测精度提高,需要根据不同的检测目标加以选择。与此同时,对比不同交互覆盖率对ECA注意力模块的影响,在交互覆盖率为3时平均精度均值最高,为81.7%;说明上述组合方式能更为准确地检测到复杂环境下百香果果实目标。
本文所引入的轻量化ECA模块,使用捕获跨通道交互的学习方式学习有效的百香果通道特征,提高了模型对于复杂环境下百香果目标的敏感程度,进而改善百香果检测任务中果实重叠和密集时对检测精度带来的负面影响。
3.4 不同迁移学习方式训练试验
不同的迁移学习方式对模型的检测精度有明显的影响,结果如表4所示。
表4 不同迁移学习方式检测能力对比
从表4可以看出,跨域与域内多轮训练的迁移学习方式使模型精度达到最佳,为88.3%,结合图8可以看出训练轮次到达70轮时,平均精度均值曲线趋于稳定,但还具有上升的趋势,因此采取多轮训练方式可使平均精度均值达到相对较高水平。相比于跨域迁移、域内迁移和跨域与域内相结合迁移方式的平均精度均值分别提高5.4、5.0、0.9个百分点。由于跨域与域内相结合的方式在掌握通用特征后学习部分百香果特征,进而学习复杂环境下的百香果特征。相比于跨域迁移,利用部分百香果数据集作为过渡域可以减少源域和目标域相似度不同所引起的负面影响;而相比于域内迁移,仅含少量的百香果特征模型作为网络初始化无法完成复杂环境下百香果检测任务,通过通用数据集和少量百香果数据集融合的特征对网络进行初始化,弥补不完全的百香果特征所造成信息的损失,而跨域与域内多轮训练学习方式不仅具有跨域与域内相结合方式的优点,同时还可以将训练达到饱和,获得最佳的模型检测精度和最强的泛化能力。
3.5 不同检测模型综合对比试验
将改进模型与SSD、Faster RCNN、YOLO v5s、ShuffleNet-v5和GhostNet-v5模型在Jetson Nano上进行测试对比,试验结果如表5所示。
表5 不同模型综合对比结果
ShuffleNet-v5和GhostNet-v5模型是将YOLO v5s模型结构的主干网络分别替换为ShuffleNet和GhostNet网络。从表5可知,本文模型的平均精度均值为88.3%,相比于YOLO v5s提高0.2个百分点。相比于SSD、Faster RCNN、ShuffleNet-v5、GhostNet-v5目标检测网络,提高4.8、1.7、7.2、6.8个 百分点。在6种模型中MbECA-v5的平均精度均值最高,说明预测为正确百香果能力强,减少百香果采摘过程中误检率。本文模型体积仅为 6.41 MB,约为SSD、Faster RCNN、YOLO v5s的 1/14、1/81、1/2;从计算机和嵌入式平台实时检测速度考虑,改进后的模型MbECA-v5比其他6类模型速度均快。在计算机实时检测速度为124.7 f/s,嵌入式平台实时检测速度为10.92 f/s,约为SSD、Faster RCNN、YOLO v5s的14、39、1.7倍;计算量相较于SSD及Faster RCNN减少89.2%和97.6%,相较于YOLO v5s及ShuffleNet-v5减少59.5%和4.8%,相较于GhostNet-v5增加1.5%。综上所述,改进后的轻量化网络MbECA-v5具有良好的测试性能,在边缘设备上部署具有更好的实时性。
为了验证不同模型在复杂环境下百香果的检测效果,选逆光、重叠和密集百香果图像进行测试。选取置信度阈值为0.6,IOU阈值为0.5。图9为YOLO v5s和MbECA-v5 2种模型在Jetson Nano上检测结果。其中蓝色矩形框为预测结果,红色矩形框为漏检目标,黄色圆形框为误检目标。从图9可知,在逆光时,2类模型预测结果均正确,无漏检和误检现象产生。在重叠时,2种模型均存在漏检现象,MbECA-v5模型预测仅漏检1个百香果目标,YOLO v5s模型漏检2个百香果目标且产生误检现象。在密集时,MbECA-v5检测效果优异,而YOLO v5s均有漏检和误检情况产生。综上,从识别的效果得出改进模型提高了在干扰环境下的检测能力,具有较好的鲁棒性和泛化能力。
图9 两种模型检测效果对比
4 结论
(1)提出一种基于嵌入式设备的轻量化模型MbECA-v5,以YOLO v5s为基础模型,将原来的主干网络替换为MobileNetV3网络,在MobileNetV3网络中引入ECA注意力机制提取百香果全局信息,引入了逐点卷积进行通道调节。利用跨域与域内多训练相结合的迁移学习策略提高网络检测的精度。通过消融试验分析验证改进算法的有效性。
(2)复杂环境下百香果果实检测结果表明,MbECA-v5模型对百香果果实识别精确率为95.3%,召回率为88.1%,平均精度均值为88.3%,与YOLO v5s相比,平均精度均值提高0.2个百分点。计算机和嵌入式实时检测的平均帧率分别为124.7 f/s和10.92 f/s,检测速度相比原模型分别提高22.1 f/s和4.53 f/s。在检测效果上,改进的模型比YOLO v5效果更好。说明改进的算法综合性能最佳,具有较好的鲁棒性和泛化能力。
(3)改进的算法与常用的目标检测网络和轻量化网络进行对比,本文模型的平均精度均值比SSD与Faster RCNN模型分别提高4.8、1.7个百分点。相比于ShuffleNet-v5与GhostNet-v5模型分别提高7.2、6.8个百分点。模型体积约为SSD与Faster RCNN模型的1/14和1/81。在嵌入式设备的检测速度约为SSD与Faster RCNN模型的14倍和39倍,约为ShuffleNet-v5与GhostNet-v5模型的1.12倍和1.11倍。综上,MbECA-v5模型减少嵌入式设备上的运行内存,可以兼顾精度和实时性,满足快速、准确地对田间百香果图像检测的要求,可为百香果采摘机器人视觉识别系统提供技术和理论支持。