基于YOLOv3 网络的小麦麦穗检测及计数

2021-02-07 03:32郝王丽尉培岩席瑞泽
湖北农业科学 2021年2期
关键词:麦穗个数尺度

郝王丽,尉培岩,韩 猛,张 丽,席瑞泽

(山西农业大学软件学院,山西 太谷 030801)

小麦(Triticum aestivumL.)作为中国第二大粮食作物,近1∕3 的人口以其为主粮。目前,小麦产量预测方法有:人工田间判断预测、电容量预测[1]、基于年景预测[2]、基于遥感图像预测[3]以及气候和供求关系分析预测[4]等方法。人工田间判断凭借经验,不仅准确率低且人力物力的消耗较大。电容量测产方法所需的成本较高且测量小麦密度不高效。遥感技术基于卫星拍摄的图片样本,由于拍摄距离远,只适合处理和分析面积大的田地,预测的准确度较低。而气候和供求关系分析预测及年景的预测方法只适合大范围的预测,其估计值较粗略,对于田间精细的产量估计和育种则不适用。

近年来,深度学习(Deep Learning)在许多领域取得了显著的成果[5],如计算机视觉、自然语言处理、语音识别和语义分析等领域[6]。聚焦计算机视觉领域中的目标检测,Girshick 等[7]提出 R-CNN 目标检测模型,该模型受滑动窗口思路启发,采用基于区域的识别方案,检测性能较好,但R-CNN 算法复杂度高且耗时较长。研究者们提出了一系列基于候选框区域的改进方案,如 SPP-net[8](聚焦解决剪裁方法可能出现问题,对不管是否经过剪裁的图像提取统一维度的特征)、Fast R-CNN[9](聚焦解决候选框重复计算的问题)、Faster R-CNN[10](使用RPN 替代选择性搜索),R-FCN[11](在网络最后用卷积层代替全连接层)。另一条网络改进路线是基于回归的方法,包括YOLO[12](候选框确定采用直接回归的方法)、SSD[13](在分类和多尺度特征映射 2 个方面对YOLO 进行改进)、YOLOv2[14](在 YOLO 基础上从性能和速率方面对其进行了改进)、YOLOv3[15](在网络结构,类别预测及多尺度3 个方面对YOLOv2 进行改进)算法等。这些基于回归方法跟上述基于候选框区域方法相比速度更快。其中,YOLOv3 检测算法性能良好,速度高效且对小目标物体检测更有效。

因此,本研究采用基于YOLOv3 的神经网络进行特定标注框内小麦麦穗进行识别和检测分析,旨在高效、准确地实现小麦麦穗检测以便助力小麦产量估计。

1 YOLOv3 网络结构及其损失函数

1.1 YOLOv3 网络结构

YOLOv3 网络结构如图1 所示,主要包括特征提取和多尺度检测 2 个模块[16]。YOLOv3 的特征提取采用的是 Darknet-53[16](53 特指53 层),该结构可保留原图大部分信息,同时又能提取目标的大部分特征。此外,Darknet-53 受残差网络(Resnet)设计思想的启发,将残差模块集成到网络中。该设计可有效缓解深层网络的梯度弥散后梯度爆炸问题以便提升检测性能,每个残差模块由2 个卷积层和1 个shortcut 连接。多尺度检测模块包括3 个尺度的检测流,具体包括13×13、26×26 和52×52 检测流,可实现多尺度图像的检测,尤其是可提高小目标检测的精确度。对于输出层的Logistic,其主要采用sigmoid函数,该函数可把值约束在区间(0,1)内。若某一边界框类别置信度经过sigmoid 函数后的值大于0.5,则表示该边界框内的目标属于该类[17]。

小麦麦穗检测任务所涉及数据集中的麦穗对象较小,传统的目标检测方法对此类物体检测效果较差。YOLOv3 中多尺度模块可实现对麦穗的有效检测,同时YOLOv3 的Darknet-53 因为其深层的结构可获得更好的检测性能。采用YOLOv3 网络实现小麦麦穗检测,随后基于麦穗检测结果统计小麦麦穗个数。

图1 YOLOv3 网络结构

1.2 损失函数

