基于卷积神经网络的冬小麦麦穗检测计数系统
2019-04-01张领先陈运强李云霞马浚诚杜克明
张领先 陈运强 李云霞 马浚诚 杜克明
(1.中国农业大学信息与电气工程学院, 北京 100083; 2.中国农业科学院农业环境与可持续发展研究所, 北京 100081)
0 引言
产量预测是冬小麦生产管理的重要环节之一,准确的产量预测可以为农业管理决策提供参考[1-2]。单位面积麦穗数是表征冬小麦产量的常用指标之一[3],快速、准确地识别麦穗并检测单位面积穗数,不仅对估产起着重要的作用,在育种、植物表型分析等方面也有重要意义。传统的人工计数方法不仅时效性差,而且主观性较高,缺乏统一的麦穗计数标准[3]。
计算机视觉是目前麦穗识别和检测计数的主要技术手段,利用冬小麦RGB图像,获取麦穗的颜色[4-6]、纹理[4-5]和形状[6]特征,通过机器学习方法建立麦穗识别分类器,从而实现麦穗识别和检测计数。虽然这些方法取得了一定的效果,但需要人为设置图像特征,对大田环境下光照不均匀和复杂背景等噪声的鲁棒性不足,难以拓展应用。
卷积神经网络(Convolutional neural network,CNN)是目前最有效的图像识别方法[7-8],在病虫害识别分类[9-10]、植物器官计数[11-12]、杂草识别[13-14]、植物识别及物种分类[15-16]、土地覆盖分类[17]等农业领域均有广泛的应用。KAMILARIS等[18]调查并比较了40项关于深度学习在农业中应用的研究,结果表明,深度学习在图像识别方面有更高的准确性,结果优于现有常用的图像处理技术。XIONG等[19]提出了一种基于简单线性迭代聚类(Simple linear iterative clustering,SLIC)超像素分割的Panicle-SEG分割算法,通过构建CNN模型进行训练,并结合熵率超像素最优化,实现了大田环境下水稻稻穗的识别。CNN已在农业领域得到广泛应用,而在冬小麦麦穗检测计数上的研究却鲜有报道。
本研究基于CNN开展冬小麦麦穗检测计数系统研究,利用CNN构建冬小麦麦穗识别模型,结合非极大值抑制方法(Non-maximal suppression,NMS)进行单位面积麦穗检测计数,使模型具有从复杂背景中快速检测麦穗的能力。
1 麦穗检测计数系统设计
1.1 目标设计
基于深度学习技术,结合冬小麦大田环境及麦穗图像特点,以大田环境下采集的冬小麦图像为系统输入,旨在实现麦穗的快速识别和准确检测计数,提高CNN在麦穗识别和检测计数中的适用性,从而为冬小麦产量预测提供参考。
1.2 系统结构功能设计
根据设计目标,基于模块化的思想进行系统功能设计并将系统划分为麦穗提取、数据集构建、麦穗检测计数和系统管理4个模块,各功能模块的主要功能如图1所示[20-22]。
麦穗提取模块的功能主要是对原始冬小麦图像进行预处理,并从图像中分别提取麦穗、叶片和阴影3类标签图像。数据集构建模块的功能主要是对麦穗提取模块中提取的标签图像进行数据扩充,并将扩充后的数据集进行划分,建立可用于CNN模型训练、验证和测试的数据集。麦穗检测计数模块的功能主要是利用构建的CNN模型,实现麦穗识别及麦穗检测计数。系统管理模块主要功能包括系统管理员对用户相关信息及登录权限进行管理,同时负责系统的日常事务管理和维护以及数据库管理,以提高系统的安全性和数据的完整性。
1.3 麦穗检测计数方法设计
基于系统结构功能设计与分析,将麦穗检测计数的流程分为麦穗提取、数据集构建、CNN模型构建和麦穗检测计数4部分。具体流程如图2所示。
图2 麦穗检测计数流程图Fig.2 Flow chart of winter wheat ears detection and counting
1.3.1麦穗提取
不同生长阶段的冬小麦麦穗有不同的特征。开花期的麦穗颜色与冬小麦植株颜色差异不大,难以单纯利用图像特征来识别麦穗。除此之外,大田环境中采集的冬小麦图像具有植株密度高、重叠多、光照不均和背景复杂等诸多干扰。为提高网络模型的抗干扰能力,保障其识别正确率,根据大田环境下采集的冬小麦图像特点,本研究采用手动分割的方式从冬小麦图像中提取麦穗、叶片和阴影3类标签图像,并将标签图像尺寸调整为64像素×64像素。为了确保试验的准确性和严谨性,只对图像中包含一个完整采样区域的部分进行研究。
图3 卷积神经网络结构Fig.3 Architecture of CNN model
1.3.2麦穗识别模型
一个基本CNN模型由输入层、卷积层、激活函数、池化层、全连接层和输出层组成[23-24]。CNN模型训练时,输入层中图像经过卷积、池化多次迭代,提取麦穗特征,去噪降参,进行前向传播,训练分类器。同时,验证集中的图像会根据分类正确率通过反向传播来调整CNN模型权重和偏置参数,不断优化现有网络模型,提高CNN模型识别麦穗正确率。
基于以上分析,本研究建立的CNN模型结构[25]如图3所示。该结构主要包含5个卷积层、4个池化层以及2个全连接层。卷积层中卷积核大小均为3×3,所有卷积层中卷积核的个数均为128个,每经过一次卷积操作,CNN会有效地提取图像中的特征,生成128个特征图。池化层采用2×2的卷积核进行最大池化,实现特征图的降采样,卷积核步长设置为2,即每次移动2个像素。经过4个池化层可以大大降低网络结构中的权重参数,减小计算成本。最后一个池化层之后是2个全连接层,全连接层将所有特征图矢量化,用一维向量表示整个图像的特征。在全连接层的前后分别增加了丢弃层(Dropout),将神经网络单元按照一定的概率暂时从CNN中丢弃,从而防止过拟合现象,提高模型识别正确率[26]。最后在输出层中,采用Softmax函数将特征向量划分为麦穗、叶片和阴影3类。
1.3.3麦穗计数方法
NMS在计算机视觉中具有广泛的应用[27-28],如边缘检测、目标检测等。本文采用NMS实现麦穗计数,能够有效抑制低概率麦穗检测窗口,消除邻域内多余的交叉检测窗口,找到最佳的麦穗检测位置,实现麦穗准确计数。其流程如图4所示。
针对与大型会计师事务所的多层次发展对策,途径、范围都是很多的。首先在业务种类和数量上,大型事务所可以多方位扩展不同类型的业务,从传统的业务角度出发,拓展到各方面的财务咨询与财务顾问工作。当然,在此过程中,要根据审计准则的相关要求保证不影响独立性。同时事务所还可以充分利用自身资源优势建立品牌,甚至把业务做到“专而精,大又专”的境地。
图4 基于非极大值抑制的麦穗计数流程Fig.4 Process of counting for winter wheat ears based on non-maxima suppression
(1)冬小麦图像预处理,提取冬小麦图像中间位置尺寸为1 280像素×1 280像素的区域,并将其尺寸调整为640像素×640像素。
(2)采用步长为16像素、尺寸为64像素×64像素的滑动窗口进行图像采样,并将采样图像输入到CNN模型进行识别。针对每一个采样图像,CNN模型计算其置信度分数p,取值范围为0~1,表示采样图像属于麦穗的概率。
(3)确定合适的置信度分数p的阈值和重叠面积比率I的阈值,采用NMS进行麦穗计数。其中,设定p的阈值是为了移除低概率的麦穗检测窗口,设定I阈值可有效移除交叉重叠面积较大的麦穗检测窗口,保障麦穗计数的准确性。对重叠面积比率I的定义为
(1)
式中A、B——相邻两个麦穗检测窗口
min()——最小值函数
area()——检测窗口面积函数
由此计算出本研究中可能的I阈值(完全重叠的不计在内)分别有0.062 5、0.125、0.187 5、0.25、0.375、0.5、0.562 5和0.75共8个值。将这8个阈值与不同的置信度分数p组成多组不同的试验组,以确定适用于该麦穗检测计数系统的最佳参数组合。
2 试验与结果分析
基于卷积神经网络的麦穗识别模型由Matlab 2018a编程实现[29]。麦穗检测系统采用Matlab 2018a与Microsoft Visual C++编程实现。系统试验的硬件环境为Intel i5处理器,8 GB内存,NVIDIA GeForce GTX 1050Ti(2 GB显存)。
2.1 麦穗提取
图5 大田环境下采集的冬小麦图像Fig.5 Winter wheat images in field conditions
麦穗提取模块如图6所示,图像导入后,系统采用不同颜色的方框进行麦穗、叶片和阴影3类标签图像提取。提取的麦穗、叶片和阴影3类图像可在模块界面的下方部分显示。同时,所有提取的3类标签图像会被保存至预先设定好的位置。
图6 麦穗提取模块Fig.6 Module of winter wheat ears extraction
2.2 数据集构建
如图7所示,由数据集构建模块,系统可加载并显示当前麦穗、叶片和阴影3类标签图像的数据量。
图7 数据集构建模块Fig.7 Module of dataset construction
本研究经过筛选,剔除了一些质量较低的图像,构建了包含麦穗、叶片和阴影3类标签图像的数据集,其中麦穗、叶片和阴影图像的数据量分别为501、514和498。
对于CNN而言,可用于网络模型训练的数据集越大,网络模型的识别效果就越好[30-32]。为扩充输入数据集的数据量,提高网络模型的识别正确性,参考相关文献的数据扩充方法,采用色彩抖动、水平和垂直方向翻转,以及90°、180°、270°旋转等方式对数据集进行扩充[18,22,31]。通过扩充,原始数据集扩充至原来的26倍。数据扩充后,系统将数据集划分成训练集、验证集和测试集。扩充后的数据集共包含39 338幅图像,其中麦穗13 026幅,叶片13 364幅,阴影12 948幅。在数据集构建面板中,系统显示了每类图像的数据量及用于训练、验证和测试的数据量。
2.3 CNN模型构建
图8为CNN模型构建模块,该模块包含模型训练、模型测试和图像识别3部分。系统采用梯度下降算法对CNN进行训练。
图8 CNN模型构建模块Fig.8 Module of CNN construction
模型训练完成后,系统调用测试数据集对网络模型进行测试,测试结果会显示在右侧的测试结果面板中。为进一步展示麦穗识别分类器的效果,该研究采用混淆矩阵(Confusion matrix)来评价分类器的效果。从混淆矩阵中可以看出,测试数据集包含7 868个样本,麦穗识别分类器正确识别了2 603个麦穗样本,占总测试数据的33.1%;正确识别了2 583个阴影样本,占总测试数据的32.8%;正确识别了2 653个叶片样本,占总测试数据的33.7%。只有1个叶片样本和1个阴影样本被误识别为麦穗,分别占总测试数据的比例近乎为零。4个叶片样本和3个麦穗样本被误识别为阴影,分别占总测试数据的0.05%和0.04%。8个阴影样本和12个麦穗样本被误识别为叶片,分别占总测试数据的0.1%和0.15%。从混淆矩阵中可以看出,该研究识别分类器的正确率为99.6%,麦穗识别正确率为99.9%,阴影识别正确率99.7%,叶片识别正确率为99.3%。从分类器测试的结果来看,该系统能够准确地从复杂背景中识别出麦穗,正确率满足实际应用的要求。
2.4 麦穗检测计数
如图9所示,系统采用测试后的CNN模型结合NMS进行麦穗计数,结果显示在麦穗检测计数面板中。
图9 麦穗检测计数面板Fig.9 Module of winter wheat ears counting
为了验证麦穗检测计数的正确率,本研究对166幅冬小麦图像进行系统测试。通过剔除重复图像和质量较差的图像后,选择100幅冬小麦图像测试系统的正确率。在进行系统测试时,为降低麦穗重叠对计数正确率造成的影响,通过多次试验选择麦穗置信度分数p和重叠面积比率I的阈值,最终将麦穗置信度分数p阈值设置为0.95,重叠面积比率I阈值设置为0.1。图像中麦穗实测数据通过人工计数获得。由于冬小麦图像的边缘区域存在麦穗不完整的现象,增加了人工计数的主观性。为了保证计数的正确性和试验的严谨性,本研究制定了统一的麦穗计数原则,由5位团队成员分别对每幅图像中的麦穗进行计数。针对每幅冬小麦图像,将5个计数结果的平均值作为该图像的麦穗实测数据,以减小人工计数的主观性误差。将系统计数结果与实测数据进行对比分析,结果如表1所示。
表1 麦穗计数结果Tab.1 Results of winter wheat ears counting 个
从表1中可以看出,针对100幅冬小麦图像,人工计数方法获得的麦穗数量为3 138,而系统计数方法共获得3 121个麦穗。进一步采用回归分析对系统正确率进行定量分析,采用决定系数(Coefficient of determination,R2)和归一化均方根误差(Normalized root mean square error,NRMSE)进行正确率定量评价,结果如图10所示。针对100幅冬小麦图像,麦穗计数结果R2为0.62,NRMSE为11.73%。系统计数正确率较为理想,可满足麦穗计数实际应用中的要求。
图10 麦穗计数线性拟合结果Fig.10 Line fitting of winter wheat ears counting results
为进一步评估系统应用的效率,对系统测试的耗时进行了统计分析。在本系统硬件条件下,针对100幅冬小麦图像测试共耗时3 991.24 s,平均耗时为39.91 s。
针对麦穗重叠的问题,该系统通过试验选取合适的麦穗置信度分数p阈值和重叠面积比率I阈值,在一定程度上降低了麦穗重叠对正确率的影响(图11a),针对重叠面积较小的情况,能够取得良好的计数效果。而对于麦穗重叠面积较大的情况(图11b),系统将进一步对算法进行优化,拟采用增加麦穗秆的特征来提高计数的正确率,即在提取麦穗标签数据时,增加部分秸秆图像,进一步提高麦穗计数的正确率。
图11 交叉重叠识别结果Fig.11 Counting results for ears under occlusion
3 结论
(1)构建了适用于冬小麦麦穗识别的卷积神经网络模型,实现了大田环境下麦穗的快速、准确识别。模型总体识别正确率为99.6%,其中麦穗识别正确率为99.9%,阴影识别正确率为99.7%,叶片识别正确率为99.3%。
(2)采用NMS方法实现了麦穗计数。对100幅冬小麦图像进行麦穗计数测试的结果表明,系统计数的拟合度较好,R2为0.62,归一化均方根误差较小,为11.73%。