基于无人机低空遥感的水稻田间杂草分布图研究

2020-11-29 13:04邓继忠张亚莉严智威谢尧庆
华南农业大学学报 2020年6期
关键词:水稻田杂草卷积

朱 圣,邓继忠,张亚莉,杨 畅,严智威,谢尧庆

(国家精准农业航空施药技术国际联合研究中心/华南农业大学 工程学院,广东 广州 510642)

化学除草是目前最有效且广泛采用的水稻田杂草管控方式[1],常用的方法是对整个作业区域均匀和覆盖式的喷洒除草[2],以无序的“点状”或“片状”形式存在的杂草会导致农药喷洒过量。“精准农业航空”中基于遥感分析的精准施药为解决农药过量施用问题提供了一种新思路[3-4]。精准施药的首要任务是获取水稻田的遥感图像并分析其中的杂草分布状况,得到网格形状的杂草分布图。水稻田图像中水稻及杂草颜色相近,若依据图像识别其差异,则要求遥感图像具有较高的空间分辨率。近年来无人机低空遥感因操作简单、节省人力物力并可获得高分辨率影像的优势为农作物分类调查提供了新思路[5],相比传统卫星影像,具有获取方式更灵活、时效高等特点,在农情监测、精准农业等领域得到越来越多的应用[6-7]。利用无人机采集水稻田的遥感图像并进行农情分析在国内外已有类似的研究。Barrero等[8]使用神经网络(Neural network)对水稻杂草航空图像进行检测,检测准确率高达99%;Barrero等[9]根据无人机拍摄的图像提出一种融合低分辨率多光谱和高分辨率RGB图像的方法检测水稻田杂草,采用神经网络对RGB、RGB+NGRDI和融合RGB-NGRDI 共3种图像进行检测,结果表明基于融合图像的杂草检测精度最高,在70%~85%之间;Uto等[10]使用无人机获取水稻的高光谱数据,通过频繁地监测照明水平和叶绿素指数获得水稻田的生长信息;马明洋[11]使用无人机获取稻田中水稻冠层高光谱影像信息,对光谱特征信息进行分类,其中使用二代小波分解算法分类精度最高,达到90.36%;洪雪[12]利用无人机获得农田中水稻的光谱数据,使用BP神经网络建模对水稻产量进行预测;Ma等[13]使用SegNet、FCN和U-Net 共3种语义分割模型对水稻田中的水稻杂草图像进行像素级的分割,结果表明,SegNet算法识别效果最好,达到92.7%的准确率。相关研究主要集中在对水稻田杂草的识别检测上,获取水稻田中杂草分布信息并生成水稻田间杂草分布图的研究相对较少。本文拟采用大疆精灵4无人机及其携带的可见光相机采集遥感图像,以水稻杂草为识别目标,对比支持向量机(Support vehicle machine,SVM)、K 最近邻算法 (K-nearest neighbor, KNN)、AdaBoost共3种机器学习方法和卷积神经网络(Convolutional neural network,CNN)方法对水稻和杂草的分类效果,获取水稻田间杂草分布信息,生成分类效果最好的水稻田间杂草分布图,为后续植保无人机进行精准施药提供决策依据。

1 材料与方法

1.1 供试材料

研究区域位于华南农业大学增城试验基地(中国广东省广州市,坐标 23°14′N、113°38′E,基准WGS84)(图1)。本研究于2017年10月2日对试验基地中某一块稻田进行RGB图像采集,数据采集设备为大疆精灵4无人机,结合地面站软件DJI GS PRO进行航线规划。经实地验证,研究区域的杂草主要有千金子和莎草。

图1 试验数据采集点Fig. 1 Location of test data collection

无人机飞行高度依次设置为6、8、10 m。横、纵向重叠率分别为60%和50%。本次试验采集图像120幅,每幅图像的分辨率为4 000像素×3 000像素,空间分辨率为0.3 cm。采集到的图像如图2a所示。根据人眼对水稻和杂草的识别效果以及需要对采集的图像使用有监督学习作用的方法进行标注,试验选择飞行高度为6 m。在采集到的无人机遥感图像中,所有物体被分为3个类别:水稻、杂草以及其他(包括水泥地、土壤、地面等)。本文分别使用绿色表示水稻,红色表示杂草,灰色代表其他,对每一张图像中3个类别进行基于像素级别的颜色标注,如图2b所示。

