基于卷积网络和哈希码的玉米田间杂草快速识别方法

2018-12-04 09:03姜红花王鹏飞毛文华
农业机械学报 2018年11期
关键词:哈希杂草准确率

姜红花 王鹏飞 张 昭 毛文华 赵 博 齐 鹏

(1.山东农业大学信息科学与工程学院, 泰安 271018; 2.宝鸡文理学院电子电气工程学院, 宝鸡 721016;3.中国农业机械化科学研究院, 北京 100083; 4.山东永佳动力股份有限公司, 临沂 276000)

0 引言

田间杂草是影响农作物产量的重要因素[1-2]。目前我国主要采用喷洒农药的方式进行除草作业,农药过量喷洒带来环境污染、食品安全等一系列问题[3]。因此,实施精准喷药[4]是解决农药过量喷洒、提高农药利用率的关键。

精准施药的前提是精准识别杂草,国内外研究人员对此进行了一系列研究。刘剑[5]在图像预处理基础上,设计出基于ANN(Artifical neural network)的玉米田间杂草图像特征提取和识别算法,根据所提取的作物和杂草图像特征,在玉米田间区分出杂草。何东健等[6]在对田间植物图像处理的基础上,提取植物叶片形状、纹理及分形维数3类特征,分别以3类单特征的SVM分类结果构造基本概率指派,引入DS融合算法,根据融合结果及分类判决门限给出最终的识别结果。梁媛等[7]利用D-S证据理论将图像边缘邻域一致性、方向性和结构性3种测度进行融合,有效降低噪声的影响,提高了杂草边缘检测的准确性。TANG等[8]利用K-means算法预处理杂草识别模型,以其权重初始化新的卷积神经网络模型权重,最终准确度达到92.89%,优于普通卷积神经网络和无fine-tuning处理的神经网络。FERREIRA等[9]利用SLIC superpixel算法生成超像素图像,并利用卷积神经网络进行识别处理,分类准确度达98%以上。LOTTES等[10]利用四通道(RGB+NIR)相机采集图像,并利用近红外光谱图像实现植被与土壤背景分割,之后提取杂草特征并利用随机森林算法区分杂草与作物。目前现有的大多数杂草识别算法均依赖于人工选择的杂草特征(如形状、纹理等),识别准确度仍有待于进一步提高。

本文利用深度学习[11-13]的方法实现杂草图像特征的自动提取(不依赖于人工特征筛选),结合二进制哈希码压缩高维杂草特征数据,实现杂草的快速识别,为后续的田间农药喷洒提供信息支持。利用杂草数据在预训练的多层级卷积神经网络基础上进行fine-tuning,生成杂草识别模型,提取杂草图像的普通特征码和哈希特征码,并存入数据库。利用训练好的模型提取输入图像哈希特征码和普通特征码,与数据库中的哈希特征码和普通特征码进行对比,分别计算其欧氏距离与汉明距离,找出与其最相似的K幅图像,统计这K幅图像的标签,将其归入频率最高的一类,以达到分类识别的目的。

1 材料与方法

1.1 试验材料与图像预处理

以玉米及其伴生杂草作为研究对象进行识别。试验采用Canon PowerShot SX600 HS型相机,主要参数为:背照式CMOS传感器,最高分辨率4 608像素×3 456像素,有效像素数1 600万。采集陕西省地区的玉米、刺儿菜、灰菜、莎草、早熟禾5类植物各1 200幅高清图像(4 608像素×3 456像素,180 dpi)。作物及杂草图像样本如图1所示。

图1 玉米及田间杂草图Fig.1 Pictures of corn and field weeds

对采集的图像进行人工分类和标记,构建数据库,并进行打标建立数据集,其中训练集各类植物1 000幅,测试集各类植物各200幅。刺儿菜、灰菜、莎草、玉米、早熟禾标签分别为0、1、2、3、4。

由于相机获得的原始图像尺寸为4 608像素×3 456像素,不适合进行识别模型的训练。为了加快模型的训练速度,提高模型精度,在将图像输入神经网络前将图像尺寸调整为208像素×208像素。

