基于深度学习和无人机遥感技术的玉米雄穗检测研究

2020-07-20 02:44梁胤豪董彩霞杨长才
福建农业学报 2020年4期
关键词:框架精度玉米

梁胤豪,陈 全,董彩霞,杨长才,4

(1. 西北大学数学学院,陕西 西安 710127;2. 福建农林大学农林大数据研究院,福建 福州 350002;3. 福建农林大学计算机与信息学院/数字福建农林大数据研究所,福建 福州 350002;4. 智慧农林福建省高校重点实验室,福建 福州 350002)

0 引言

【研究意义】玉米是世界上最重要的谷类作物之一。玉米抽雄期是决定玉米产量最关键的时期,雄穗是判断玉米是否进入抽雄期的主要依据。持续监测玉米雄穗的生长可以确保玉米的安全性、质量和单产[1]。传统育种中,雄穗主要依靠人为识别,效率低下,主观成分高,识别的样本量有限。因此,快速准确的鉴定对于更好地了解玉米的表型特征非常重要。【前人研究进展】随着计算机视觉和基于图像的植物表型平台的发展,研究人员轻松获得了高分辨率的植物生长图像。搭载高清摄像机的无人机的最新应用发展极大地增加了样本量[2-4]。深度学习算法已被广泛用于计数茎[2]、幼苗数[3]和小麦穗数[4]。玉米雄穗的早期检测算法是利用支持向量机方法[5]对图像进行分割,但是,图像捕获过程的吞吐量较低,劳动强度大,无法应用于更大的领域。Lu等[6-7]开发了mTASSLE软件,以自动细粒度机器视觉系统监视玉米雄穗性状的不同阶段,并提出了TasselNet对玉米雄穗进行计数,但样本数量仍然有限。Liu[8]通过基于无人机航拍图像,采用Faster R-CNN目标检测算法高通量的自动检测雄穗数量,在15 m高度的无人机图像中,检测精度能达到90%,然而Faster R-CNN的模型参数较大,检测速度相对较慢。【本研究切入点】衡量不同模型的性能,除了要采用相同的数据集,还要使用相同的评价准则。除了mAP指标外,预测的雄穗个数和真实的雄穗个数的差异也是衡量的重要指标。【拟解决的关键问题】本研究利用无人机采集图像数据,通过提高表现测量的通量,考量不同模型的检测精度、检测效率和参数大小,最终获得一个检测精度高、速度快、轻量且适合部署在无人机机载平台上的模型。

1 材料与方法

1.1 试验田、图像采集和标签

图像数据集来自福建省南平市福建农林大学试验田。试验田一共种植了128行不同品种的玉米,每行30个重复。无人机采用大疆公司生产的Phantom4 Pro,通过无人机对试验田进行航线规划,选择天气晴朗、光照适度的天气进行拍照。考虑到无人机的续航能力及地面的分辨率,将无人机飞行高度设置为离地面25 m,摄像机分辨率为5 280×3 648像素,地面分辨率为1.0 cm·像素-1。航线规划使用大疆的DJI Terra软件(版本 2.2.0.15)(图1),根据实际农田场景,设置航向重叠率和旁向重叠率为90%,无人机飞行速度由软件自动设定,为1.2 m·s-1。共采集了236张田间玉米的图像,为了减少数据处理时间,将原始图像裁剪并过滤成分辨率为1 024×1 024的100张图像。

图1 无人机航线规划Fig.1 Planning of UAV flight routes

使用图像注释工具LabelImg[9]对裁剪过的图像进行雄穗边界框标注(图2)。图2所示玉米雄穗的所有像素都在边界框的范围内。带注释的图像根据3∶1比例随机分为训练验证集和测试集。

1.2 目标检测框架

图2 试验田、航线设置、DJI无人机与LabelImg数据标注Fig.2 Experimentation field, flight routes, DJI drone, and LabelImg data annotation