图2 无人机拍摄的原图和对应的标注图Fig. 2 Original image taken by UAV and corresponding annotated image

根据田间地面的实际验证,在1个0.3 m×0.3 m的网格中有95%以上概率可确认只有1个类别。考虑有限的计算机资源以及图像的分辨率即像素尺寸为4 000×3 000,空间分辨率为0.3 cm,根据计算,0.3 m×0.3 m的地面区域对应图像的像素尺寸为100×100,因此本文将每幅4 000像素×3 000像素的原图像与标记图像分别切割成1 200块像素大小为100×100的小网格。对原图像切割成的小网格图片与标记图切割成的小网格图片进行效果比对,在标记图小网格图库中,按照单一颜色或者某种颜色超过95%的选取规则与原图像库中的小图片进行对应,按照随机性以及训练集与测试集5∶1的原则选出6 000幅小网格图片作为训练集,选取1 200幅小网格图片作为测试集。

1.2 数据预处理

1.2.1 基于机器学习分类的图像预处理 颜色特征是基于图像像素提取的,具有旋转、尺度和平移不变性等优点[14],是人眼获取的最为有效且明显的信息之一。它的获取及计算较简单,常用作特征向量训练机器学习模型。本试验拟对小样本提取RGB三通道颜色的最大值、最小值与平均值。从原图小网格图库中随机选取3种类别小图片各3 200幅用于统计RGB像素平均值(图3),不同类别样本提取出的颜色特征有一些差异。

本文的图像属于单视图数据,数据维数巨大。尽管高维数据含有更加丰富的信息,但对于分类、聚类等任务,要付出巨大的计算和存储代价,而且在测试集数量一定时,特征维数的增加将使样本统计特性变得困难,降低分类器的泛化能力[15]。本文使用对单视图数据有较好泛化性能的主成分分析(Principal component analysis,PCA)对图像数据进行降维。PCA是Karl Pearson[16]在1901年提出的概念,1933年Hotelling[17]完善其数学基础。本研究原始图像的特征向量有30 000维存在噪声和冗余信息,会对分类器造成干扰,因此采用PCA降维来消除这种影响[18]。经过如图4所示的PCA计算流程,为保留90%有效信息并降到50维,剔除无效的信息,保留有用的特征信息,形成特征向量集。结合提取到的颜色特征分别送入SVM、KNN和AdaBoost 3种分类器中进行识别分类。

图3 3种类别样本的RGB像素平均值Fig. 3 RGB pixel means of three category samples

1.2.2 基于CNN分类的图像预处理 CNN可以自动学习输入图像中的特征,并对学习到的特征进行自动分类,网络直接输出该图像的类别概率,是一种端到端的图像识别方法[19]。CNN通过卷积运算完成特征提取。图像卷积运算是通过设定各种特征提取滤波器矩阵,然后使用该卷积核在原图像矩阵(图像实际是像素值构成的矩阵)“滑动”,实现卷积运算。因此,基于CNN对图像的分类无需做预处理,可直接进行模型的训练。本文的技术路线如图5所示。对原始图像进行标注、切割后使用3种机器学习算法和CNN对小图片进行分类,并形成水稻田中的杂草分布图。

图4 主成分分析算法计算流程图Fig. 4 Calculation process of principal component analysis algorithm

1.3 分类方法介绍

常用的监督分类方法有最大似然[20]、神经网络[21-22]、SVM[23-24],常用的非监督分类方法有K-均值、模糊 C-均值 (Fuzzy C-mean,FCM)[25-26]等。获取的图像数据经标注后使得本文的分类方法成为监督分类范畴。