1.2 杂草识别模型构建

卷积神经网络[14-18]由多层网络构成,每层网络包含数个二维平面,每个平面又由多个独立的神经元组成。其独特的结构能有效提取视觉层面的特征,适用于复杂环境下的田间杂草识别[19-21]。

在本文卷积神经网络中,杂草图像的一部分(局部感受区域)首先进入网络的最低层再依次向高层传递,各层网络通过卷积提取杂草图像的一个或多个特征(低层次的网络输出侧重于空间几何信息,高层次的网络输出侧重于语义等抽象信息)。卷积神经网络的特征提取过程可表示为

y=F(M|θ)=fl(…f2(f1(M|θ1)|θ2)…|θl)

(1)

式中M——输入的杂草图像矩阵

θ——待调整的参数

f——卷积函数y——杂草特征向量

F——杂草识别函数

杂草识别网络通过不断调整参数θ使杂草识别函数F(M|θ)的输出不断向y逼近。

l1:32个(3,3)卷积核,激活函数采用Relu激活函数[22],其可表示为f(x)=max(0,x),池化层为宽高方向步长均为2,大小为(3,3)的最大池化层[23-24],池化层后连接应局部响应归一化函数[23](Local response normalization,LRN)。

l2:64个(3,3)卷积核,激活函数采用Relu激活函数,池化层为宽高方向步长均为2,大小为(3,3)的最大池化层。

l3:128个(3,3)卷积核,激活函数采用Relu激活函数,池化层为宽高方向步长均为2,大小为(3,3)的最大池化层。

l4:256个(3,3)卷积核,激活函数采用Relu激活函数,激活函数后先连接LRN函数再连接池化层,池化层为宽高方向步长均为2,大小为(3,3)的最大池化层。

l5:4 096个神经元,权重w为(dim,4 096),dim为l4展开成一维向量的长度,激活函数采用Relu激活函数。

l6:256个神经元,权重w为(4 096,256),激活函数采用Relu激活函数。

l7:Dropout层,保留比例设为0.9。

l8:Hash层,权重w为(256,128),激活函数采用Sigmoid函数。

l9:输出层,权重w为(128,5),激活函数采用Softmax函数。

1.2.1杂草识别网络卷积层

本试验所提出的杂草识别网络中,前4层即l1、l2、l3、l4为卷积层,以其提取所需要分类特征,其过程可表示为

yl=fl(Ml|θl)=Relu(w⊗Ml+b)

(2)

其中

θl=[wb]

式中yl——l层杂草图像输出矩阵,是由杂草特征图组成的三维向量

Ml——l层杂草图像输入矩阵,是由杂草特征图组成的三维向量

θl——卷积核 ⊗——卷积运算

b——偏置

padding方式设置为SAME,stride在宽高方向都设为1,Ml、θl、yl可分别表示为(hl,wl,il)、(hl,wl,il,ol)、(hl,wl,ol),其中在第1层卷积层中hl=wl=208。在每层卷积层之后都连接一个最大池化层和局部响应归一化函数,池化层有利于减小特征图的尺寸从而加快模型训练速度,LRN通过对局部神经元的活动建立竞争机制,进一步激活较为活跃的神经元并抑制不活跃的神经元,增强模型的泛化能力。

1.2.2杂草识别网络全连接层

所提出的杂草识别网络l5、l6为全连接层,在这2层中杂草模型特征图被展开成一维特征向量并被进一步压缩,提取其主要特征,其过程可表示为

y=f(x|θ)=Relu(wx+b)

(3)

其中

θ=[wb]

式中x——杂草特征图展开后的长度为N的一维向量

随后接入Dropout层,它的作用在于使部分神经元随机失活,防止过拟合。然后将随机失活后的一维特征向量输入Hash层提取特征哈希码,再将提取的特征哈希码输入一个全连接层映射成一个固定长度k(本试验共有玉米、各类杂草共5个类别,此处固定长度k=5)得到特征向量N,之后将特征向量N输入线性分类器进行分类预测。采用Softmax作为分类函数

