复杂大田场景中麦穗检测级联网络优化方法

2020-02-02 04:08谢元澄于增源姜海燕梁敬东
农业机械学报 2020年12期
关键词:级联麦穗阈值

谢元澄 何 超 于增源 沈 毅 姜海燕,2 梁敬东

(1.南京农业大学信息科学技术学院, 南京 210095; 2.南京农业大学国家信息农业工程技术中心, 南京 210095)

0 引言

小麦是我国的主要粮食作物,其产量关系到国家的粮食安全[1]。对小麦产量的精确估计可为政府在农村土地政策、粮食价格等方面的宏观调控提供支撑[2]。单位面积麦穗数直接体现小麦种植密度,是决定小麦产量的关键因素,其数据主要在田间获取[3],快速准确地测量这一指标可以大幅提高监测小麦生长性状的效率,从而为小麦产量及其他表型性状提供早期预测,有利于优化和加速育种进程。近年来,传统图像分割方法广泛应用于农业领域,基于形状[4]、颜色[5-9]或者纹理[5-7]特征对小麦RGB图像进行特征提取,并通过机器学习方法实现麦穗检测计数,在一定程度上提高了小麦估产效率。以上方法仅适用于灌浆期[8]等小麦生长的部分时期,这些时期小麦图像各区域像素之间具有明显的差异性。当麦穗存在粘连或者长势不一时,仅仅依靠基于人工设定并提取特征的方法,其鲁棒性较低。此外,特征提取方法流程也较为复杂,且对图像采集设备具有较高的要求[10-12]。

计算能力的进步以及大量标记图像的可用性促进了基于卷积神经网络(Convolutional neural network, CNN)的机器学习方法在计算机视觉领域的应用和发展[13]。在稻穗检测计数研究中[14-16],CNN具有良好的检测效果,但存在流程复杂、算法耗时且受噪声干扰影响较大的问题。在将深度学习方法应用于麦穗检测计数的研究中,张领先等[17]利用CNN结合非极大值压缩(Non-maximum suppression, NMS)的方法进行冬小麦麦穗检测计数,但需要预先对小麦图像进行手动分割,且对麦穗重叠、目标较小等复杂情况下的检测未作说明。另外,使用Faster R-CNN等单一模型对麦穗进行检测时[18-19],由于训练过程中IOU(Intersection over union)阈值设定不规范以及训练和预测时的IOU阈值不匹配,容易造成模型过拟合,导致对小麦图像细节特征提取不足、检测性能大幅下降。

在复杂大田环境中,小麦麦穗、麦叶与茎秆之间的颜色混叠程度极高,叶片、杂草、麦芒与麦穗之间存在严重的遮挡现象,光照强度不均匀易形成反光和逆光,同时还存在部分尺寸较小的目标隐藏在背景相似的环境中的问题。为有效解决复杂场景下的麦穗检测计数问题,本文提出一种基于深度卷积神经网络的高效麦穗自动计数方法(FCS R-CNN),以Cascade R-CNN[20]为基本检测模型,加入特征金字塔网络,通过IOU阈值级联的方式进行阶段融合,并在训练过程中对困难样本进行重学习。利用改进的支持向量机(Support vector machine,SVM)[21]分类器对所有检出框进行二分类,将FCS R-CNN方法与现场人工计数进行比较,以评估该方法在真实场景下的适用性。

1 样本采集

试验所用小麦图像于2018年6月4日在南京市江宁区(118°55′28.9236″ E,31°53′3.3432″ N)4块正常条播小麦种植园获取,小麦品种为“宁麦8号”,小麦处于成熟期。图像采集设备为美国苹果公司生产的iPhone 7型智能手机,1 200万像素。拍摄期间天气晴朗,没有大风,图像采集于11:00—14:00和16:00—19:00两个时间段,光照强度不同,且拍摄角度随机,大部分图像采集角度小于等于45°,涵盖了田间麦穗计数作业时所有可能的环境条件。拍摄位置距小麦冠层顶部约1 m,每块小麦田约获取300幅图像,共获取1 079幅分辨率为4 032像素×3 024像素的小麦图像,部分小麦图像如图1所示。

图1 大田环境下小麦图像Fig.1 Wheat images in field environment