在图像处理中,图像里有多个感兴趣的目标,不仅需要知道它们的类别,还需要得到它们在图像中的具体位置。在计算机视觉里,这类任务称为目标检测(object detection)或物体检测[10]。基于深度学习的目标检测框架,目前主要分为两类:一是基于one-stage的框架,如SSD[11](Single Shot MultiBox Detector)、YOLO[12](You Only Look Once)等,能够同时完成检测和回归任务;另一类方法则是基于twostage的学习框架,将检测任务分为回归(location)和分类任务,如R-CNN、Fast R-CNN、Faster R-CNN[13]等。总体而言,two-stage框架任务准确率相对较高,但是运行速度比较慢;one-stage则能够达到实时性,但牺牲了部分精度。

Faster R-CNN[13]采用池化的方法将训练数据调整到统一尺寸,将分类与回归任务合并到一起进行训练,构建区域预测网络(RPN)直接产生Region proposal来得到感兴趣区域,利用这种方式实现端对端的训练。YOLO v3[12]的基本思想主要是通过输入图像提取特征获得特定大小特征图,然后利用网格单元来进行预测并通过RPN预测一定的边界框。SSD[11]使用了多尺度特征进行检测,SSD不仅在最后的特征层上产生锚框,在几个高层特征层处也都有产生锚框。同时SSD中所有特征层产生的锚框都经过正负样本的筛选,然后进行分类分数以及边框的学习。

1.3 目标检测模型在玉米雄穗数据集上的训练

试验使用的框架基于 MXnet[14]和 GLounCV。MXNet是由DMLC(分布式机器学习社区)打造的深度学习框架,同时也是亚马逊云官方深度学习框架,它集合了符号式编程以及命令式编程,能够提供多样化的环境,同时还有多种预训练模型可供使用。GluonCV是MXNet的深度学习工具箱,提供了计算机视觉领域最先进的(SOTA)深度学习算法。模型训练的试验平台参数如表1所示。

深度学习模型训练中,batch-size的大小决定了深度学习训练过程中完成每个单次训练迭代(epochs)所需的时间和每次迭代(iteration)之间梯度的平滑程度[14]。学习率(learning rate)也是深度学习训练中重要的超参数之一,当学习率设置过小时,收敛过程将变得十分缓慢。而当学习率设置的过大时,梯度可能会在最小值附近来回震荡,甚至无法收敛。

对于目标检测模型而言,不同的特征提取网络对模型最终的效果也有极大影响。考虑到基于无人机检测玉米雄穗的实时性和机载平台有限的计算资源,SSD的前置网络除了采用网络层数较多的ResNet50,还尝试了更轻量型的mobilenet。结合试验环境与数据类型,最终在Faster R-CNN,YOLO v3和SSD框架下设定训练参数,如表2所示。

1.4 损失函数

Faster R-CNN的损失函数(Loss Function)如公式(1):

表1 试验硬件与软件信息Table1 Information on hardware and software for testing

表2 模型训练的超参数Table2 Hyperparameters for model training

Lcls是两个类别的对数损失,函数为:

SSD的损失函数为:

YOLO v3的损失函数为:

1.5 模型评价

平均精确度(Mean of average precision,mAP)是目标检测模型性能的衡量标准。mAP的计算涉及查准率和查全率,查准率(Precision)是指在所有预测为正例中真正例的比率,也即预测的准确性。查全率(Recall)是指在所有正例中被正确预测的比率,也即预测正确的覆盖率。在目标检测中,交并比IoU衡量的是两个区域的重叠程度,是两个区域重叠部分面积占二者总面积(重叠部分只计算一次)的比例。物体检测中的每一个预测结果包含两部分,预测框(bounding box)和置信概率(Pc)。当预测的类别正确且置信度大于一定阀值(P_threshold),并且预测框与真实框(ground truth)的IoU大于一定阀值(IoU_threshold)时,认为预测时正确的。在衡量模型性能时,IoU_threshold先取一个定值,然后综合考虑各种P_threshold取值时的性能。设定不同的阈值,计算相应的Recall和Precision。在同一个坐标轴上,绘制Precision-Recall曲线,将曲线平滑化,并计算曲线的AUC(Area under curve),即为AP值。当检测任务有多个类别时,mAP是各个类别AP的均值。

目标检测技术在实际应用中除了对准确度有很高的要求,在速度上也要求模型能尽量快地进行感兴趣物体的检测。一般来说目标检测中的速度评价指标有:(1)FPS,检测器每秒能处理图片的张数;(2)检测器处理每张图片所需要的时间。此外,在无人机上部署目标检测模型也需要考虑机载平台的内存资源有限,模型的大小决定所需占用的内存需求。基于此,文章对模型的FPS和内存也进行对比。

