基于Cycle-GAN+Faster R-CNN的除草机器人杂草识别算法研究*
2021-08-20张瑞森万兴鸿陈子颖唐亚南
张瑞森,万兴鸿,陈子颖,高 昕,唐亚南
(成都工业学院自动化与电气工程学院,四川 成都 611730)
0 引言
农业农村部种植业司的调查统计显示,我国蔬菜和粮食作物的产量平稳增长,但每年杂草都会造成粮食和蔬菜的减产,杂草是影响农作物产量和食品安全的主要因素之一[1]。但目前田地里清除杂草常用的方式是人工、畜力、农药,这些方式存在效率低、污染大、耗时耗力、使用有局限等问题[2]。所以,利用机器视觉发展的先进成果,结合人工智能机器人的发展趋势,精准有效地对农田里的杂草进行识别与防治,从而提高农业的智能装备水平,是农业未来发展的一条重要改革路径。
为了使除草的效率更高,首先需要提高杂草的识别度。近年来,深度学习作为图像识别和目标检测的先进技术手段被广泛使用,它具有学习能力强、覆盖范围广、适应力好等优点,但是直接用于杂草识别存在着训练样本缺乏的问题[3]。由于杂草的种类繁多,需要使机器人对杂草的识别率更高,减少机器人在除草过程中对农作物的伤害,所以本课题采用循环一致性生成对抗网络(cycle-generative adversarial networks,Cycle-GAN)的方法对较容易取得的植株样本进行样本扩增,再结合快速区域卷积神经网络(Faster R-CNN)算法训练初始化模型,在提升农作物识别的过程中实现了杂草的反向识别。由于新的混合算法同时提升了识别速度和识别率,所以可用于实时检测,在农田除草、园林杂草清理等方面具有应用价值。
1 机器人整体结构
除草机器人是基于麦弗逊式悬架结构搭建的四轮移动平台,该结构可以使机器人在凹凸不平的地形里较平稳地行进以保护平台上搭载的精密器件。平台上搭载有视觉模组、主控模块、机械臂等设备。视觉模组位于机器人的上方,它能俯视地面,对农田的环境进行实时图像采集传送到主控模块。主控模块采用ARDUINO UNO R3芯片对接收到的实时视频进行分析处理,在识别到杂草后将除草信号传至机械臂,机械臂进行除草作业,在杂草被切除后机械臂又将信息反馈给主控模块,此时,主控模块进入下一轮的杂草检测,机械臂便进入除草等待状态。
机器人移动平台的运动控制过程是通过主控模块发送行进或停止信号给辅助控制模块STM32芯片来实现的。在检测到杂草时主控模块会向辅助模块发出停止信号,机器人原地等待;在主控模块接收到机械臂的反馈后又会发出行进信号,辅助模块控制机器人继续行进。整个过程中机器人的多个控制模块协同工作,大大提高了工作效率,可适用于多种场景的工作。该除草机器人的系统结构如图1所示,3D结构设计图如图2所示[4]。
图1 除草机器人的系统结构图
图2 除草机器人3D结构设计图
2 杂草识别算法实现
2.1 Cycle-GAN网络
生成式对抗网络(GAN)是一种无监督学习的深度学习模型[5],由生成器和判别器两个模型组成[6]。生成器主要通过风格迁移、物体变形等方式生成更多的图像数据,然后由判别器去判断图像是否为真实存在的,最后通过反复的固定判别器训练生成器、固定生成器训练判别器的方式对网络进行训练,直至判别器不能区分图片的真实性时完成训练。Cycle-GAN网络则是包含了两个相互对称的GAN网络,并通过共用两个生成器和两个判别器来实现图像之间的端到端的相互映射[7]。在文献[8]中使用了一个对抗损失函数学习映射G:X→Y,使判别器不能将图片G(X)和图片Y准确地区分开来,又为映射G添加一个相反映射F:Y→X,使之成对,同时还加入了一个循环一致性损失函数,以确保F(G(X))≈X。其对抗损失函数为:
式(1)、式(2)中,DX、DY分别为X和Y的判别器,Pdata为真实图像的分布,~为服从关系,(·)为期望。
循环一致性损失函数为:
式(3)中,‖·‖表示l1范数。
2.2 改进的Faster R-CNN网络
本课题将Cycle-GAN的图像生成能力与Faster RCNN训练网络结合,训练流程大致可分为样本扩增、特征图提取、区域生成网络、ROI池化层、边界分类与边界框回归五部分[9],其流程图如图3所示。
图3 改进的Faster R-CNN流程图
1)将采集到的图像输入到Cycle-GAN中,通过把图像风格转换的方式进行扩增,综合两者所得的样本作为数据集进行图像分类,然后将每张完整的图片输入到卷积层中进行特征提取,获取特征图。由于卷积残差网络ResNet 101只学习输入和输出有差别的部分,可以保护信息的完整性[10],在一定程度上可以解决很深的网络无法训练、梯度爆炸等问题。所以在文中采用ResNet 101作为特征图像提取的网络。
2)将经过卷积层提取到的特征图片发送到RPN网络中生成候选区域。通过非极大值抑制网络提取置信度高的检测框,采用二分类函数对目标和背景进行裁定,获取区域候选框的精确位置。
3)通过池化层将输入的特征图像转换成固定尺寸的输出。
4)将固定大小的特征图进行全连接操作,训练其分类概率和边框回归,最后输出候选区域所属的类和在图像中的精确位置。
3 实验结果
3.1 数据集准备
由于实际环境中种植的植株种类远少于生长在该环境下的杂草种类,所以本课题通过识别农田中种植的农作物的方式来反向识别杂草。在当地蚕豆种植地调查得知,蚕豆的种植间距为40 cm左右,有足够的空间供除草机器人正常工作,所以文中以蚕豆为例进行试验。采集图像样本为蚕豆开花前、花期时在不同光线下的照片以及生长在其周围的杂草和其他农作物,每次图像采集均在晴天、阴天不同光线状态下进行,代表田间除草作业时可能的环境条件[11]。采集的图像均为实际种植环境中获得,分辨率为1 920×1 080像素,其中大部分图像除蚕豆外还含豌豆等多种其他农作物与多种类型的杂草,如图4所示。由Cycle-GAN网络扩增生成的图像样本如图5所示,从图5也可看出本课题所使用的Cycle-GAN网络可以增加样本的数目,达到增强样本的效果。
图4 不同光线下采集的蚕豆图(左:阴天,右:晴天)
图5 Cycle-GAN网络生成的图像样本
将Cycle-GAN网络扩增的样本和在自然环境下采集的样本通过MATLAB中的标注工具Image Labeler进行人工分类和标记,构建数据库,图片标注界面如图6所示。
图6 Image Labeler标注界面
3.2 试验过程
本课题采用MATLAB作为训练平台,在训练集训练过程中,设置训练轮数为20轮,每轮迭代50次,学习效率均为1×10-4,训练时将数据集中的图片随机不重复地[12]输入到Faster R-CNN或改进的Faster R-CNN网络中,得到训练时的小批量损失曲线如图7所示,从曲线图可看出在改进的网络中训练的小批量损失更小,学习效率更高。
图7 小批量损失曲线
为了进一步探究改进的Faster R-CNN网络在杂草识别方面的可靠性,接下来对两种网络的实时训练准确率进行了试验,结果如图8所示。从图8可以看出,改进的Faster R-CNN网络在样本量缺少的环境下训练结果更好,准确率更高。
图8 实时识别准确率曲线
为了检测本课题提出的改进的Faster R-CNN网络在农田杂草识别中的适用性,在相同条件下对同一数据集处于不同的网络中进行训练,得到结果如表1所示。
表1 不同R-CNN网络试验结果对比
表1结果表明,在训练样本稀缺时三种网络都能够识别出农田中的农作物从而确定出杂草的位置,但是每种网络的识别能力不同[12]。Fast R-CNN和Faster R-CNN在缺少训练样本时的训练结果分别为83.56%与87.59%,而文中提出的将循环一致性生成对抗网络置于Faster R-CNN网络结构前的新网络识别率可以达95.06%。由此可见,本课题提出的杂草识别方法在样本稀缺的条件下有更高的容错率,杂草识别度更高,可以适用于农田杂草的识别处理。
4 结论
针对农作物中杂草识别问题的研究,本课题采用基于Cycle-GAN的图像生成技术解决样本不足的问题,文中还采用反向识别农作物的方法加快杂草识别速度,大大减小了训练样本的时间和种类。现阶段平均目标的识别准确率为95.06%,后续将继续探索提高初始化模型的训练速度,提高检测精度的研究。
由于知识、技术有限,且受农作物种植季节的影响,本课题仅针对蚕豆种植地出现有较多杂草的样本进行训练识别,接下来将会在更多的农作物中进行识别精度的训练,并将该杂草算法应用到硬件系统进行实操训练。