损失函数的作用是衡量模型预测值与真实值间的误差,并基于每次计算出来的误差值来更新模型。YOLOv3 的损失函数旨在衡量预测框与真实框间的差距,并通过训练不断减小其误差值。YOLOv3 的损失函数定义[7]如下:

其中,Lbox代表预测框的坐标及长宽与对应的真实框坐标及长宽间的误差,Lcon代表预测区域置信度误差,Lcls代表物体的分类误差[16]。

2 结果与分析

2.1 数据集构建

2.1.1 数据集采集及构成 为实现有效的小麦麦穗检测,构建了1 个新的数据集。图像数据集使用实地拍摄的有白色框圈出的特定区域小麦图片作为识别小麦麦穗的数据样本。数据集共包含3 种小麦品种,总共1 527张图片。其中,训练集1 000张、测试集527 张。采集图像存储格式为JPG,分辨率为4 608×2 592。采集的部分原始小麦图像如图2 所示。

2.1.2 数据集标注 检测任务数据集中图片的目标区域需要有标注框,如图3中包含麦穗的绿色顶点橘红色边缘的标注框。新建数据集的标注采用labelImg软件,具体对小麦图片白色框框住的特定区域内的麦穗进行标注。labelImg 对某一小麦图像标注完成后,会生成与之对应的xml文件。标注后的3 种小麦如图3 所示。

在所生成的xml 文件中,所有信息都存储在<annotation>标签中,该文件中包含图片的大小、标注框名称以及目标边框位置信息等。<object>标签的个数代表了标注框的个数,目标边框位置信息通过边框的左上角和右下角两点在原图中的坐标来标记,分别用(xmin,ymin)和(xmax,ymax)表示[18]。随后将标记图片生成的xml 文件转换为txt 文件,txt 文件中包括图像保存路径(image_path),标记框左上角坐标(x_min,y_min),标 记 框 右 下 角 坐 标(x_max,y_max)信息。

图2 原始小麦图像

图3 小麦麦穗标注图

2.2 训练过程

采用的硬件设备配置为:显卡是GTX TITANXP 12G,处理器是I77800 X。所有试验均基于tensorflow 框架完成。模型的训练参数设置如下:batchsize为2,动量值为0.9,学习率为0.000 1,训练迭代次数为100 000。

2.3 检测结果

采用网络模型对数据集进行训练,基于训练好的模型,测试集的平均精度mAP 值为67.81%,性能良好,与其他网络的对比结果如表1 所示。测试集的检测结果示例如图4 所示。为进一步验证模型的检测效果,基于检测结果统计了特定区域中小麦麦穗个数,并计算麦穗计数准确率。麦穗计数准确率=预测小麦个数∕实际小麦个数×100%。

表1 不同检测框架的麦穗检测及麦穗计数准确率

试验结果表明,YOLOv3 麦穗计数准确率是93%,麦穗个数统计效果理想,跟其他网络准确率对比结果如表1 所示。

图4 小麦麦穗检测结果

3 小结与讨论

基于YOLOv3 网络,本研究获得了比Faster RCNN[10]、YOLOv2[14]更好的小麦麦穗检测及麦穗个数计数结果。YOLOv3 网络的层数更深,可以提取到更好的特征。同时,YOLOv3 是基于多尺度预测模块,可将多尺度特征间的互补信息充分挖掘出来,有利于不同尺度物体的检测,即不同尺寸小麦麦穗都可更有效地检测出来。

在麦穗计数试验中,部分麦穗统计失败的原因是在对特定框小麦检测应用中,存在小麦遮挡、重叠以及特定标注框内小麦越界到框外、框外小麦进入标注框内,导致真实小麦麦穗数和预测小麦麦穗数不一致。

本研究提出了一种基于YOLOv3 网络的小麦麦穗检测方法,在3 种小麦品种上达到了比较理想的麦穗检测效果,同时实现了准确的麦穗数目统计。此外,构建了1 个新的麦穗检测数据集,为小麦产量估计和育种提供了可靠的研究基础,下一步将继续聚焦如何构建更有效的麦穗检测网络。

猜你喜欢
麦穗个数尺度
五月麦穗金灿灿
怎样数出小正方体的个数
彩虹色的雨
财产的五大尺度和五重应对
等腰三角形个数探索
怎样数出小木块的个数
麦穗穗
怎样数出小正方体的个数
拣麦穗
宇宙的尺度