1.3.1 SVM分类模型 SVM是一种可分析数据、识别模型和分类的监督学习模型[27-28]。SVM算法在于寻找一个超平面,该超平面可将训练集中的数据分开,且与类域边界边沿垂直于该超平面方向的距离最大,从而达到最大的泛化能力[29]。对于任意数据集 T 和超平面 ωx+b=0,定义超平面关于样本点(xi,yi)的几何间距(ri)为:

图5 利用3种机器学习算法和CNN生成水稻田杂草分布图的技术路线图Fig. 5 Technical routes of using three kinds of machine learning algorithms and CNN to generate distribution map of paddy weeds

式中,ω 、b分别是超平面的权重向量与截距向量。关于全部样本点的几何间隔的最小值 (γ )为:

即向量到超平面的距离。

以上都是针对数据线性可分推导的,本文的图像数据属于线性不可分,必须确定惩罚系数c和径向基函数g,再选择更优的核函数将数据映射到更高维空间,有效解决数据低维和高维空间映射造成计算复杂度增加的问题[30]。常用的核函数有线性核、多项式核、径向基内核和Sigmoid核。选择核函数时要考虑数据的特点和数据量,本次SVM模型使用的是Sigmoid核,通过使用不同的核函数和参数c、g寻优,Sigmoid核的公式如下所示:

式中,a、b为人工设置的参数,a为正实数,b为非负实数。

1.3.2 KNN分类模型 KNN是机器学习领域最常用的分类算法,也是一种回归的非参数统计方法[31]。优点是可用于非线性分类,适用于本文的遥感数据且对异常数据不敏感,缺点是需要大量的存储空间,计算耗时。分类的思路是假设一个样本在特征空间中的k个最近邻的样本大多数属于某个类别,则将该样本也划分成这个类别。本文使用KNN算法建模时,关于距离的度量方法使用的是欧几里得距离公式,具体如下:

式中,xi代表待测样本,yi代表已知样本,n代表样本数。

1.3.3 AdaBoost分类模型 本文选取AdaBoost算法构建小尺度的水稻田杂草图像分类模型。AdaBoost算法是由Freund等[32]提出的目前使用和研究最多的集成算法,该算法的思想是将若干个分类能力较弱的分类器按照一定的方式混合成为分类能力很强的强分类器[33-34]。AdaBoost算法计算流程如下:

1)构造图像特征数据训练集为G={(x1,y2),(x2,y2)···,(xn,yn)},xn为图像的特征数据集,yn为标签集。

2)初始化每个图像特征数据的权值D1={w1,w2···,wn} ,wn=1/n,wn为第n个图像特征数据对应的初始权值。

3)迭代k次 (k=1, 2···,K),使用决策树算法对有权值分布的训练集训练出弱分类器。

1.3.4 CNN分类模型 作为一种深度学习方法,CNN已成为当前图像理解领域的研究热点[35],其权值共享网络结构在网络输入为多维图像时尤为方便,图像可直接作为网络输入,避免传统识别算法中复杂的特征提取和数据重建过程[36]。本文采用CNN对采集到的水稻田杂草图像进行分类,CNN结构的隐含层一般包含卷积层、采样层、池化层和全连接层等几类常见的层结构,本文使用的卷积层结构如图6所示。

图6 卷积神经网络结构Fig. 6 Convolutional neural network structure

卷积层中的卷积核包含权重系数,用来自动提取图像的特征。本文所使用的CNN结构是在Ubuntu16.04系统下,框架为tensorflow 1.5,编程语言为Python,训练集与测试集的图片分别为6 000与1 200幅。考虑到有限的计算机资源,卷积层只设置5个卷积核,每个卷积核大小为1,利用ReLU函数进行激活。池化层池化窗口大小为5×5,步长为2×2。将提取到的三维特征转化成一维向量,全连接层对提取到的特征进行分类。学习率设置为10-5,最后选用AdamOptimizer优化网络。

2 结果与分析

2.1 算法的分类结果与分析

对相同的数据集经过颜色特征的提取和PCA降维后,将形成的特征向量集分别送入到SVM、KNN以及AdaBoost分类器中进行分类。对分类器的参数进行多次的调优试验。