(4)

式中Pi——类别i的概率

lj——特征向量N的第j个元素

li——特征向量N的第i个元素

k——特征向量N的长度,1≤j≤k

经过分类函数得到预测标签后,利用交叉熵损失函数计算预测标签与实际标签的偏离程度

(5)

式中Ri——实际的概率分布

最后通过反向传播算法来调整神经网络的权重等参数,实现对数据集特征的提取,完成杂草识别模型构建。

1.2.3杂草网络Hash层结构

近来研究表明,由输入图像引入的全连接层的特征激活作为视觉特征[22-24],可以提高图像分类、检索精度。然而这些特征维度较高,难以应用于大规模图像的快速检索和识别。为了提高杂草识别效率,引入Hash层将杂草特征转换为二进制码,通过哈希或者汉明距离实现二进制码的快速比较以有效降低运算量。

本文试图提取特定区域的图像特征并将其转换为一系列的二进制哈希码(Hash-like)。假设最后一个全连接层的输出依赖一系列隐藏的有on和off状态的属性h。即是说,图片诱导相似的二进制激活有同样的label(标签)。为了实现该想法,在全连接层和输出层之间部署一个隐层H,H也是一个全连接层,受后面编码语义特征和实现分类的输出层的调整。H层不仅提供对前面全连接层丰富特征的抽象,也是中层特征和高层语义的桥梁(承上启下)。H层的神经元通过Sigmoid函数激活近似到(0,1)之间。

为了实现领域适应,通过在目标数据集上反向传播fine-tuning,CNN的初始化权重为预训练模型的最终权重,H层和输出层的权重随机初始化。H层的初始化随机权重类似于LSH(局部敏感度哈希)。在监督学习下,编码能够从LSH调整为更好匹配数据的形式。不用通过大规模的网络模型修改,该模型能够同时学习特定区域的视觉表示和二进制哈希函数以用于图像分类。

给定图像,提取隐层H的输出,再二进制化得到二进制哈希码

(6)

式中 Out(H)——隐层H输出的图像标签

h——隐层节点的个数

1.3 预训练与fine-tuning

首先在ImageNet数据集上利用卷积神经网络进行预训练获得卷积网络中参数和丰富的图像表示。然后在预训练的网络上添加Hash层,在杂草数据集上fine-tuning学习到二进制哈希码特征。最后利用所得到的杂草识别网络模型进行杂草特征提取。在杂草识别时,采用由粗到细的策略,利用学习到的二进制哈希码和全连接层特征码,实现杂草分类检索。预训练过程如图2所示。

图2 基于深度卷积网络和二进制哈希码的杂草识别模型Fig.2 Weeds recognition model based on convolutional network and binary Hash code

1.4 杂草识别策略

给定一个待检索杂草图像I和候选集P,通过模型提取其全连接层特征码和哈希码,先利用哈希码计算其与候选集P中图像哈希码的汉明距离,得到距离最小的n(n≥K)幅图像Q。汉明距离公式可表示为

(7)

其中

X=(x1,x2,…,xn)

Y=(y1,y2,…,yn)

式中 ⊕——异或运算d(X,Y)——汉明距离

然后计算I与Q中图像的全连接层特征码的欧氏距离得到前K个距离最小的图像。欧氏距离计算公式为

(8)

其中A=(a1,a2,…,an)B=(b1,b2,…,bn)

式中ρ(A,B)——欧氏距离

最后统计这K幅杂草图像的标签,出现频率最高的即确定为预测标签。当多种标签出现频率相同,先将Si按从小到大排序,然后从以下2种方案中选择其一:①因Si按从小到大排列即按输入图像与目标图像的欧氏距离从小到大排列,所以排名越靠前,其距离越近,因此可将输入图像标签确定为出现频率最高中排名最靠前的标签。②可将出现频率最高的几种标签的排名分别求和,将和最小的标签确定为输入图像的标签。分类流程如图3所示。

2 杂草识别试验

2.1 不同卷积网络层数对杂草识别的影响