将采集到的1 079幅小麦图像划分为训练集863幅,测试集216幅,并对数据集进行5折交叉验证。然后使用开源图像标注工具LabelImg进行人工图像标注。对标注完成的图像数据进行分析,共标注麦穗边界框(Bounding box,Bbox)56 182个,其中训练集45 011个,测试集11 171个。然后将原始小麦图像尺寸修改为1 333像素×800像素,并输入到CNN网络中提取特征,生成特征映射图。

2 级联网络优化

2.1 模型整体框架与改进

第1阶段采用改进型Cascade R-CNN作为基本检测模型,第2阶段对模型中S0阶段与S3阶段进行基于IOU阈值的级联提升检出率,最终接入一个基于圆形LBP纹理特征训练的SVM分类器,滤除误检框,得到最终的算法框架FCS R-CNN(图2)。

图2 FCS R-CNN网络模型结构图Fig.2 Structure diagram of FCS R-CNN

Cascade R-CNN是基于Faster R-CNN的网络框架(图2)。Faster R-CNN是由HE等[22]提出的目标检测网络,作为R-CNN[23]与Fast R-CNN[24]网络的改进版本,在结构上抛弃了传统的滑动窗口和选择性搜索(Selective search)候选框生成方法,引入区域生成网络(Region proposal network,RPN),并与Fast R-CNN共享特征提取网络,最终在检测速度和平均精度上有较大提高。Cascade R-CNN对Faster R-CNN网络中的RPN网络生成的包围框使用三步级联,IOU阈值分别设定为0.5、0.6、0.7,级联的过程不断改变候选框的分布,并且通过调整阈值的方式重采样,采样后的每个检测器都可以更好地适应当前阈值,提升检测性能。

为使网络能够克服复杂背景信息的干扰,针对Cascade R-CNN中的Faster R-CNN子模块,选取深度残差神经网络(Residual neural network,ResNet)[25]作为基本的特征提取网络,通过引入特征金字塔网络(Feature pyramid network,FPN)[26]和在线难例挖掘(Online hard example mining,OHEM)[27]技术进行改进,改进结果如图3所示。

另外,对Cascade R-CNN模型进行部分优化,针对原始网络中采用的批量归一化(Batch normalization,BN)方法[28]受到Batch Size影响导致网络性能下降的问题,引入群组归一化(Group normalization,GN),将通道划分成组,然后在每组中计算用于归一化的均值和方差。另外,针对相邻麦穗干扰导致的漏检问题,选取Soft-NMS算法代替传统的非极大值压缩(Non-maximum suppression,NMS)[29]方法对特征图中提取的候选感兴趣区域(Regions of interest,ROI)进行修剪,获取候选框并输入ROI pooling层进行池化操作。为了区分于最终的检测模型FCS R-CNN,并方便在试验结果中对FCS R-CNN模型效果进行递进式的验证,将基于Cascade R-CNN优化后的第1阶段模型称作C R-CNN。

2.2 特征金字塔网络

引入特征金字塔网络提升模型对视觉场景中尺寸较小目标的检测精度。LIN等[26]提出的特征金字塔网络作为一种高效的CNN特征提取方法,由自下而上路径、自上而下路径以及横向连接组成,主要解决物体检测时多尺度情形下存在的小目标漏检问题,通过改变网络连接,在不增加原有模型计算量的前提下可大幅度提升小物体检测的性能。如图3所示,FPN使用一个1×1的卷积过滤器将C5的通道深度降至256维,得到特征图M5。接着应用一个3×3的卷积得到特征图P5,P5正是用于目标预测的第一个特征映射。向上进行最近邻下采样(×2)得到P6,然后沿着自顶向下的路径往下,对之前的特征提取层进行最近邻上采样(×2)。同时,FPN对自底向上通路中的相应特征映射应用1×1卷积,然后进行相加。最后同样应用3×3卷积得到目标检测的特征映射。这一过滤器减轻了上采样的混叠效应。

图3 改进的Faster R-CNN子模块Fig.3 Improved Faster R-CNN submodule

2.3 在线难例挖掘

