基于Faster R-CNN的新疆棉花幼苗与杂草识别方法
2021-06-28许燕温德圣周建平樊湘鹏刘洋
许燕,温德圣,周建平,樊湘鹏,刘洋
(新疆大学机械工程学院,新疆 乌鲁木齐 830046)
新疆是中国最大的产棉基地,根据国家统计局的数据,2016年新疆棉花产量占全国总产量的67%[1].除草是棉花生产中的重要问题,主要是因为杂草抢夺棉花田间的营养来源,造成棉花产量的下降[2].大面积的除草剂喷洒不仅带来环境污染、农业成本增加,对食品安全也会造成威胁[3-4].为了推动棉花产业发展,避免环境污染等问题,可将机器视觉与农业结合,实现图像处理和图像分析[5].通过对棉花幼苗的识别,可以更好地辨别杂草与棉花,实现农业中除草剂的快速准确喷洒.
近年来,越来越多的学者在杂草识别方向展开了研究,其中邓向武等[6]以稻田苗期杂草为对象,为解决杂草识别的单一性,提取多个特征进行融合,利用DBN建立杂草识别模型,实现了91.13%的杂草精确率.BAKHSHIPOUR等[7]提出了一种融合几种形状特征以建立每种植物的识别模型,利用不变矩和傅里叶2种方法对形状特征进行描述,获得了95.00%的精确率.沈宝国等[8]提出基于颜色特征开展棉田中绿色杂草与棉苗的自动识别,对图像的红绿特征灰度图像进行动态阈值分割,通过信息融合确定绿色植物二值图像中的棉苗区域,确定其区域质心和面积,精度可达到74.00%以上.孙哲等[9]以西兰花幼苗为研究对象,提出了一种基于 Faster R-CNN 模型的作物检测方法,在Dropout 值为0.6的基础上以ResNet101网络为特征提取网络,达到了91.73%的平均精度. QUAN等[10]提出了基于改进Faster R-CNN在不同生长阶段和复杂野外环境下的玉米幼苗识别,使用10个选定的预训练网络来代替经典Faster R-CNN的CNN特征计算组件的网络,利用VGG19作为预训练网络对玉米幼苗和杂草进行了目标检测,精确率为97.71%.
新疆棉苗大多采用滴灌加地膜来减少水分蒸发.因此,棉田中杂草多为伴生杂草.上述方法针对的识别目标相互之间位置间距较大.杂草多为独立个体,对于新疆棉田中杂草的伴生特点易造成识别特征过拟合、识别精度低和定位不准确等问题.为了准确快速地识别棉花与杂草目标,文中拟通过深度卷积神经网络中的特征提取,采用Faster R-CNN模型[11]对不同自然环境下的棉花幼苗与杂草进行识别.Faster R-CNN能够直接将图像数据作为输入,依据田间环境下棉花与杂草图像特点,通过优化特征提取网络,减少图像预处理和特征抽取等复杂操作,加快特征提取的速度,有效提高识别效率.
1 数据采集与处理
1.1 图像采集
以棉花幼苗与其附带杂草为图像采集对象,时间地点为2019年5—7月新疆五家渠市某建设兵团某连的试验田,分5个阶段(每阶段相差10~12 d)采集,分辨率为4 000像素×3 000像素,格式为JPEG.为保证图像样本的多样性,图像样本包含不同光照强度和不同密集程度的伴生杂草等情况.为了使研究内容更加贴合实际,在采集样本图像前未对作物周围环境做任何人工处理.
1.2 颜色迁移与数据增强
颜色是识别杂草的重要特征,由于不同的光照影响,尤其是新疆地区光照时间强而久,且地膜易反光,容易造成图像特征缺失.为了更准确地识别杂草并保证识别算法的准确性,在特征网络中加入颜色迁移算法[12].
颜色迁移目的是增强目标图像的颜色特征,方便对图像的颜色特征提取.由于图像的RGB颜色空间是各分量之间线性相关的三维空间,颜色变化过程复杂,不利于色彩迁移.于是提出将RGB颜色空间转移到lαβ颜色空间,以削弱各分量的线性相关性,来减少迁移过程对图像质量的影响.首先把每幅图像的RGB颜色空间转换为LMS空间.具体公式为
(1)
LMS空间3个通道间的相关性很大,但转换后的数据在该空间中是分散的.为使数据分布更加聚敛,先将其转换到以10为底的对数空间中,再将图像从LMS空间转换到lαβ空间,即
(2)
式中:在lαβ颜色空间中,l为图像的亮度分量;α为黄-蓝通道分量;β为红-绿通道分量.
优化后Reinhard算法公式为
(3)
本次试验共采集棉花与杂草(小蓟、灰绿藜、马齿苋、田旋花)图像 5 370 张,其中采集单株棉花1 040张、单株杂草 2 614张、棉花与杂草混合 1 716 张.由于新疆天气多风,特在晴天和阴天时采集了多风时的样本图像作为研究特征.单株棉花幼苗与杂草对应样本集数量如表1所示,其中m为样本数量.
表1 不同环境下棉花与杂草对应的样本数量
图像采集过程中虽然已考虑样本所处环境的多样性,但棉花幼苗与杂草的生长以及成像角度具有随机性,因此对样本图像进行随机剪切,噪声添加,旋转和平移,进行数据增强,将总样本数扩大至4倍,提高训练模型的泛化能力.所有样本按照PASCAL VOC数据集格式以6∶2∶2的比例划分为训练集、验证集和测试集,训练集进行模型训练,验证集用于参数调整,测试集主要进行模型性能的评估.部分样本图像如图1所示.
2 识别方法
2.1 Faster R-CNN深度网络模型框架
Faster R-CNN网络是将RPN检测对象的感兴趣区域进行分类,主要通过2个核心模块完成: ① 区域候选网络(RPN),用于识别可能包含对象的感兴趣区域(ROI);② Fast R-CNN检测器,用于对提取的区域候选进行分类并细化相应对象的边界框.这2个部分共享1组基本卷积层(转换层),激活函数ReLU和池化层用来提取图像特征映射,产生感兴趣的ROI.然后RPN输出到第1卷积层,再从第1卷积层产生的特征图中裁剪出相应的区域.使用SoftMax回归来确定锚点是属于前景或者背景,然后使用边界框回归来纠正锚点,以获得准确的建议,同时使用边界框回归来获得检测框的最终精确位置.图2为使用的Faster R-CNN模型结构图.
图2 棉田Faster R-CNN识别模型结构
2.2 区域候选网络(RPN)和锚(Anchor)
Faster R-CNN端到端的目标检测是通过RPN网络提取候选框实现的.RPN网络是全卷积网络,当特征图传入RPN后,由3×3的滑窗生成1个n维长度的特征向量,然后将此特征向量分别传入分类层与回归层,在分类层中,使用Softmax分类器对锚点进行前景与背景的判断.在回归层中,通过调整锚点边框的中心坐标与长宽,拟合出候选框位置.生成区域候选之前需要确定图像的最佳锚尺度,RPN以16像素的步幅评估图,向每个位置的不同边界框形成的盒子称为锚.
3 试验结果与分析
3.1 试验平台
试验整个过程的运行环境为Windows7(64位)操作系统,NVIDIA Quadro M2000 显卡,Anaconda 3.5.0,Python 3.5.6,CUDA 8.0,cuDNN 6.0,搭载Intel(R) Xeon(R) CPU E5-2630 v4 @2.20GHz处理器.使用开源深度学习框架Tensorflow作为开发环境,计算机内存16 GB.
3.2 试验设计
为提升模型性能,减少过拟合,以预训练模型进行参数初始化设置,使用SGD(stochastic gradient descent)随机梯度下降法改善模型.dropout设置为0.5,最大迭代次数为 60 000步,学习率最初设为0.010 0,迭代次数是20 000步时,降为0.001 0,40 000步时降为0.000 5,直到迭代次数达到最大值后停止训练.另外,为了提高内存利用率,将批次大小设为256;为获得最佳候选框,将NMS(非极大值抑制)值设为0.3.最后,得到训练好的网络模型,使用测试集对模型效果进一步验证,输出识别结果.
预训练网络具有不同的特征,在选择网络时必须考虑它们的特征,例如VGG(visual geometry group network)网络中VGG16[13]和VGG19[14]网络的最后一个最大池化层是由ROI最大池化层替换,而ResNet(Residual Network)网络中的ResNet50和ResNet101网络[15]是在特征提取层之后插入ROI池化层,并且网络的精度、速度和大小都是影响目标识别精度的因素.为选取更适合文中研究对象的特征提取网络,对VGG16网络、VGG19网络、ResNet50网络和ResNet101网络进行试验对比,4种网络的P-R曲线对比效果如图3所示,图中P为精确率,S为召回率.通过计算得到的试验对比结果如表2所示,其中t为平均识别时间,表示所有类别识别总时间/所有类别图像总张数,η为平均识别精度,表示精确率-召回率的曲线积分.
图3 特征提取网络P-S曲线对比
表2 特征提取网络试验结果对比
从图3可以看出,VGG16网络的识别性能要优于其他网络,再结合表2可以看出,特征提取网络VGG16的平均识别时间虽不是最少,但识别精度最高,为91.49%.因此,在满足识别时间的前提下,选取VGG16网络为特征提取网络.
3.3 结果与分析
棉田中棉花与杂草共同生长在一片区域,会出现不同密集程度的交叉生长现象,在杂草识别中容易带来无法识别或者识别错误等问题,如图4a所示.这是造成杂草识别精度低的主要原因之一.将棉花幼苗作为识别对象可以在识别过程中区别于杂草,避免错误识别现象,如图4b所示.因此,通过对棉花幼苗的识别,可间接提高杂草的识别率.
图4 对杂草和棉花幼苗进行识别
为了显示所提出方法的有效性,在保证相同的图像处理方法和VGG16特征提取网络下进行Faster R-CNN与SSD[16]的对比,以及文中方法和文献[10]中的方法对比,结果如图5所示,其中L′为损失,i为迭代次数,P′为精度.
从图5可以看出,文献[10]的方法在损失值和精度2个方面表现都不好.SSD在精度方面也不如Faster R-CNN,虽然在10 000迭代次数附近损失值好于Faster R-CNN,但是随着迭代次数的增加,Faster R-CNN模型优势越来越大.
图5 3种方法的损失及精度对比
4 结 论
1) 针对新疆棉田特点提出了一种棉花幼苗与杂草基于Faster R-CNN的识别方法,包括预处理方法和对VGG16网络、VGG19网络、ResNet50网络和ResNet101网络作为特征提取网络的对比试验.确定了VGG16网络为最佳特征提取网络.通过对样本数量的增强、棉花幼苗的识别以及考虑多种天气因素,训练出了识别精度较高、鲁棒性较好的Faster R-CNN网络模型,并将该模型与SSD、文献[10]进行了对比试验,结果表明文中方法在伴生特点的杂草中识别精度更高,表现出平均精度为91.49%.
2) 以VGG16为特征提取网络的Faster R-CNN模型对新疆早期棉田的杂草识别具有很好的识别效果,能够有效识别自然环境下混合生长的棉花幼苗与杂草,且识别时间短,可为智能化机械除草提供有益的参考.