朱逸航, 张延宁, 张小敏, 林洋洋, 耿金凤, 应义斌, 饶秀勤*
(1.浙江大学 生物系统工程与食品科学学院,浙江 杭州 310058; 2.农业农村部农产品产地处理装备重点实验室,浙江 杭州 310058;3.枣庄学院机电工程学院,山东 枣庄 277101; 4.新多集团有限公司,浙江 永康 321300)
农机在田间作业时的道路识别与导航控制是我国农业从机械化向智能化发展过程中不可或缺的一部分[1],目前智能农机在田间的路径导航以使用卫星定位系统导航以及机器视觉导航为主[2]。目前基于卫星定位系统的导航技术精度有限,适用于农机行走路径确定、行走方式以直线为主的场景,以大田路径规划为主[3]。而在棉花田中实际作业时,存在种植行间距窄、作物实际种植行并不完全是直线等情况,以及田间先遣路径难以保持稳定等问题,因此,智能农机的导航需要在实际情况下进行调整[4-6]。
基于机器视觉的导航可以较好地解决此问题,对棉花垄间路径进行识别,为智能作业机械提供导航信息。但目前基于机器视觉的导航方案依旧面临田间光照环境变化和非结构化道路自身特征过于复杂的挑战[7-10]。同时基于视觉的导航方案主要任务是对行进中农机的路径进行实时调整,而图像数据有信息量大、计算设备处理较慢的固有特征,所以实时性也是机器视觉导航方案的另一大挑战[11-12]。
近年来,深度学习在机器视觉领域发展迅速[13],其中的卷积神经网络算法更是被广泛应用于各类农业的视觉任务场景[14],并取得较好的效果。在常规道路识别方面,卷积神经网络已被广泛应用于结构化道路下的汽车自动驾驶[15]。同时,使用基于深度学习的机器视觉技术可以避免因人为选择图像特征而产生的局限性[9],使视觉算法拥有更好的鲁棒性和精确性。
基于深度学习算法的非结构化道路识别领域,宋广虎等[16]使用FCN在葡萄种植园中实现准确导航检测行间道路,李云伍等[17]使用FCN实现丘陵山区田间道路场景像素级的预测,Lin等[11]在FCN的基础上提出Enet对茶叶种植场景进行语义分割,得到茶行轮廓,为骑式采茶机的茶叶采收提供实时导航。
本文采用卷积神经网络对单目相机采集的田间道路图像数据进行分割,获取棉花垄间的主要道路。本监测使用自然光照下拍摄的棉花行间道路图像,对2种主流的分割网络FCN[18]和Unet[19]分别进行语义分割试验和性能对比,并对Unet网络进行了优化,降低深度学习算法的资源消耗,为其在嵌入式设备的部署提供支持。
1.1 试验数据集构建
本文使用VisionDatum公司的Mars2000-50gc相机在安徽省安庆市望江县棉花试验田采集试验图像数据,采集时相机安装于移动平台上,在移动平台移动时不断对当前的棉花垄间状态进行采集。本试验共选取800幅分辨率为1 900×1 180像素的图片进行标注,并生成数据集。图1展现了数据集中所包含的多种场景,包括光照的变化、图片成像模糊、道路上有较多阴影、作物高密度生长遮挡垄间道路等,这些场景对于模型的鲁棒性提出较高的要求。
图1 环境复杂的棉花垄间道路
图2 数据标注
1.2 数据增强
本文所构建的数据集较小,为提高模型的鲁棒性,本文在模型训练过程中采用随机旋转90°、随机进行水平或者垂直翻转和随机调整图像色相饱和度(HSV)的方法进行数据增强。如图3所示,在每次迭代训练进行读取图片数据时,图像都会有50%的概率发生上述步骤的变化。在色相饱和度中,色调(H)的变化在20°以内,饱和度(S)的变化在30%以内,明度V的变化在20%以内。
图3 数据增强的流程
随机旋转和翻转图像为数据集中垄间道路的方向增加了多样性,而对于图片色相饱和度的随机调整则为模型适应不同的光照环境提供了进一步的保障。
1.3 语义分割
语义分割时对于图像进行像素级的分类。输入图片在通过深度神经网络处理时会被卷积层和池化层编码[20]。编码器的输出经过解码器进行解码,生成输出图像。解码器由双线性差值进行上采样确保输出图像大小与输入图像相同,并提供了每个像素的预测类别。
本文选择VGG16[21]作为全卷积网络FCN和U-net的编码器主干。VGG16由13个卷积层和3个全连接层构成。其通过5次最大池化下采样32倍来获取不同尺度的特征。
碑帖学属于书法史范畴,是具有学科交叉性的课题,需要史学理论和书法艺术素养兼备的人才。目前在碑帖学的研究人员中,有影响的多是具有书法、美术素养的学者,如曹建、金丹等,他们的研究范围广泛且提出了许多新的观点,值得思考。但应注意的是,对于碑帖学的相关课题研究需要有一定的历史理论作指导,所以培养具有历史理论基础的书法史人才迫在眉睫。
当使用FCN进行像素级分类时,VGG16需要被调整为端到端模型,其全连接层需要被改为W/32×H/32卷积层,当输入图像像素为96×96时,编码器的输出特征映射为3×3×4 096像素。在FCN的解码器部分,VGG16输出的Conv7被反卷积上采样32倍,上采样的输出为每个像素的分类,与原图分辨率一致。模型下采样次数越多,就能检测到更多不同的尺度。但在FCN网络结构中,不同尺度的特征之间的联系有限,而Unet网络是针对医学图像分析中数据量少、边际模糊及灰度范围大等问题而提出的[22]。Unet网络通过跳跃连接,将网络下采样时的高分辨率信息与上采样时的低分辨率信息通过特征叠加的方式进行整合,改善网络上采样信息不足的现状,可提高图像的分割精度(图4)。
图4 Unet网络的架构
考虑到农机导航对实时性提出了较高的要求,对Unet的网络主干进行剪枝压缩,缩小模型尺度,为实时性提供更大的保障,提出Half-Unet和Quarter-Unet两种新的训练模型。本文采取的模型剪枝策略是缩减VGG16主干中的卷积核数量,进而缩减前向传递过程中的特征图数量,用较少的特征图来保留更多的信息,具体数量如表1所式。
表1 Unet模型剪枝
2.1 试验平台
试验所用平台为运算服务器,处理器为Intel(R)Xeon(R)Gold 6147M,基准频率为2.50 GHz,内存为256 GB,图形处理器(GPU)为NVIDIA TITAN RTX,操作系统为Ubuntu 18.04.1。
2.2 模型训练
本文使用pytorch深度学习框架实现了基于VGG16主干的FCN和UNet网络,以及基于UNet网络的改进模型,并通过预先划分的640幅图像的训练集和160幅图像的验证集对模型进行训练与验证。
本文的训练网络所采用的超参数。迭代次数(Epochs)为100次,最小批处理大小(MiniBatch Size)为32,并采用学习率衰减训练策略中的学习率调整策略,分别在0~4、4~30、31~70、71~100次迭代过程中,采取0.1、0.01、0.001、0.000 1的学习率。
本文在训练过程中使用BCEDiceLoss作为损失函数,该损失函数是二分类交叉熵损失(Binary Cross EntropyLoss)BCELoss和DiceLoss的组合,损失函数公式如下:
(1)
(2)
(3)
BCEDiceLoss=0.5×BCELoss+DiceLoss。
(4)
BCELoss从像素级别上考察分类的效果,而DiceLoss是从整张图片的全局出发对分类效果进行考察。本文对于棉花垄间道路的识别更注重于全局判断的准确性,所以在BCEDiceLoss的计算中,赋予DiceLoss更高的权重。训练过程中FCN模型及U-Net模型的损失函数值曲线见图5。
图5 FCN与Unet的损失函数曲线
由图5可以看出,在迭代次数到达30次左右时,2种模型的验证集损失函数都逐渐趋于稳定,但训练集损失函数值还在继续下降,且与验证集的损失函数值逐渐拉开差距,说明模型训练到后期可能出现过拟合的现象。本文训练数据集相对较小,在模型过于复杂的情况容易发生过拟合,因此,对模型进行剪枝可以在有效降低模型复杂度的情况下,降低模型过拟合的程度。实现在基本不损害模型精度的情况下,提高模型的效率。
2.3 评价指标
在语义分割任务中,评价指标一般从运算速度、内存占用和精度3个方面进行考量。运算速度说明模型在部署后的实时性水平,内存占用说明模型在资源有限的嵌入式设备上部署的可行性。本文采取平均交并比对MIoU进行精度估算。
本文的运算速度采取每秒处理帧数(FPS)来表示。为了模拟智能农机工作场景中的嵌入式环境,本文限制了部署模型的运算算力,算力资源限制为Intel(R)Xeon(R)Gold 6147M,基准频率为2.50 GHz CPU的单一核心。内存占用是算法在运行时实际占用计算机内存资源的数值。
平均交并比(Mean IoU)是在语义分割任务中的一种标准度量,计算真实值与预测值2个集合的交集和并集之比,其公式如下:
(5)
式中,pii表示真实值为i且被预测为i的数量,为真值数量;pij表示真实值为i,被预测为j的数量,是假正的数量;pji表示真实值为j,被预测为i的数量,是假负的数量;k+1表示包含空类的类别数量,本研究k=1。
2.4 试验结果分析
由基础模型Unet与FCN性能对比可知(表2),Unet网络的性能在精度、运算速度、内存占用3个方面较FCN具有一定的优势,故将Unet选作基准模型进行后续的剪枝与优化。
表2 模型性能对比
本文首先对于Unet进行剪枝,设计了Half-Unet,Half-Unet的卷积核数量为Unet网络的一半。Half-Unet的MIoU为0.793,与Unet相当,但内存占用量为Unet的42.6%,处理速度高29.3%。
本文在Half-Unet的基础上做进一步剪枝,设计了Quarter-Unet,使其卷积核数量为Unet网络的25%,其MIoU相较于Unet下降0.014,但仍比FCN高0.018。Quarter-Unet在基本保障精度的前提下,其运算速度和内存占用具有绝对的优势。单核CPU计算下达到19.14FPS,较Unet高55%,在普通嵌入式设备的环境下可达到实时运算水平。Quarter-Unet的内存占用为19.44 MB,为Unet内存占用量的19.5%。
道路分割的实际效果如图6所示。各模型的分割精度指标MIoU的水平差异不明显,且模型在完成道路识别的任务时,与实际识别效果基本相似。因此,计算速度最快、占用存储资源最少的Quarter-Unet模型相比于其他模型拥有更大的应用价值。
图6 棉花垄间道路识别效果对比
本文提出了一种基于深度学习语义分割的棉花垄间道路识别的方法,实现了在田间自然光照及作物遮挡道路条件下棉花垄间道路的有效识别。比较了深度学习语义分割模型FCN和Unet自动识别棉花垄间道路的性能,发现了Unet模型识别棉花垄间道路精度更高,且处理时间更短。对Unet模型的VGG16主干进行优化,建立了Half-Unet和Quarter-Unet识别模型。试验结果表明,在MioU相当的情况下,Quarter-Unet模型的内存量仅为Unet的19.5%,而处理速度较其高55%,这为后续研发棉花田间智能农机导航设备提供了技术基础,也为其他作物垄间道路的识别与导航提供了技术思路。