对于复杂场景中的麦穗检测而言,存在大量特征相似的正负样本,这些样本在训练过程中造成了较大干扰,导致模型预测误差放大,因此引入在线难例挖掘技术,针对性地解决这一问题。OHEM在训练过程中会自动选择那些困难样本加入训练,这样使得训练更加有效和快速,同时能提升网络的性能。如图3所示,将Faster R-CNN分为2个阶段,第1阶段包括通过特征提取网络对输入图像进行特征提取并输入ROI pooling层,该阶段对输入图像进行特征提取并收集输入的特征图像,提取目标特征图(Proposal feature maps)。第2阶段包括ROI pooling层之后的所有层。将第2阶段作为一个单独的ROI网络,接着将该网络分成2个网络,ROI网络1是只读的,对所有样本进行前向传播得到所有ROI的损失值,接着难例取样器(Hard ROI sampler)根据损失值排序,利用NMS选出K个难例(Hard example),并把这些难例作为ROI网络2的输入,ROI网络2对ROI进行进一步的前向和反向传播,计算K个难例的损失值,并将梯度反向传播,从而更新网络参数。通过损失值提高难例的比例,网络因此可以对难例进行多次训练,提升模型准确率。

3 试验与结果分析

3.1 试验设置

对采集的1 079幅小麦数据进行训练。软件环境为pytorch1.0.0、CUDA 9.0、CUDNN7.6.1、Ubuntu 16.04 LTS。训练的硬件环境为Intel Xeon E5-2650 v3 CPU,128 GB存储器,NVIDIA GTX Titan XP*2 GPU。利用随机梯度下降法(Stochastic gradient descent,SGD)训练网络,初始学习率(Learning rate)设置为0.001,动量因子(Momentum)设置为0.9,权重衰减系数( Weight decay)设置为0.000 1,迭代次数(Epoch)设置为200。

3.2 麦穗检测试验

为验证FCS R-CNN模型在复杂场景下的麦穗检测效果,针对FCS R-CNN中的2个阶段,分别设计两部分试验。试验1对比Cascade R-CNN和C R-CNN两种算法的检测结果,验证级联网络优化方法对Cascade R-CNN模型检测性能的提升效果。试验2展示FCS R-CNN的部分麦穗检测结果,在C R-CNN基础上,利用两阶段级联并串联SVM分类器的结构改进方法,验证模型的性能提升效果。

图4 Cascade R-CNN与C R-CNN检测结果对比Fig.4 Comparison of Cascade R-CNN and C R-CNN detection results

试验1随机选取两幅测试集图像(图A、B)分别输入到Cascade R-CNN与C R-CNN网络,进行麦穗检测效果对比,具体的识别结果如图4所示。对图4c、4d的局部进行放大便于观察。通过图4可以明显看出,C R-CNN检出大量Cascade R-CNN漏检的麦穗目标(图中黄色框标记)。图4c中4号、图4d中1号蓝色框标出的是C R-CNN误检的目标,该目标与正样本拟合程度较高,但是属于麦芒,因此属于假阳性(False positive,FP)。利用Cascade R-CNN网络检测验证集,共检测8 523个麦穗目标,并存在大量假阴性(False negative,FN)目标,图5给出了部分假阳性和假阴性样例,其中假阴性目标周围大多有大量麦芒、麦叶等遮挡物。对于漏检目标(假阴性),将NMS改为Soft-NMS来减少相邻目标重叠导致的冗余框误删,可以提升相邻较近目标的检测率,两种方法对比结果如图6所示。

图5 部分假阳性和假阴性的样例Fig.5 Examples of partial false positives and false negatives

图6 Soft-NMS与NMS算法结果对比Fig.6 Comparison of Soft-NMS and NMS algorithm results

图7 FCS R-CNN部分检测结果Fig.7 Partial detection results of FCS R-CNN

试验2针对上述广域复杂环境下生长的小麦,利用FCS R-CNN对麦穗进行检测。图7展示了部分检测结果,图中绿框表示C R-CNN的检测结果,蓝框表示阶段级联后增加的检出框。当麦穗密度较高时,大量麦芒遮挡周围麦穗,也存在部分麦穗重叠现象,可以看出,FCS R-CNN能够实现多种复杂情形下的麦穗检测,并且相对于C R-CNN有了更进一步的性能提升。

3.3 结果分析

对图4中两种算法结果的对比分析可知,复杂场景是影响麦穗检测精度、造成假阴性目标产生的主要原因,具体包括:①小麦长势不一,大量麦芒、麦叶的存在严重阻碍了麦穗识别(图4c中1、5、6号框,图4d中4、5号框)。②背景中存在与麦穗颜色相近的杂草等类似物,试验前未对杂草进行单独标注,引起干扰,从而影响麦穗检测。③部分目标由于在视觉场景中显示尺寸较小且密集,在背景相似的环境中,此类小尺寸目标极易受到环境噪声的干扰(图4c中2号框,图4d中2、5号框)。④麦穗之间存在相互重叠遮盖现象,不能正确识别(图4c中3号框,图4d中3、4号框)。

