基于全卷积神经网络方法的玉米田间杂草识别
2022-04-15李彧余心杰郭俊先
李彧 余心杰 郭俊先
摘要:杂草是危害农业和林业生产的三害之一,对农业生产、生态环境、生物多样性等均会造成一定的危害。要解决杂草问题首先需要对杂草实现高效准确的识别,通过拍摄新疆旱地玉米大苗田间图像构建数据集,提取玉米苗与杂草2类标签,使用全卷积神经网络(FCN)准确地分割2类目标实现杂草识别。利用图像翻转、镜像、对比度增强、亮度增强等4种增广方法扩增数据集,利用迁移学习技巧,对模型采取非初始参数训练,提升模型识别准确率。结果表明,选择的U-Net模型识别效果最佳,能够有效地克服阴天光照、地膜等因素干扰,实现杂草的快速准确识别,验证集识别正确率96.13%,能够满足杂草识别的实际要求。
关键词:杂草识别;全卷积神经网络;深度学习;语义分割;U-Net模型;VGG
中图分类号:S126;TP391.41 文献标志码: A
文章编号:1002-1302(2022)06-0093-08
收稿日期:2021-07-07
基金项目:国家自然科学基金面上项目(编号:61367001);新疆维吾尔自治区研究生教育创新计划科研创新项目(编号:XJ2019G165);新疆维吾尔自治区教育厅自然科学重点项目(编号:XJEDU2020I009)。
作者简介:李 彧(1995—),男,河北保定人,碩士研究生,研究方向为农业无损检测。E-mail:lxy13109995416@163.com。
通信作者:郭俊先,博士,教授,研究方向为农业无损检测。E-mail:junxianguo@163.com。
广义上杂草是指各类生长在不该长的地方的草本植物。在农业生产中定义的杂草是指生长在人工栽培的农田上,除了目的栽培作物外的所有植物,即在错误的地方生长的植物。杂草不仅与作物竞争阳光、水分和肥料,同时也挤压了作物的生存空间[1]。如果不及时处理,杂草会阻碍作物生长,导致农作物减产,损害产品的质量,甚至造成农作物绝收,给农业经济带来极大的危害[2-3]。目前,农作物与杂草的识别方法主要包括人工识别、遥感识别、机器视觉识别[4]。人工识别是通过农业从业人员的主观认知区分,不仅耗时费力,而且由于人工易疲劳还存在效率不高的限制。遥感识别使用空间和光谱信息来区分杂草,克服了人工识别的许多缺点。然而,由于遥感图像的分辨率低,不适合用于小块农田的密集杂草[5]。随着计算机技术的发展,快速精确的机器视觉识别技术在杂草识别的应用已经越来越广泛,国内外许多学者进行了相关研究[6-8]。Rojas等将主成分分析(PCA)降维与支持向量机(SVM)的识别算法相结合,以确定蔬菜作物和杂草之间颜色和质地的差异,获得了超过90%的准确率[9]。张新明等提出了用于识别玉米和杂草的改进的概率神经网络(PNN)方法,使用次优搜索方法构造特征向量,在13个特征中筛选最有效的特征,提高了识别性能和速度[10]。上述研究都是基于传统的机器学习方法进行分类或识别杂草。虽然有一定的成果,但特定特征需要被手动选择和校准,存在诸如难以提取和抗干扰能力差的问题,这使得传统的机器视觉方法解决杂草问题时存在适用性较差的缺陷。
此外,除草的主要方法是大规模喷洒农药,这不仅破坏了生态环境,消耗资源,而且还影响到农作物的食品安全[11-15]。随着智能农业的提出,农药精密喷撒技术可以有效地控制杂草的增长,实现农药利用率最大化,降低药物残留[16]。杂草的精确识别为农药精准喷洒技术奠定了理论基础,为实现精确喷撒提供了技术指导[17]。综上,有必要研究在复杂的自然背景中快速、准确的杂草识别方法。
2014年,Longj等提出改造CNN中的全连接层为卷积层,诞生了全卷积神经网络(fully convolutional networks,简称FCN),是最常见的语义分割神经网络[18]。同时反卷积层[19]的使用,让FCN可以维持图片的分辨率,保证了输入图片与输出图片的大小相等。全卷积神经网络识别杂草相对于人工识别和传统的机器视觉识别具有以下优势:(1)大田作物种植环境不适合人工作业,由于大田作物种植面积广,人工难以长时间准确地识别杂草,利用摄像头来代替人眼进行测量和判断,可有效应对需要长时间工作的杂草检测条件。(2)系统利用FCN的卷积运算自动分析各个目标特征,提取图像的目标像素分部特征、颜色特征等,拟合这些特征与杂草目标之间的相关性,建立预测模型,比较传统图像处理算法人工选取长度、颜色等特征进行分割具有更高的准确性,并且可以有效地克服地膜等遮盖物的影响。(3)算法依靠Python程序编写具有较好的移植性。代码复杂程度低,无须后续图像处理流程从而提高了识别的快速性、实时性。
基于FCN开展杂草识别系统研究,利用FCN构建杂草识别模型进行单位面积杂草识别,结合数据集扩增技术与迁移学习方法,使模型具有精确检测杂草的能力,并克服地膜、水雾等复杂背景干扰。
1 杂草识别系统地构建
1.1 设计目标
基于深度学习技术,结合新疆玉米种植的实际生产情况,在自然光下拍摄玉米大苗期田间作物图像,组成数据集。以实现杂草快速识别为目标,选择最合适的FCN模型要根据杂草识别效果,为后续杂草精准防治和清除奠定前期研究成果。
1.2 系统结构功能设计
在设计系统模块时,将系统划分为杂草提取、数据集构建、杂草识别3个模块,图1展示了每个模块的主要功能。
首先,杂草提取模块对原始杂草图像完成前期标注,从图像中分别标注2类标签:杂草、玉米苗。获得标注图像后,在数据集构建过程中对杂草标签图像进行数据扩充,包括旋转、亮度增强等。数据集扩充后按照比例划分训练集与测试集,用于后续FCN模型训练。模型构建后,各参数出于初始状态,需要依靠算法自适应调整参数使模型的损失函数曲线(loss)达到收敛。杂草检测模块利用构建的FCN模型实现杂草识别。
1.3 杂草识别计数方法设计
基于FCN方法的杂草系统将杂草检测的流程分为杂草提取、数据集构建、FCN模型构建和杂草识别等4个部分。具体流程如图2所示。
1.3.1 图像获取
玉米种植中棚内种植与露天种植的光照条件、观测条件等均存在差异,对杂草进行识别时需要克服这些干扰,采集不同光照条件下和不同时间的大田图像。试验采集图像数据时,单反相机需垂直于地面(图3),调焦至图像清晰后进行拍摄或录制(录制需后期截图)。将单反相机拍摄的每张原始图像裁剪为320像素×320像素的小幅图像,方便后期模型处理。针对采集大田图像,采用人工方式手动分割杂草、玉米苗2类标签。选取特征区域制备标签图。
1.3.2 迁移学习
在实际试验中,在训练深层神经网络时通常是不会以原始节点开始训练的。原因有二:(1)深层网络一般会配套一个数据量较大的不容易训练的数据集;(2)从原始节点训练网络调参工作复杂,模型不容易收敛,拉长了模型训练时间。通过研究相关文献,先导入其他识别模型的权重然后开始训练,模型更容易且更快收敛,即迁移学习[20]。在训练杂草识别模型前,用已经过CIFAR-10数据集训练的模型参数作为初始参数训练FCN模型,从而避免了随机参数作为初始参数传递更新。可以大大缩短培训时间,也可以弥补数据不足带来的影响。
1.3.3 数据集增强
数据集的建立包括数据集的扩展和划分。样本数据量是深度学习中的关键因素,在训练数据只有少量样本可用时,数据增强是FCN的常用方法[21]。参考相关文献使用的增强方法后,利用Keras的内置ImageDataGenerator实现图像增广:对原始图像亮度增强、对比度增强、旋转角度和翻转图像等4种处理。这种扩展不仅可以提高分类效果,而且提高了模型的泛化能力。
研究中使用的亮度调节和对比度调节方法的数学原理如公式(1)所示:
g(x)=αf(x)+β。(1)
通常将参数α>0和β称为增益和偏置参数,分别控制对比度和亮度。假定f(x)作为源图像像素,g(x)输出图像像素,上述公式更改为式(2):
g(i,j)=αf(i,j)+β。(2)
式中:i、j分别表示像素位于第i行和第j列。
将原始图像翻转到一定角度以获得新图像。从数学原理上,这种转换表示见公式(3)。
通常认为,图像应该绕中心点旋转,但图像的原点在左上角。计算时,首先将左上角的原点移动到图像的中心。假设一个点(X0,Y0),图像宽度为W,高度为H,原点变换后的点为(X1,Y1),变换如下:
[X1 Y1 1]=[X0 Y0 1]1000-10-0.5W0.5H1。(3)
图像旋转角度为θ,(X1,Y1)经旋转θ后换为(X2,Y2),公式(4)如下:
[X2 Y2 1]=[X1 Y1 1]cosθ-sinθ0sinθcosθ0001。(4)
旋转后的图像的宽度为W′,高度为H′,则从笛卡儿原点转换回左上角的公式(5)如下:
[X3 Y3 1]=[X2 Y2 1]1000-100.5W′0.5H′1。(5)
于是,可以通过公式(6)将原始图像的点转换为旋转后的点。
[X3 Y3 1]=[X0 Y0 1]1000-10-0.5W′0.5H′1
cosθ-sinθ0sinθcosθ0001
1000-100.5W′0.5H′1。(6)
公式(3)镜像原始图像以获得新图像。在数学原理上,此转换表示为公式(7)。
与翻转原理类似,假设原始图像的高度为H,宽度为W,水平镜像变换后,原始图像中像素点 P(x0,y0) 变为新的图像坐标P′(W-x0,y0)。如果用 (x0,y0) 表示原始图像的坐标,水平镜像变换后图像的坐标为(x1,y1),则两者之间的关系可以表示为:
x1y11=-10W010001y0x01。(7)
扩展图像的示例在图4中显示。原始图像数据集共有3 600张可用图像,通过该数据集扩展方法后共有14 400张图像。数据集增广后,按照4 ∶1比例组成训练集与测试集。
1.3.4 FCN识别模型
当FCN模型开始训练,输入层经过卷积的多次迭代和池化层降参,提取杂草特征,降噪并减小参数量,整个过程为向前传播。与此同时,在验证组的图像将反向传播调整FCN模型权重和偏置参数,根据识别准确率不断优化现有网络模型。自动修正FCN模型识别杂草正确率。反卷积层将数据恢复成与输入图像大小相同的识别图像输出。
FCN模型大多基于VGG-16结构设计。VGG(visual geometry group)是由牛津大学科研团队[22]提出并改进的一种CNN模型。该团队提出了多种深度CNN网络结构,其中之一被提交ImageNet大视觉识别挑战(ILSVRC)—2013,因为该模型有13卷积层和3个全连接层。所以也称为VGG-16。一经问世它就立刻成为流行网络,其的TOP-5测试精度高达92.7%。图5显示了VGG-16的结构。VGG-16和它的前辈结构之间的主要区别在于,第1层使用一组具有小的感受域的卷積层,而不是具有大的感受域的卷积核。这样设计可以使用更少的参数和多个非线性层,使得决策函数更有辨别力,同时使模型更容易收敛。
U-Net是经典的全卷积神经网络的一种变型,其结构类似于字母U,因此得名U-Net[23]。整个U形网神经网络主要由2个部分组成:搜索路径和扩展路径。搜索路径主要用于捕获在图片中的上下文信息,相对称延伸路径是准确地定位图片被分割的部分。随着神经网络深度的不断增加,训练的结构越发复杂,这需要大量的样本和计算资源。U-Net 诞生的一个主要原因是可以对一些比较少的样本数据进行训练。U-Net基于传统的FCN进行改进,并且利用数据增强,该模型在医学图像识别中有广泛应用,图6为U-Net模型结构。
基于以上分析,研究尝试多种FCN模型,基本结构如图7所示。经过多次卷积操作,FCN会将图像展开,充分获取特征。卷积运算部分共设立4个池化层,由于卷积操作会使图像数据量呈现指数级增长,给计算机运算过程造成极大负担,池化又称降采样过程,通过一定规则(取平均值或最大值),缩小矩阵规模,实现解决计算成本。通过4次降采样可以大大降低网络结构中的权重参数数量。设置丢弃层临时冻结一半卷积核,从而抑制过拟合现象。设置分类函数,通过Softmax函数实现杂草与玉米幼苗的语义分割。
2 结果与分析
2.1 硬件需求
由Python 3.6.5编程实现基于卷积神经网络的杂草识别模型构建,计算机硬件配置为Inteli 5处理器,8 GB内存,NVIDIA RTX 2060(6 GB显存)。所有的FCN模型训练参数设置如下:批处理Batch Size参数为64,权重参数初始学习速率为0.001,动量因子设置为0.9,使用L2正则化,正则化参数λ=0.000 5。
2.2 杂草提取
田间采集的原始图像数据包含73幅原始大田图像。图像数据采集于新疆农业科学院综合试验场种植基地。采集时间为2019年5月20日 09:30—13:00,天气阴,光照度相对较低。原始图像尺寸为4 496像素×3 000像素,杂草种类较单一,主要为旱作物田间常见的藜(灰灰菜),部分杂草图像如图8所示。
将原始图像裁剪为多张小幅图像后,剔除无目标的空图与模糊图像。标签提取方法如图9所示,图像导入后,图像标注软件为labelme,软件会用不同颜色填充杂草、玉米苗2类标签图像。预先设定images_prepped_test文件夹与annotations_prepped_test文件夹,分别保存所提取的2类标签图像,标注图像与原图编号一一对应[24]。
2.3 数据集构建
提高FCN最后识别精度的通用方法就是增加输入数据,因此应尽力丰富数据集[25]。采用亮度增强、对比度增强、方向翻转以及镜像等方式对数据集进行扩充。
在剔除一些低质量的无目标图像后本试验数据集共6 640张目标图片,数据集分组编成训练集、验证集和测试集。原图与对应的标注图按照3 ∶1比例组成训练集与测试集。训练集图像储存于 data_images_prepped_train 文件夹,对应标签图储存在data_annotations_prepped_train文件夹中。
2.4 FCN模型构建
在Keras封装函数中选择covn_base=keras.applications.VGG16(weights,include_top),设置weight=imagenet,由于使用了迁移学习技巧,将include_top=False,不引入内置分类器。模型损失函数选择crossentropy,其计算公式为:
L[fω(X),Y]=-1N∑Ni=1yilogfω(xi)。
式中:yi表示期望输出;Xi表示原始的实际输出;N表示样本总数。利用函数softmax对杂草与玉米苗目标分类,公式为
yi=exi∑Ck=1exk。
式中:C为通道数;xi为模型输出的某个像素的值;yi为该像素对应的预测概率。损失函数优化器采用随机梯度下降法。
mt+1=ρ·mr+Δω;
ωt+1=ωt-lr·mt+1。
式中:mt为当前动量;mt+1为更新后的动量;ωt为当前参数;ωt+1为更新后的参数;Δω为反向传播得到的梯度;ρ为取值0到1之间的权重参数;lr为更新的步长,一般取值在0到1之间。
训练阶段,预测后的图像会在像素级别实现分类,上色功能由Opencv实现,COLORS=np.random.randint(0,255,size=(len(CLASSES)-1,3)与dtype=“uint8”),COLORS=np.vs tack([[0,0,0],COLORS]).astype(“uint8”),将各类目标用随机颜色填充(图10)。
2.5 模型测试结果
系统采用梯度下降算法(SGD)作为模型优化器对FCN进行训练。模型训练完成后,系统将验证识别正确率显示在线形图中。玉米田大苗杂草数据测试集共900张图片,包含玉米苗图像、杂草图像与二者混合图像分别测试3种网络模型,得到玉米大苗期杂草识别结果如表1所示。
经过1 000个epoch训练模型的训练集的损失函数与准确率曲线已然收敛,从测试集的结果来看,U-Net模型在验证集上的识别准确率达到了96.13%。在阴天场景与地膜等遮挡物的影响下达到了较高的杂草识别效果,模型相关的损失函数曲线与正确率、交并比图像如图11所示。
由图12可知,本研究所构建的杂草识别模型对于阴天和地膜影响下的杂草识别效果良好,与人眼主观判断一致。
由表1可知,测试的3种网络模型中,U-Net表现性能较好,对测试的玉米大苗期杂草正确識别率达96.13%。由于U-Net网络被广泛应用于医学领域,并且其结构中的跳跃结构可以使分割边缘更平滑,故而有较好的识别准确率。FCN-8s模型识别边缘模糊,不利于后续进一步研究,且正确率略低。有研究学者曾使用更深层的神经网络进行识别研究,如Deeplab等,但由于样本丰富度与FCN模型的参数微调效果息息相关,杂草数据集样本数量短时间内难以扩大,同时随着数据的扩大,硬件条件又会有所限制,FCN模型训练的关键是使模型参数量有足够的数据来微调。盲目增加模型深度,本研究中有限的数据样本可能导致模型过拟合。由于采集的玉米大苗期杂草样本图像有限,深度进一步加深的FCN模型,如Deeplab等,两者之间反而不能很好匹配。
参考文献:
[1]黄红娟,张朝贤,姜翠兰,等. 北疆棉田杂草多样性及群落组成[J]. 杂草学报,2020,38(1):7-13.
[2]付瑞霞,王俊平,董立尧. 防除稻麦连作小麦田主要杂草的高活性除草劑室内筛选[J]. 杂草学报,2020,38(1):68-73.
[3]郭云忠,胡 杰,李思娟,等. 陕西关中灌区麦田杂草发生规律及防治指标[J]. 杂草学报,2021,39(1):38-42.
[4]毛文华,王一鸣,张小超,等. 基于机器视觉的田间杂草识别技术研究进展[J]. 农业工程学报,2004,20(5):43-46.
[5]颜秉忠. 机器视觉技术在玉米苗期杂草识别中的应用[J]. 农机化研究,2018,40(3):212-216.
[6]Lottes P,Hrferlin M,Sander S,et al. Effective vision-based classification for separating sugar beets and weeds for precision farming[J]. Journal of Field Robotics,2017,34(6):1160-1178.
[7]Peteinatos G G,Reichel P,Karouta J,et al. Weed identification in maize,sunflower,and potatoes with the aid of convolutional neural networks[J]. Remote Sensing.2020,12(24):4185-4185
[8]Wang Z B,Li H L,Zhu Y,et al. Review of plant identification based on image processing[J]. Archives of Computational Methods in Engineering,2017,24(3):637-654.
[9]Rojas C P,Guzmán L S,Toledo N F V. Weed recognition by SVM texture feature classification in outdoor vegetable crops images[J]. Ingeniería e Investigación,2017,37(1):68.
[10]张新明,涂 强,冯梦清. 基于改进概率神经网络的玉米与杂草识别[J]. 山西大学学报(自然科学版),2015,38(3):432-438.
[11]袁洪波,赵努东,程 曼. 基于图像处理的田间杂草识别研究进展与展望[J]. 农业机械学报,2020,51(增刊2):323-334.
[12]齐秀杰. 探讨水稻病虫害防治技术与对策[J]. 农民致富之友,2019(5):66.
[13]郑加强,徐幼林. 环境友好型农药喷施机械研究进展与展望[J]. 农业机械学报,2021,52(3):1-16.
[14]寇思荣. 甘肃省玉米产业现状及玉米育种方向探讨[J]. 甘肃科技,2018,34(4):6-8.
[15]高立强,杨家荣,张彦龙,等. 几种除草剂减量施用防除玉米田杂草的效果[J]. 杂草学报,2020,38(4):31-38.
[16]齐 飞,朱 明,周新群,等. 农业工程与中国农业现代化相互关系分析[J]. 农业工程学报,2015,31(1):1-10.
[17]刘金浩,王春燕,王宇航,等. 带农作物识别功能的无人机农药喷洒系统的研究[J]. 农业灾害研究,2020,10(7):185-186.
[18]Shelhamer E,Long J,Darrell T.Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(4):640-651.
[19]Zeiler M D,Taylor G W,Fergus R.Adaptive deconvolutional networks for mid and high level feature learning[C]//2011 International Conference on Computer Vision,November 6-13,2011,Barcelona:IEEE,2011:2018-2025.
[20]Mane D T,Kulkarni U V. Visualizing and understanding customized convolutional neural network for recognition of handwritten marathi numerals[J]. Procedia Computer Science,2018,132:1123-1137.
[21]Chollet F. Deep learning with Python[M]. 张 亮,译. 北京:人民邮电出版社,2018:110-111.
[22]Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[J]. Computer Science,2014,36(v1):1409-1425.
[23]Dolz J,Ben Ayed I,Desrosiers C.Dense multi-path U-net for ischemic stroke lesion segmentation in multiple image modalities[M]//Brainlesion:glioma,multiple sclerosis,stroke and traumatic brain injuries. Cham:Springer International Publishing,2019:271-282.
[24]余心杰,王 昊,李 彧,等. 一种基于全卷积神经网络的对虾养殖残饵计数方法:CN110826592A[P]. 2020-02-21.
[25]王 琛,徐维超. 人脸识别准确率与图像参数关系比较分析[J]. 电子世界,2019(5):89-91.