一般来说,卷积层越多,模型越复杂,其精度就会越高,能提取到特征也就越复杂。例如在图像分类中,卷积网络的某一层提取到了边缘特征,其后的卷积层网络再用这些特征去提取形状特征,深层网络利用浅层网络提取的特征检测提取更为复杂的特征。针对杂草识别问题,为确定合理的卷积网络层数,进行了不同深度的卷积网络对比试验。

按模型结构设计不同深度的卷积网络进行对比试验,结果见表1。由表1可知,训练10 000步时,不同深度的卷积网络训练所需时间相差最大为128.04 s(3层卷积层最少3 160.65 s,8层卷积层最多3 288.69 s),因此可以忽略时间的影响,只把准确率作为选择卷积网络层数的因素;准确率方面,卷积层数在3~4层时,准确率逐渐提升,在5~7层时,准确率逐渐降低,可能是发生了过拟合等现象,卷积层数为4层时准确率达到最高值93.6%,因此,将卷积层数确定为4层。

2.2 不同哈希码长度对杂草识别的影响

在确定卷积层的层数之后,针对哈希编码长度的选择, 对0(没有哈希层)、48、64、128、256位不同哈希码长度进行对比试验,结果见表2。

图3 杂草识别流程图Fig.3 Process of weeds identification

卷积层数步数准确率/%时间/s31000091.53160.6541000093.63219.9851000092.93278.6161000090.03246.9871000090.63262.3481000092.73288.69

表2 不同长度哈希码对比Tab.2 Comparison of different lengths Hash code

由表2可知,在加入Hash层后,准确率相较于无Hash层有所提高,最低提高0.1个百分点(256位哈希码),最高提高3.6个百分点(128位哈希码);哈希码长度在48、64、128位时逐渐提高,256位时突然下降,原因可能是128位哈希码已经足以表达低层的特征,256位哈希码导致特征过量表达,发生了过拟合。

3 试验结果分析

在确定好卷积层层数和哈希码长度之后,最终的杂草识别网络采用4层卷积网络和128维哈希编码的Hash层。利用此结构的网络,即可进行杂草识别。输入待检索图像,利用选定的模型提取其全连接层特征码和哈希特征码,先利用哈希码计算其与候选集中哈希码的汉明距离,得到距离最小的K幅图像,然后计算待检索图像的全连接层特征码与这K幅图像的全连接层特征码的欧氏距离,最后将K个欧氏距离按升序排列并统计其对应的标签频率进行分类。选用准确率最高的模型(4层卷积层,128位哈希码)输入全部测试集的图像进行测试,准确率达到98.6%。

将测试集中分类错误的结果进行统计,混淆矩阵如表3所示。部分错误识别结果,如图4所示。由表3和图4可知,错误的分类一般是将刺儿菜、灰菜与早熟禾混淆,将莎草与玉米混淆,主要原因在于刺儿菜、灰菜与早熟禾的外形较为相似,莎草与玉米的外形较为相似,所以导致少部分图像分类错误。针对这一现象,可以通过增加训练集数据以及训练步长等可进一步提高模型准确率,减少误分类情况。

表3 4层卷积网络128位哈希码模型混淆矩阵Tab.3 4 confusion matrix of model with four layers and 128 bits Hash code %

图4 错误结果Fig.4 Error results

卷积网络主要问题是计算量大,为满足田间杂草识别的实时性要求,采用NVIDIA GTX 1080Ti GPU代替CPU进行运算,识别一幅图像的耗时见表4。同时也可以发现,4层卷积层+128位哈希码可以取得98.6%的杂草识别准确率,其表现优于3层卷积网络和较小哈希码长度的情况。

将4种不同模型的损失值绘制成折线图,通过观察发现加入Hash层后模型的稳定性均有所提高。

表4 利用GPU加速识别单幅图像耗时Tab.4 Time consumption per image with GPU

损失函数折线图如图5所示。

图5 模型损失函数对比Fig.5 Comparison of loss function

4 其他数据集验证

4.1 数据集

