王相友 李晏兴 杨振宇 张 蒙 王荣铭 崔丽霞
(1.山东理工大学农业工程与食品科学学院, 淄博 255000; 2.山东理工大学机械工程学院, 淄博 255000)
随着“马铃薯主粮化”战略的实施,马铃薯种植业得到大力发展,马铃薯收获成为影响马铃薯产业发展的重要因素。采用现有机械化收获方式收获马铃薯会掺杂大量的土块和石块,需要依靠人工进行捡拾,这降低了马铃薯收获效率、增加了收获成本[1-3]。
针对马铃薯中土块与石块的识别与剔除问题,国内外学者进行了大量研究。HOSAINPOUR等[4]基于声学原理,利用反向传播算法的多层神经网络进行模式识别,对马铃薯和土块的检测正确率分别为97.3%和97.6%。Al-MALLAHI等[5-6]利用基于像素颜色信息的线性判别分析识别马铃薯中的土块,并利用高光谱成像技术对成像波段进行优选,识别正确率可达98%以上;利用马铃薯和土块在紫外波段不同反射率造成的成像差异,通过平滑灰度直方图,将波峰对应的灰度设置为阈值分割背景、土块和马铃薯,从而识别出98.79%的马铃薯和98.28%的土块。MCGLOUGHLIN等[7]以马铃薯像素占比为判断阈值,高于该阈值的目标判断为马铃薯,低于该阈值的目标判断为土块或石块。挪威TOMRA公司采用近红外相机和彩色相机成像的方法去除马铃薯中土块、石块等异物,生产率可达7~15 t/h。美国KEY TECHNOLOGY公司采用激光和机器视觉技术相结合的方法分选马铃薯中的异物,最高生产率可达45 t/h。王荣本等[8-9]从模式识别的分类理论出发,提出基于改进的二维类间方差的多门限阈值石块分割方法。谢胜仕等[10]以明薯率和破皮率为评价指标,通过优化薯土摆动分离筛的结构和工作参数实现了薯土分离。耿金凤[11]采用支持向量机对马铃薯中的土块与石块进行分类识别研究。刘芳等[12]提出了一种改进型多尺度YOLO算法,构建了复杂环境下番茄果实快速识别网络模型,该模型对番茄图像的检测精度为97.13%,准确率为96.36%。WU等[13]利用通道剪枝算法对YOLO v4算法进行优化,模型参数量减少了96.74%,推断时间缩短了39.47%。
上述研究大都利用马铃薯与土块和石块的差异来实现土块和石块的识别。在实际生产中,马铃薯收获后其表面会附着大量泥土,只有少部分薯皮外露,现有方法易将马铃薯误判为土块。此外,某些石块的颜色和形状与马铃薯相近,也会对石块识别产生影响。因此,只有获取目标物更深层的特征信息,才能提高含杂马铃薯中土块和石块的检测精度。
YOLO[14-15]系列网络是一种基于深度卷积神经网络的对象识别和定位算法,其突出特点是运行速度快、可以用于实时检测。YOLO通过主干特征提取网络,获取输入图像的深度特征,利用特征融合进一步提高特征的有效性,能够提高目标检测的精度。本文以YOLO v4算法为基础,建立含杂马铃薯土块石块检测模型,利用通道剪枝算法对模型进行优化,以降低运算成本,提升目标检测的速度和精度。
含杂马铃薯图像数据采集于内蒙古自治区乌兰察布市商都县,拍摄于2020年9月20—27日。图像采集设备为MV-UBS31GC型工业相机。图1为图像采集示意图。
采集图像时,相机固定在马铃薯输送带上方约60 cm处,在自然光的照射下进行拍摄,拍摄结果保存为752像素×480像素的RGB图像,土块图像1 187幅,石块图像794幅,根茎图像15幅,其他杂物图像13幅。含杂马铃薯中主要杂物为土块和石块,其他杂物数量远少于土块和石块,由于用来训练模型的样本数量不足,故选择土块和石块作为主要研究对象。图2为一组输送带上马铃薯中土块石块图像,图2a、2b中表面附着有泥土的马铃薯和含水率高的土块灰度分布在[60,140]区间内;图2c、2d中含水率低的土块和石块的灰度分布在[40,210]区间内,与马铃薯灰度分布区间有较大重合。如果通过图像增强方法增加图像中目标物之间的灰度差异,利用基于灰度的阈值分割方法对图像进行分割,通过形态学处理去除背景中的小目标,可能会因为土块石块与马铃薯灰度相同无法分割出目标。因此本文利用深度卷积神经网络提取土块石块特征,实现含杂马铃薯中土块石块的识别。
本研究共获取了1 856幅图像,利用LabelImg对每幅图像中的马铃薯、土块和石块进行人工标注,标注时以目标的最小外接矩形作为真实框。为丰富目标物的背景,采用Mosaic数据增强[16-17]方法,通过读取4幅不同图像,分别对4幅图像进行翻转、缩放和色域变化等操作,并且将4幅图像按左上、左下、右下和右上4个方向位置摆好,最后进行图像组合和真实框组合。结果如图3所示。通过以上方法,最终将数据集样本图像扩增至8 621幅,随机选取其中70%(6 035幅)作为训练集,30%(2 586幅)作为测试集。
土块因含水率不同表现出不同的形状和颜色[18],本研究图像数据的采集时间分别是08:00—12:00和14:00—18:00,以保证本文方法对不同土块形态的适应性。
研究所用计算机为Intel® CoreTMi7-10700k,5.1 GHz处理器,运行内存为16 GB,存储内存为256 GB,11GB NVIDIA RTX2080ti GPU,开发环境为Python 3.7。
含杂马铃薯中土块石块快速检测的技术路线如图4所示。将人工标注的土块石块数据输入YOLO v4模型中进行训练和微调,实现模型对目标的快速识别。通过利用通道剪枝算法对模型中冗余通道和权重参数进行修剪,从而在保证精度的情况下简化模型的结构和参数。
YOLO v4目标检测算法是YOLO v3目标检测算法的改进版,相较于YOLO v3目标检测算法,该算法分别从数据增强、主干特征提取网络、特征金字塔、损失函数和激活函数等方面进行了优化,提高了该算法实时检测的速度和精度[19]。YOLO v4通过主干特征提取网络CSPDarknet53实现输入图像的特征提取,利用PANet(Path aggregation network)实现不同输出层之间的特征融合,在分类回归层仍然沿用YOLO v3的结构。本文基于YOLO v4算法建立的含杂马铃薯中土块石块的检测识别模型主要由以下4个模块构成:CSP(Center and scale prediction)模块将原来残差块的堆叠划分成了两部分,一部分继续进行残差块的堆叠,另一部分只经少量处理再与输出相连,能够提高网络的学习能力。CBM(Convolution,batch normalization and Mish)模块用来提取输入图像特征,包括卷积、标准化和Mish激活函数处理。CBL(Convolution, batch normalization and LeakyReLU)模块同样用来提取图像特征,与CBM模块不同的是,该模块的激活函数为LeakyReLU。SPP(Spatial pyramid pooling)模块利用不同尺度的最大池化对输入特征层进行池化后再进行堆叠,能够极大增加感受野。
为提高模型的检测效率,设定输入图像尺寸为416像素×416像素。YOLO v4模型的主要参数为:学习率0.001,迭代次数8 000,类别为2。在设定好模型参数后,分别将训练集和测试集中的数据输入YOLO v4模型中进行处理。YOLO v4模型的损失值(L)主要由边界框损失值(LCIoU)、置信度损失值(Lconf)和类别损失值(Lclass)组成[20],损失值计算式为
L=LCIoU+Lconf+Lclass
(1)
(2)
(3)
(4)
BCE(,n)=-lgn-(1-)lg(1-n)
(5)
(6)
(7)
(8)
式中IoU——预测框与真实框交集和并集的比值
a——权重系数
v——长宽相似比
d——预测框和真实框中心点间的欧氏距离
c——预测框和真实框所组成的最小闭包区域对角线的距离
wgt、hgt——真实框的宽和高
w、h——预测框的宽和高
S——网格数量
pc——第i个网格的第j个先验框负责物体时的交叉熵
B——每个网格中先验框的数量
n——第i个网格的第j个先验框预测的类
p——当前先验框有物体的概率
本文对YOLO v4模型进行8 000次迭代,图5为损失函数的变化趋势。从图5中可以看出,损失函数在迭代的初期下降迅速,表明模型正在快速拟合,模型的学习效率较高。随着迭代的进行,约在1 800次时,模型损失值减小速度开始变缓,迭代至4 000次时,损失值在0.3附近波动,模型达到稳定状态。
本文提出的YOLO v4模型检测结果如图6所示,在复杂背景下模型能够准确识别出马铃薯、土块和石块,识别结果不受目标物表面泥土以及土块含水量的影响,证明了该检测模型的有效性,为模型剪枝提供了基础。
本文所建立的YOLO v4模型虽能实现收获后马铃薯中杂物的检测,但模型的结构和参数数量较大,计算耗时较大,另一方面,含杂马铃薯中土块石块的检测一般在田间进行,需要与输送设备配合使用。因此,为提高检测模型的实用性,降低模型的计算量,有必要对模型进行修剪。
通道剪枝算法能够修剪掉模型中不重要的通道以及相关的输入输出关系[21]。与分层剪枝算法相比,该算法减少了需要存储的参数量,对硬件的要求更低,更容易部署在小型移动设备上[13-14]。本文在保证精度的基础上利用通道剪枝算法对YOLO v4模型进行修剪。
通道剪枝算法实现原理如图7所示,在模型训练期间,利用网络中批归一化(BN)层[22]的γ系数对每个输入通道的贡献率进行评分。将贡献率高的通道(蓝线)进行保留,贡献率低的通道(红线)进行修剪,修剪后的模型结构更加紧凑(右侧)。
模型剪枝的具体步骤如下:
(1)在模型训练期间,通过对网络BN层的γ系数施加L1正则约束,使模型朝着结构性稀疏的方向调整参数。
(2)在完成稀疏训练后,模型便按照既定的剪枝率进行修剪,从而降低模型占用的存储空间。
(3)剪枝完成后,对模型进行微调以有效恢复剪枝造成的精度损失。
通道剪枝算法损失函数为
(9)
式(9)中等号右侧第1项为网络训练的损失函数;x和y分别为训练的输入和输出;W为网络的训练参数;第2项为BN层γ系数的L1正则约束项;λ为惩罚因子。
本文通道剪枝处理的基本参数设置如表1所示。
表1 通道剪枝的基本参数设定
各BN层γ系数分布中心的变化趋势如图8所示,图中γ系数随着训练的进行逐渐趋近于0,只有部分γ系数未衰减到0,说明γ系数正逐渐变得稀疏。直到迭代300次时,γ系数趋于稳定,说明稀疏训练已达到稳定状态。稀疏训练完成后,以0.8为剪枝率对YOLO v4模型进行通道修剪。剪枝后各层通道数量变化如图9所示,各个卷积层的通道数量都得到了大幅度降低,证明该剪枝算法是有效的。
剪枝结果如表2所示,剪枝后模型的参数量减少了94.37%,模型存储空间下降了187.35 MB,前向运算时间缩短了0.02 s,mAP下降了2.1个百分点。微调后模型参数和占用空间略有增加,但其精度仍与剪枝前相近,前向传播时间也没有明显变化。结果表明,剪枝处理能够在保证模型原有精度的情况下对模型进行简化。
表2 微调后模型参数
选用平均精度均值(mAP)、准确率P、召回率R和检测速度作为模型性能的评价指标。
模型经非极大抑制(Non maximum suppression,NMS)处理后,选取置信度大于0.5的预测框为正样本,反之为负样本。
基于剪枝算法的YOLO v4检测模型对2 586幅图像的识别准确率为91.43%,召回率为97.64%,平均IoU为87.25%,mAP为96.42%,检测速度为78.49 f/s。识别结果表明,该模型检测精度高,检测速度快,为收获后马铃薯在线除杂提供了技术基础。
在目标检测领域,Faster R-CNN[23]、Tiny-YOLO v2、YOLO v3[24]、SSD[25]都有较高的检测精度,为验证本文方法的有效性,使用本文训练集对这4种模型和YOLO v4模型进行训练,使用测试集数据对这5种算法性能进行评估,评估结果如表3所示。
表3 5种算法的性能评估
与其他5种模型相比,本文方法的准确率更高。剪枝后的YOLO v4 模型的mAP相比剪枝前的YOLO v4模型下降了2.1个百分点,微调后模型精度仍与剪枝前相近。在检测速度方面,YOLO v3和SSD虽然比本文方法大,但mAP分别比本文方法低5.65、10.78个百分点。虽然YOLO v3在检测速度和准确率两方面与本文方法相近,但在模型存储空间方面,本文方法有绝对优势,本文方法比Tiny-YOLO v2小49.82 MB。
综上所述,与其他5种模型相比,本文方法有较高的mAP和较高的检测速度,其中mAP比Faster R-CNN、Tiny-YOLO v2、YOLO v3、SSD高11.2、11.5、5.65、10.78个百分点,比YOLO v4模型低0.04个百分点。检测速度分别比Faster R-CNN、Tiny-YOLO v2和YOLO v4高27.73、38.17、7.58 f/s。本文方法检测准确率高,检测速度快,剪枝处理后占用空间小,证明基于剪枝算法的YOLO v4检测模型具有较高的实用性,可用于收获后含杂马铃薯中土块石块的检测。
比较了在不同剪枝率下两种模型的各项性能,结果如表4所示,以剪枝率0.8和0.97分别对YOLO v3模型和YOLO v4模型进行处理,并与未作剪枝处理的模型进行比较。
表4 不同剪枝率模型性能对比
每秒浮点运算次数和模型存储空间都得到了大幅度压缩,剪枝率为0.97的YOLO v4模型存储空间为14.68 MB,模型存储空间被压缩到原始模型存储空间的7.24%,剪枝率为0.8的模型被压缩到原始模型的10.23%。
在模型性能方面,剪枝处理会在一定程度上降低模型的mAP,但在较大的剪枝率(0.97)下,mAP仅下降了约3个百分点,小的剪枝率则下降的更少。对比两种模型剪枝与不剪枝的结果,模型各项性能得到一定的提升,说明剪枝处理在当前数据集中有积极效果。
在运算速度上,剪枝率0.97的YOLO v3模型速度相比原始模型提升了38.71%,剪枝率0.8的模型相比原模型提升了12.9%;剪枝率0.97的YOLO v4模型速度相比原始模型提升了40.96%,剪枝率0.8的模型相比原模型提升了24.1%,说明剪枝处理能有效提高模型前向运算速度。
提出了基于改进YOLO v4模型的含杂马铃薯中土块石块的检测方法。YOLO v4模型以CSPDarknet53为主干特征提取网络,在保证检测准确率的前提下,利用通道剪枝算法对模型进行剪枝处理,以简化模型结构、降低运算量。采用Mosaic数据增强方法扩充图像数据集(8 621幅图像),对模型进行微调,实现了马铃薯中土块石块的检测。测试结果表明,模型参数量减少了94.37%,模型存储空间下降了187.35 MB,前向运算时间缩短了0.02 s,mAP为96.42%,模型存储空间为20.75 MB,检测速度为78.49 f/s,满足实际生产需要,可应用于收获后马铃薯的除杂处理。