2 结果与分析

2.1 Faster R-CNN、YOLO v3和SSD框架在数据集上的训练与评估

Faster R-CNN模型的损失函数为RPN_conf、RPN_SmoothL1,Cross entropy和RCNN_SmoothL1,训练过程的损失函数曲线如图3-(1)所示;SSD模型的损失函数为Cross entropy和Smooth L1,基于ResNet50和mobilenet的SSD训练过程的损失曲线分别如图3-(2)和图3-(3)所示;YOLOv3的如图3-(4)所示。

从4个模型运行过程的损失函数中能够清晰地看到,在经过300次迭代后,各框架的损失函数均已经趋于平稳,验证了试验前期数据设置的合理性,具体数据如表3所示。从mAP的数值上来看,Faster R-CNN的数值最高,表示其检测精度最高。YOLO v3和Faster R-CNN相当,而SSD_ResNet50和SSD_mobilenet的mAP值都相对较低,分别为0.490 5和0.578 0。

2.2 模型在测试数据上的测试结果

在同一硬件资源和数据集下,分别使用Faster RCNN、YOLO v3和SSD等3种主流目标检测框架进行对比,其中考虑到实际使用中需要在无人机机载平台上轻量级的部署训练好的模型,SSD的特征提取网络除了使用ResNet50,还使用了mobilenet。对已经标记好的25张玉米雄穗训练集进行测试,并对最终的训练结果进行了分析对比。

特征提取网络使用mobilenet的SSD网络对图像中雄穗的训练识别结果如图4所示;特征提取网络使用ResNet50的SSD网络对图像中雄穗的训练识别结果如图5所示;在Faster R-CNN框架下,对图像中玉米雄穗的训练识别结果如图6所示;在YOLOv3框架下,对图像中玉米雄穗的训练识别结果如图7所示。从3种前沿框架的处理结果能够看到:在相同数据集和与硬件平台基础上,one-stage架构的YOLO v3的测试效果相比于Faster R-CNN与SSD要差,图像中许多十分明显玉米雄穗都并未被识别出来,整体情况如图8所示。YOLO v3在对玉米雄穗的判别上,误差也较为明显,整体误差相对较大,并未实现精准高效的判别效果。

图3 模型在训练过程中的损失函数曲线Fig.3 Loss function of model during training

表3 模型的mAP Table3 mAPs of models

图4 SSD_mobilenet的预测结果Fig.4 Prediction by SSD-mobilenet

图5 SSD_ResNet50的预测结果Fig.5 Prediction by SSD_ResNet50

图6 Faster R-CNN的预测结果Fig.6 Prediction by Faster R-CNN

图7 YOLO v3的预测结果Fig.7 Prediction by YOLOv3

使用基于ResNet50的SSD模型和基于mobilenet的SSD模型则基本上实现了对玉米雄穗的识别,但在光线不足或者过度曝光的图像中,依然存在漏检的情况,如图4、图5和图8所示。相比之下,Faster R-CNN模型实现了对玉米雄穗的准确判别。在部分样本中,在出现光线过度曝光以及颜色干扰等极端的情况,基于Faster R-CNN框架的依然能够做到相对精准的判别,部分案例如图6和图8所示。

总体而言,在模型的预测上,Faster R-CNN识别精度最高,漏检和误检率最低;YOLO v3识别精度最低,漏检和误检率最高(表4)。SSD_ResNet50和SSD_mobilenet的识别精度略低于Faster R-CNN。

图8 模型的预测结果对比Fig.8 Comparison of predictions by various models

表4 模型的测试误差和计数准确率比较Table4 Comparison of test errors and detection accuracies by models

在模型对玉米雄穗的计数上,根据计算预测的框数和实际的雄穗数据做误差分析,结果显示(表4),Faster R-CNN准确率最高,达到93.79%,SSD_ResNet50和SSD_mobilenet的准确率分别为87.6%和89.9%;YOLO v3的mAP值较高(表3),但是实际测试的计数准确率却非常低,仅有20.04%。在模型的训练过程中,绘制出4种算法的mAP变化曲线,如图9所示。

