基于改进YOLO-V3网络的百香果实时检测

2020-12-01 04:15唐熔钗伍锡如
关键词:百香果尺度精度

唐熔钗,伍锡如*

(1. 桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004;2. 广西高校非线性电路与光通信重点实验室(广西师范大学),广西 桂林 541004)

随着智慧农业[1]的发展,利用计算机视觉技术对农作物实时检测成为了更好培养和管理农作物的重要手段。近几年,目标检测方法[2-5]在农业水果采摘和分类领域中被广泛应用。百香果在我国热带和亚热带地区广泛种植,具有很高的市场经济效益。在百香果种植过程中,要想实现果实生长信息监测、产量预估以及机器人自动采摘果实,首先需要对百香果进行准确的识别和定位。然而,果实重叠、枝叶遮挡、光照变化等各种干扰是现实果园中无法避免的因素。因此,在复杂环境中精准检测百香果果实仍是一个需要解决的难题。

传统的水果检测方法多基于图片的颜色和纹理来对目标进行分类检测。陈雪鑫等[6]通过多颜色特征和纹理特征进行融合方法对多种水果进行分类和识别,虽然在精度上有所提高,但是在复杂背景下对水果分类和识别不理想。深度学习[7]作为机器学习的一个分支,近几年在目标检测、目标分割、目标分类和目标识别研究上起着重大的作用[8-11]。在非自然场景下水果识别领域中,朱玲[12]通过K-means方法对水果不同等级进行识别。此外,在非自然场景下水果分类领域,Zhang等[13]使用13层CNN对水果进行分类,该方法的分类精度达到94.94%,是目前水果分类研究中最先进的分类网络之一。以上在非自然场景下对水果的识别和分类研究中,尽管在识别和分类精度上取得了不错的效果,但是对复杂背景的抗干扰能力却不理想。基于Mask-RCNN网络对真实场景下的草莓检测,Yu等[14]以Resnet-50作为骨干网络并和特征金字塔相结合进行草莓的特征提取,在识别精度上取得不错效果,但实时检测性能还需进一步提高。两级目标检测网络Faster-RCNN[15]是目前流行的检测网络之一。水果检测系统[16]使用Faster-RCNN网络能精准识别不同水果类型和准确定位水果位置,但同样缺乏实时性检测。随着对神经网络检测实时性能的要求,研究人员提出了YOLO[17]、YOLO9000[18]、YOLO-V3[19]等实时目标检测网络。YOLO系列网络是单级目标检测网络,直接通过网络以端对端的方式预测目标的位置和类别。针对自然环境下水果的检测,研究者们利用YOLO系列网络来对目标进行快速检测。如:薛月菊等[20]提出在YOLO-V2网络中添加密集连接网络对真实果园中未成熟的芒果进行检测;Tian等[21]对YOLO-V3网络进行改进,在真实果园中分级检测苹果。

当前,在背景复杂、果实重叠、枝叶遮蔽等真实环境下对果实精准检测仍是一个亟需解决的难点。为此,本文将以YOLO-V3为基础网络,在特征传播层添加DenseNet网络来增强特征传播,针对百香果为小型目标的特点,减少多尺度特征融合,从而加快网络的检测速度。

1 改进的YOLO-V3网络

1.1 YOLO-V3网络

YOLO-V3网络将目标检测任务转化为回归问题处理,有利于提高物体的检测速度。YOLO-V3网络结构如图1所示。特征提取模块由Darknet-53网络和多尺度融合2部分构成,不同大小的卷积层构成Darknet-53网络。输入图片通过卷积层得到13×13、26×26、52×52等 3个不同大小的尺度特征图。为了更好地学习图片中的特征,52×52的特征图通过上采样与26×26的特征图进行融合。同理26×26的特征图通过上采样与尺度13×13的特征图进行融合。通过多尺度融合将深层特征和浅层特征连接进行特征的提取有利于提高网络的检测精度。3种不同尺度的预测同时构成YOLO-V3网络的输出结果检测,其中尺度1、2、3分别负责小、中、大物体的预测。

图1 YOLO-V3网络结构Fig. 1 Network structure of YOLO-V3

1.2 DenseNet网络

在卷积网络中,随着网络层次的加深,图像特征的传递会逐渐削弱。针对在模型训练过程网络层数不断增加出现的特征提取和特征传递削弱问题,引入DenseNet网络将特征进行重用,防止出现特征消失,从而提高网络的性能。图2为DenseNet网络的基本结构,可知:H1的输入是X0,H2的输入是X0、X1,以此类推,Ht的输入是X0,X1,…,Xt-1,即在该网络中,每一层的输入都来自前面所有层的输出。

Xt=Ht([X0,X1,…,Xt-1]),

(1)