为进一步验证模型的性能,采集于其他地区的玉米田间杂草,将被用来验证所提出杂草识别模型的通用性。在北京地区,采集玉米田间常见杂草马唐、牛筋草、稗草、狗尾草、猪殃殃5类杂草图像各500幅,对采集的图像进行人工分类和标记建立数据集,其中训练集各类杂草图像400幅,验证集各类杂草图像100幅。

4.2 验证测试

利用本文提出的模型,在新的数据集上进行训练生成新的模型,在测试集上进行验证测试,测试结果见表5。

由表5可知,在测试集上准确率最低为90.6%,最高为95.8%,说明本文提出的研究方法具有通用性和实用性。

表5 不同模型准确率对比Tab.5 Accuracy comparison of different models

5 田间试验

于2018年5月20日,天气晴,在山东农业大学南校区农学试验站玉米田中进行除草剂喷施试验。玉米株距50 cm,行距40 cm。试验选用高地隙喷杆喷雾机,选择一侧喷杆的2个喷头,调整喷头位置,使之与玉米行间对齐,进行喷雾对比试验,如图6所示。2个喷头的一侧安装Canon PowerShot SX600 HS型摄像头,相机帧率为20帧/s,调整相机,使相机距离地面50 cm,视场角22°,并在喷头前方安装电磁阀,如图6c所示。将采集到的图像上传到计算机,每10帧提取一幅图像,将该图像进行一定的预处理,输入到构建的杂草识别模型中,依据上文的杂草识别策略识别杂草及玉米,识别出杂草则电磁阀打开,控制喷头进行喷雾,实现精准喷雾。

选择合适杂草情况的玉米地,启动汽油机,打开喷杆的控制阀门,喷雾机以0.5 m/s的速度,行进10 m,关闭两侧喷杆的控制阀门及汽油机,将摄像头采集到的图像输入计算机,程序识别到杂草控制电磁阀打开喷头进行喷雾。观察统计杂草及玉米药液沉积情况,试验喷雾效果如图6c所示。

图6 田间验证识别率Fig.6 Verification in field1.摄像头 2.电磁阀 3.喷头

对靶喷雾统计结果为杂草施药率92.7%,玉米施药率6.5%,在无草无玉米时的喷施概率1.8%。经观察分析知造成此现象的原因包括:有些杂草靠近玉米根部,玉米叶遮挡了药液的滴落,以及模型识别玉米及杂草存在一定误差,且电磁阀存在一定的响应时间,造成了喷雾延后,对玉米喷施药物的现象;系统的响应时间及喷杆的晃动等原因造成了无草无作物喷施的现象。

综上所述,所提出的杂草识别方法,可以有效提高杂草施药率,使其达到92.7%,减少农药浪费,提高农药利用率,适用于田间玉米杂草处理。

6 结论

(1)利用深度学习中的卷积神经网络和哈希码构建杂草识别模型,并利用提取到的全连接层特征码和哈希特征码进行分类。本文方法在杂草数据集

上的准确率和收敛速度相较于普通模型都有所提高,准确率可以达到98.6%,满足实际应用需求。

(2)基于NVIDIA GTX 1080Ti GPU计算机平台,本文方法单幅图像识别耗时0.44 s,模型识别速率较快,能够满足实时性要求,可实现农作物与杂草的快速识别分类。

(3)在杂草识别基础上进行对靶喷雾,杂草施药率可以达到92.7%,减少了农药浪费。另外,模型在其他数据集上同样具有良好的表现,准确率可达95.8%,说明本文方法具有通用性。

(4)提出的基于深度卷积网络和二进制哈希码的田间杂草快速识别方法能够达到较高准确性,具有通用性和实用性,为精准施药和精准机械除草提供田间杂草信息。

猜你喜欢
哈希杂草准确率
拔杂草
洪洞:立即防除麦田杂草
基于特征选择的局部敏感哈希位选择算法
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
哈希值处理 功能全面更易用
2015—2017 年宁夏各天气预报参考产品质量检验分析
文件哈希值处理一条龙
拔掉心中的杂草
高速公路车牌识别标识站准确率验证法