2.3 模型的性能比较

实际应用中,除了要考虑模型的精度和误差,还要综合考虑模型的性能,主要包括模型的处理速度和参数大小。

在数据的处理速度上,3种模型的处理性能也是差异明显(表5)。从表5可以看出,Faster R-CNN处理性能最差,为2.6 samples·s-1(每秒处理的样本数);SSD_ResNet50 的检测效率为 7.4 samples·s-1;YOLO v3 为3.47 samples·s-1,最快的是 SSD_mobilenet,处理速度为8.9 samples·s-1,领先优势十分明显。SSD的效率较高,但是精度不高;Faster-RCNN的效率较低,但是精度比较高。

图9 模型训练过程的mAP曲线Fig.9 mAP curves of models in testing

无人机对田间玉米进行大规模扫描成像后,需要及时、快速地计算出检测结果,并且无人机的机载资源有限,续航能力也限制了无人机的应用。因此,在模型的选择上,除了要考虑精度、速度,也要考虑模型的大小。模型越小,占用的计算资源越小,从而更容易部署在无人机系统上。各个模型在训练之后,保存到内存中,通过计算文件的大小来衡量模型的尺寸。如表表5所示,SSD_mobilenet模型的参数最小,仅有55.519 M;YOLO v3占用资源最大,占用了241.343 M的存储;Faster R-CNN和SSD_ResNet50大小相当,分别为133.873 M和 144.277 M。仅从模型大小上来说,SSD_mobilenet更适用于无人机的机载系统部署,因为其所占用的资源较小。

表5 模型的处理速度和参数大小比较Table5 Comparison of processing speeds and parameters of models

3 讨论与结论

通过使用深度学习目标检测中的Faster R-CNN、SSD以及YOLO v3等3种主流的框架,对标注好的玉米雄穗数据集进行训练和识别。在选定硬件与软件平台的基础上,通过设置损失函数、迭代次数、学习率等参数,对数据进行训练与测试。以识别精度、计数精度、处理速度和模型大小等重要指标作为评价标准,并结合最终处理效果作为对比,Faster R-CNN框架识别精度和计数准确上最高。而对于模型的处理速度和模型的大小,SSD_mobilenet处理效率最高,模型占用计算资源最小。

Faster R-CNN的计数准确率为93.79%,SSD_mobilenet的计数准确率为89.9%;处理速度上,SSD_mobilenet为 8.9 samples·s-1, Faster R-CNN 仅 为 2.6 samples·s-1,SSD_mobilenet的速度比 Faster R-CNN 低了近3倍;模型大小上,Faster R-CNN高出SSD_mobilenet近2倍。相对于Faster R-CNN,SSD_mobilenet牺牲部分精度,获取更快的处理速度和占用更小的计算资源,是比较理想的机载模型选择。

从试验整个过程的识别精度中也能看出,三大主流框架中Faster R-CNN的整体表现最好,整体曲线趋于平稳;而YOLO v3识别精度曲线则是波动剧烈,同时在整个处理期间都存在明显波动。

虽然经过试验,Faster R-CNN、YOLO v3和SSD的对比分析中,Faster R-CNN和SSD已经实现了精准高效的自动判别,但是本研究工作依然存在一定的缺陷与不足。尤其是前期遥感数据采集过程中因为天气等原因,出现了图像质量不够完美,部分样张因为拍摄角度和光线的问题被剔除,对样本数据量造成了一定的影响,也对后期识别造成了一定的干扰。

虽然Faster R-CNN模型最终达到了预期效果,但在处理过程中依然存在数据设定不够完善的情况,影响了最终数据的识别效果。在硬件方面,更好的硬件平台可以实现对数据更加充分高效的处理,本次试验设备处理性能相对一般,并未彻底的展现出各模型的优劣,最终也影响了处理性能与数据的处理效果。

猜你喜欢
框架精度玉米
热连轧机组粗轧机精度控制
框架
收玉米啦!
广义框架的不相交性
超高精度计时器——原子钟
我的玉米送给你
分析误差提精度
基于DSPIC33F微处理器的采集精度的提高
关于原点对称的不规则Gabor框架的构造
一种基于OpenStack的云应用开发框架