对图7中FCS R-CNN的检测结果进行分析可知,C R-CNN相对于FCS R-CNN的漏检麦穗(图中蓝色框),是由Cascade R-CNN本身存在缺陷导致,这可能与IOU阈值的提高有关。Cascade R-CNN由3个检测模型组成,每个检测模型都基于不同IOU阈值来区分正负样本,前一个检测模型的输出为后一个检测模型的输入,因此,在阈值提高的过程中,阈值较低时或处于两个阈值中间的正样本会出现遗漏,导致网络在训练过程中遗失掉部分候选区域(Region proposal)。

为了验证FCS R-CNN模型与单一网络模型的性能差异,选取相同样本数据集分别用FCS R-CNN、C R-CNN、Cascade R-CNN、Faster R-CNN 4种模型进行训练并将训练后的模型应用于真实环境下的大田麦穗计数中,对模型训练结果使用准确率(Accuracy)、精度(Precision)、召回率(Recall)和平均精度(Average precision,AP)对试验结果进行综合评价,计算公式为

(1)

(2)

(3)

(4)

式中Acc——准确率

P——精度

R——召回率

AP——平均精度

TP——真阳性,图像中正确检测出的目标麦穗数量

FP——假阳性,图像中将背景误识别为麦穗的数量

TN——真阴性,图像中检测出的负样本数量

FN——假阴性,图像中漏检的麦穗数量

表1给出了4种算法在相同测试集下的检测结果。IOU为0.5时 FCS R-CNN的平均精度取得最大值,比Cascade R-CNN高29.98个百分点,比Faster R-CNN高48.09个百分点。图8给出了其中3种算法精度与召回率的关系曲线,用来权衡准确率和召回率的关系。由图8可以看出,FCS R-CNN在召回率小于80%时精度维持在较高水平,高于另外两种算法,进一步证明FCS R-CNN性能上的优越性。FCS R-CNN的图像检测速度达到3 f/s,能够满足大田麦穗自动计数的需求。

表1 4种算法性能对比Tab.1 Performance comparison of four algorithms

图8 FCS R-CNN精度与召回率关系曲线Fig.8 Relationship curves of precision and recall of FCS R-CNN

Cascade R-CNN、C R-CNN与FCS R-CNN 3种模型的麦穗计数结果如表2所示。从表2中可以看出,应用FCS R-CNN模型的麦穗统计精度普遍高于95%,在麦穗较少的图像中能实现全检。216幅小麦图像中,共标注11 171个麦穗,共检出10 373个麦穗,检测精度达到92.9%。

表2 人工计数与算法计数的麦穗统计对比Tab.2 Comparison of manual counting and algorithm counting of wheat ear

不同算法统计结果表明,单一级联模型的识别结果容易受到IOU的影响,这是由于IOU提升会导致部分正样本遗漏,造成正负样本失衡,从而影响麦穗识别效果。面对复杂场景中麦芒、枯叶、杂草等环境噪声的干扰,会出现大量漏检的麦穗,通过模型阶段级联的方法,可以进一步降低漏检率。

4 结论

(1)针对复杂场景中麦穗检测精度较低的问题,提出一种基于深度卷积神经网络的麦穗计数方法(FCS R-CNN)。试验表明,在单一网络模型的基础上,对网络进行结构改进可以有效提高对复杂目标的检测性能。FPN的加入提升了对浅层细节特征的利用率,OHEM技术可以降低复杂背景信息对目标分割的干扰,并提高对小目标的检测精度;FCS R-CNN在大田环境下对麦穗的检测精度达到92.9%,单幅麦穗图像的检测时间为0.357 s,具有较强的实时性和鲁棒性。

(2)FCS R-CNN通过两阶段级联并串联SVM分类器对结果进行复验,能够有效解决因IOU阈值设定不规范而导致模型准确率下降的问题。算法的平均精度达到了81.22%,比Cascade R-CNN模型高21.76个百分点。IOU为0.5时平均精度为90.10%。

猜你喜欢
级联麦穗阈值
铀浓缩厂级联系统核安全分析
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
彩虹色的雨
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
辽宁强对流天气物理量阈值探索统计分析
三十里铺(外二首)
最大的麦穗
整体级联式增压空气冷却器的进气模块
一种改进的脉冲级联分离中间组分