式中:[X0,X1,…,Xt-1]表示X0,X1,…,Xt-1层的特征映射拼接;Ht是用于特征拼接的函数。基于DenseNet网络特有的密集网络结构,本文使用DenseNet网络强化浅层卷积层的特征传播。

X0是输入的图片特征;X1、X2、X3、X4是密集块;H1、H2、H3、H4是DenseNet网络特有的函数块。图2 DenseNet网络结构Fig. 2 Network structure of DenseNet

1.3 改进的YOLO-V3网络

真实果园中的百香果背景环境十分复杂,自然光线角度改变、天气变化、果实重叠和枝叶遮蔽等都是影响百香果检测的干扰因素。为了更好地降低背景干扰,本文利用改进的YOLO-V3网络在特征提取和尺度融合部分进行相应的优化来对百香果目标进行检测。改进的YOLO-V3网络结构如图3所示,其以YOLO-V3网络为基础,选用Darknet-53为骨干网络,结合DenseNet网络来加强特征的传播以及特征的重用。针对果园中百香果这种小物体的检测,本文对YOLO-V3多尺度融合做了修改,将3尺度检测网络减少为2尺度检测网络。在模型训练期间,随着网络层数的加深,图片的特征传播损失严重,在13×13的尺度1预测前加入DenseNet网络结构,使后一特征层能接受前面所有特征层的特征进而使得低分辨率的特征和高分辨的特征进行融合。这样不仅可以减少特征传播的损失,而且还能加强特征的传播。为保证更好的检测效果,将原始高分辨率的照片统一转换成分辨率为416×416的图片。最后,改进的YOLO-V3网络结构在13×13和26×26尺度的边界框上进行目标预测。

图3 改进的YOLO-V3网络结构Fig. 3 Network structure of improved YOLO-V3

改进的YOLO-V3的损失函数由坐标预测误差、置信度预测误差以及分类预测误差3部分构成,

fLoss=E1+E2+E3,

(2)

式中:E1是坐标预测误差;E2是置信度预测误差;E3是分类预测误差。

坐标预测误差公式为

(3)

置信度预测误差公式为

(4)

分类预测误差公式为

(5)

2 实验和结果分析

2.1 配置

本次实验在Intel Core i7 6700 处理器,主频4 GHz,内存32 GiB,显卡为GeForce RTX 2080 Ti的PC机上进行,利用Windows 10系统下的Pytorch框架对算法进行加速训练。

训练模型的超参数设置如表1所示。表1中:Epoch是所选模型的训练次数;Batch size是训练时一次性输入网络的图片数,本文根据电脑显卡的显存大小将Batch size设置为16;Lr_step是学习率每次衰减步数,如Lr_step为40,表示学习率每隔40次训练周期就自动减少;Momentum是动量因子;Lr_factor是学习因子;NMS是非极大值抑制,用来筛选候选框。

表1 改进YOLO-V3的网络参数

2.2 数据采集及数据集制作

本次实验总共实地采集到2 000张百香果照片,全部在桂林市龙爪村某农户的种植基地完成。采集图像数据的时间为2019年6月15日早上、中午、傍晚3个时间段;采集图像数据的天气包括天晴、小雨、多云;拍照光线方向涵盖顺着太阳光拍摄、逆着太阳光拍摄以及旋转一定角度顺着太阳光拍摄。2 000张拍摄的照片使用数据增强方法扩增到4 000张,作为本文实验的数据集。

百香果数据集通过VOC2007制作。VOC2007包含很多数据格式文件,选取Annotations存放数据标签文件,JPEGImages存放图片文件,ImageSets中Main存放文件名列表文件。4 000张百香果图片统一调整图片格式为jpg格式,3 500张图片归为训练集,500张图片归为测试集。通过labelImg-master对百香果数据集进行手工边界框标注,用于训练的3 500张百香果图片共标注百香果26 588个,用于测试的500张百香果图片共标注百香果3 895个。4 000张图片共计标注30 483个百香果,满足实验数据要求。

2.3 数据扩增对检测效果的影响

数据集的丰富性直接影响检测结果。针对数据集不充分的情况,需要对采集的实验数据集进行人工扩充。本文采用对比度、虚化、平移等数据增强方法来使原有数据集扩增至4 000张。为检验数据扩充对实验检测效果的影响,随机选取测试集中的20张图片来进行对比实验,部分检测结果如图4所示。图4(a)是没有进行数据扩充的检测结果,图4(b)是通过对原有数据进行数据扩充的检测结果。对比可知,图4(a)中存在多处百香果漏检情况,图4(b)中百香果的检测精度明显高于图4(a)且降低了漏检率。因此,通过数据增强来扩充数据能够减少漏检率并且提高检测精度。