试验结果表明,SVM算法对3种作物类别(水稻、杂草、其他)的综合分类精度为89.75%。图7展示的是KNN算法分类精度与k值的关系,当k取14时,KNN综合识别精度最高,为85.58%。AdaBoost分类器对水稻杂草图像的综合分类精度为90.25%,为3种机器学习算法中最高。3种模型的综合识别精度、混淆矩阵精度和运行时间如表1所示。

图7 KNN算法k值与分类精度的关系Fig. 7 Relationship between k value and classification accuracy in KNN algorithm

表1 3个模型的混淆矩阵精度、运行时间和综合识别精度Table 1 Confusion matrix accuracy, run time and integrated recognition accuracy of three models

SVM、KNN和AdaBoost模型对测试集的测试运行时间分别为0.500 4、2.209 2和0.411 1 s。AdaBoost在分类精度和识别效率上都优于其他2种模型。基于CNN试验的模型是深度学习框架TensorFlow的GitHub代码库下的源码,通过对卷积层、池化层以及全连接层做了一些修改(图6)以适应本试验的数据,模型对整个数据集的综合分类精度是92.41%。图8是CNN训练的Loss值与训练步数的关系图。

2.2 生成水稻田间杂草分布图

分别使用这4种训练生成的模型对测试集小样本进行分类,将小样本分类识别结果返回到相应的原始图像中进行标记,4种模型下水稻田杂草分布图与原图、标注图的比较如图9所示。

图8 卷积神经网络训练步数与Loss值之间的关系图Fig. 8 Relationship between train step and Loss value in convolutional neural network

由以上的试验结果效果图以及得到的分类精度可以得到,基于CNN对水稻杂草的分类效果要优于传统机器学习算法对水稻杂草的分类效果。机器学习算法及CNN均能够有效获取水稻田中杂草分布信息并生成水稻田间杂草分布图,有利于植保无人机对稻田中的杂草进行精准施药。

图9 基于4种算法生成的水稻田杂草分布图与原图、标注图的比较Fig. 9 Comparisons of distribution maps of paddy weeds generated based on four algorithms with original image and annotated image

3 讨论与结论

本文使用无人机采集水稻杂草RGB可见光图像,将数据切割成像素尺寸为100×100的小网格图像,对数据集进行颜色特征提取和降维后送入SVM、KNN和AdaBoost三种机器学习算法模型中进行分类。对比试验了3种机器学习方法和1种无需提取图像特征和降维的CNN分类方法。从分类的试验结果看,在3种机器学习算法中,不论是分类准确率还是分类效率,最优的分类器是AdaBoost,其综合识别精度为90.25%;在基于CNN的分类中,由于CNN结构可以自动挖掘数据的特征,简化人工提取环节,更具有兼容性和适用性,对不同的水稻杂草图像泛化能力更好,对水稻杂草图像的综合识别精度可以达到92.41%。试验结果还表明,针对无人机拍摄的遥感图像,机器学习算法及CNN能够有效识别出水稻和杂草,获取杂草的分布信息,生成水稻田间的杂草分布图,为后续植保无人机的精准施药提供依据。结合本文的研究和所得结果分析,本研究还存在以下待改进之处:1)本文使用的机器学习算法只提取图像的颜色特征作为模型训练的特征向量集进行训练,可以在后续研究中提取多个图像特征如纹理、形状等特征进行特征融合,结合机器学习算法并在此基础上改善算法模型,形成新算法以改善分类准确率;2)后续考虑采集多时期、多田地的水稻杂草图像,基于这些不同的水稻杂草图像改善模型,提高模型泛化能力;3)本文是进行水稻杂草的图像分类,切割成100像素×100像素小网格后,个别网格中避免不了水稻和杂草共存的情况,下一步可以考虑基于像素级别的分类,提高分类的精度。

猜你喜欢
水稻田杂草卷积
家乡的白鹭
拔杂草
洪洞:立即防除麦田杂草
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
拔掉心中的杂草
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
水稻田杂草防除技术要点