图4 原始数据和数据扩充检测结果Fig. 4 Test results of original data and data processing

2.4 实验结果与性能对比

精度和训练损失是深度学习中评价网络性能好坏的2个重要指标,精度高、损失小确保网络模型性能优良。图5描绘了改进的YOLO-V3网络的训练精度和训练损失2个指标随迭代次数的变化值。当训练次数Epoch的值较小时,精度值从0开始快速上升,训练损失值由1.3快速下降,标志着网络模型开始对图片特征进行学习。随着Epoch的值增大,精度曲线上升的速度逐渐变缓,训练损失曲线下降的速度也逐渐稳定。当训练次数Epoch在50附近时,精度曲线开始出现缓慢上升趋势,训练损失曲线保持快速下降的趋势并且有一些小的波动;当训练次数Epoch为150附近时,训练损失曲线开始趋向一个稳定值;当训练次数Epoch为250时,精度曲线趋向为0.986的稳定值,训练损失曲线趋向为0.08的稳定值。由此可知改进的YOLO-V3网络检测性能优良。

图5 实验损失和精度值Fig. 5 Loss and accuracy of experiment

Faster-RCNN是当下流行的快速目标检测网络。本文使用改进的YOLO-V3网络与YOLO-V3、Faster-RCNN网络对随机选取的500张图片进行对比实验,以此来验证改进的YOLO-V3网络的检测性能。Faster-RCNN和改进的YOLO-V3的部分检测效果如图6所示。比较图6(a)和图6(b)可知,图6(b)中存在漏检,对背景的抗干扰不强。针对同一批数据使用不同网络的测试结果如表2所示。由表2可知改进的YOLO-V3网络的检测精度、F1分数以及召回率最优且检测速度显著优于Faster-RCNN网络。由于本文的改进方法增加了特征提取网络,所以检测速度低于YOLO-V3网络,但其平均检测速度亦达到38幅/s,符合实时性检测需求。为了进一步测试改进的YOLO-V3网络的性能,分别对同一批图片、不同分辨率大小的测试集进行检测。由表2可以看出,改进的YOLO-V3网络在高清、清晰图片两者间的检测精度、F1分数以及召回率大小波动值较小,但在模糊图片上的检测精度、F1分数以及召回率大小波动值相对较大。总体上检测图片的分辨率越大,网络的检测效果越好;检测图片的分辨率越小,网络的检测效果越差。

图6 改进的YOLO-V3与Faster-RCNN检测结果对比Fig. 6 Comparison of detection results between the improved YOLO-V3 and Faster-RCNN

表2 不同算法测试结果

2.5 复杂背景下的百香果检测

在真实果园中,自然环境十分复杂。枝叶遮蔽、果实重叠是普遍存在的干扰,也是最难解决的检测难题。针对枝叶遮蔽、果实重叠等背景干扰,使用改进的YOLO-V3网络对测试集中随机选取的50张百香果图片进行检测,部分检测结果如图7所示。图7(a)和图7(b)是在光线较暗、果实表层有光影以及果园其他杂物干扰情况下对重叠的百香果进行目标检测,由检测结果可知,针对果实重叠和光线暗等干扰问题,改进的YOLO-V3网络能够精准检测到百香果目标。图7(c)是在枝叶遮蔽和果园其他杂物干扰情况下对重叠的百香果进行目标检测,由检测结果可知,针对枝叶遮蔽干扰问题,改进的YOLO-V3网络对目标的检测结果优良。综上所述,在枝叶遮蔽、果实重叠、自然环境变化和果园其他杂物等干扰情况下,改进的YOLO-V3网络满足真实果园中百香果目标检测。

图7 使用改进的YOLO-V3在复杂环境下的检测结果Fig. 7 Detection results of using improved YOLO-V3 in complex environment

3 结语

本文以YOLO-V3网络为基础,改变多尺度预测和增加特征提取网络,以此提出基于改进YOLO-V3网络的百香果实时检测方法。首先对采集的数据集进行预处理,得到优质的百香果数据集;然后对改进的YOLO-V3网络进行训练得到百香果检测模型。实验结果表明,改进的YOLO-V3网络在复杂环境下对百香果检测速度快、精度高。本文提出的网络模型对果实重叠和枝叶遮蔽的干扰具有更强的抑制性,优于Faster-RCNN的检测速度。未来工作将扩增不同成熟度的百香果数据集,对百香果的成熟度进行实时检测。

猜你喜欢
百香果尺度精度
热连轧机组粗轧机精度控制
财产的五大尺度和五重应对
落叶在跳舞
超高精度计时器——原子钟
莫兰迪的夏天
五月的一抹新绿
分析误差提精度
基于DSPIC33F微处理器的采集精度的提高
蒋湘兰:百香果 香百家
宇宙的尺度