郭明月 刘雅晨 李伟夫 陈 洪 李善军 陈耀晖
(1.华中农业大学信息学院, 武汉 430070; 2.华中农业大学工学院, 武汉 430070)
我国是全球猕猴桃产量最高的国家,猕猴桃产业对我国农业的健康发展意义重大[1]。目前猕猴桃的种植往往借助栽培架开展,果实悬垂于栽培架下并覆盖整个园区[2]。猕猴桃产量预估有助于合理规划劳动力、采摘设备以及仓储空间,但是采用人工计数费时费力,准确率也难以保证[3]。因此,为了有效降低作业成本并提高产业利润空间,开发快速、高效的猕猴桃产量预估工具非常重要。
传统农业中往往采用统计学方法对大面积种植作物进行产量估计。杨钰莹[4]比较了简单随机抽样、按概率比例抽样以及回归估计[5]对谷物产量的估计效果,在95%的置信度下,发现按概率比例抽样估计精度最高,达到98.55%。黄凯等[6]通过多源数据回归分析方法,采用无人机采集甘蔗不同时期的表型数据进行产量估计,得到估计结果与真实产量的R2达到0.87。吴菲菲等[7]通过收集不同时期玉米生长情况数据,使用统计分析、方差分析以及遗传估计对玉米产量性状进行评估。尽管采用人工统计方法能对采集的数据进行预估,但是数据获取和评估过程需要耗费大量人力物力,且难以建立统一模型,因此不易推广[8]。
随着深度学习技术在计算机视觉领域的快速发展[9],一系列新的农作物产量预估方法被相继提出。其中一类工作主要基于单幅图像进行检测计数,从而获得视野内果实的产量。穆龙涛等[10]提出的改进型AlexNet网络对果园环境下的猕猴桃果实进行检测,其识别率达96.33%,单个果实检测时间为0.029 s。REDMON等[11]提出的YOLO算法将候选区域生成与目标检测过程合并,大大提升了网络的检测速度。赵德安等[12]采用YOLO v3对复杂背景下的苹果目标进行检测,准确率为97.00%,单幅图像检测时间为0.017 s。TIAN等[13]利用改进的YOLO v3网络对不同生长阶段的苹果果实进行检测,测试集上的F1值为82%,单幅图像检测时长为0.304 s。但受到视角变化、路径规划限制,难以获得较为准确的大区域训练拼接图像,来对果园的总产量进行估计。
另一类工作则对整个果园区域拍摄视频,通过视频跟踪的计数方式对果园总产量进行快速预估[14]。这类方法一般先对每一帧内的果实目标进行定位检测,然后再进行目标匹配,避免了目标的重复计数。在跟踪算法中,卡尔曼滤波算法具有对未知状态进行估计的能力[15-16],且算法本身占用内存资源小,因此广泛应用于处理连续变化的任务[17]。LIU等[18]通过使用卡尔曼滤波器算法,对单目摄像头拍摄下的芒果果实进行跟踪,通过获取目标编号(Identity document, ID)实现了芒果产量计数,预测产量与真实产量的R2达到0.88。WANG等[19]使用基于YOLO系列网络的水果检测模型,对芒果图像进行果实检测,并通过卡尔曼滤波预测视频中果实的位置,从而实现了实时芒果果实计数,与人工计数相比,该方法仅存在7.3%的计数误差。然而,这些研究仅对目标运动特征进行估计,缺失果实外观特征匹配的过程,因此在复杂场景中精度难以保证。
针对猕猴桃果园面积大、果实目标小且密度高、户外环境复杂的问题[20],本研究拟开发基于视频跟踪的果实总产量预估方法,并在跟踪过程中引入运动特征与外观特征匹配,增加跟踪精度。首先以在小目标检测领域有显著优势的YOLO v7[21]模型为基础,对猕猴桃果实进行检测。YOLO v7模型通过引入更多特征融合[22],能够减小目标特征丢失的情况,具有较高的检测精度与检测速度。同时,将YOLO v7模型与柔性非极大值抑制(Soft non maximum suppression, Soft-NMS)结合,减少检测框的误删。最后,通过DeepSort算法[23]对猕猴桃进行跟踪与实现自动计数。其中,DeepSort算法采用VGG16网络对果实特征进行提取,并结合运动特征,基于匈牙利算法匹配得出每个果实的唯一ID,最终通过ID计数来估算猕猴桃的产量。
本研究完整工作流程如图1所示,通过在猕猴桃果园进行视频拍摄,分别制作猕猴桃目标检测数据集与目标跟踪数据集;然后,建立目标检测与目标跟踪模型,并使用建立的数据集进行评估验证;最后结合目标检测与跟踪算法,进行猕猴桃产量估计,并对所提出方法进行分析与验证。
图1 实验流程Fig.1 Experimental flowchart
采集的猕猴桃数据来自于湖北省武汉市华中农业大学园艺标本园的猕猴桃种植区(东经114.35°,北纬30.47°),通过履带小车搭载摄像机以1 m/s的速度,采用S形路线对果园进行拍摄,为保证获取植株完整视野,采用1 200万像素长焦摄像头相机,距离地面最低高度为1.32 m,距离两侧植株最少1.5 m,以45°仰角进行拍摄。具体拍摄范围与拍摄路线如图2所示,最终获得时长为63 s、帧率(Frames per second, FPS)为60.05 f/s的视频数据。
图2 数据采集线路图Fig.2 Data acquisition circuit diagram
1.2.1猕猴桃检测数据集
由于高帧率视频中相邻帧的相似程度较高,本研究首先采用OpenCV库对视频每间隔5帧抽取1帧,最终获得534幅分辨率为3 840像素×2 160像素的彩色图像。同时,采用Labelme图像标注软件对每幅图像中的每个猕猴桃进行标注,并按照8∶1∶1的比例划分为训练集、测试集和验证集。
1.2.2猕猴桃跟踪数据集
由于采集视频的前段、中段和后段中猕猴桃的种植密度及光照条件显著不同,跟踪难度差异较大。前段视频中,猕猴桃的密度中等,果实颜色与叶片颜色的差别明显,光线充足,属于“简单”模式;中段视频中猕猴桃果实密度较低,且果实与叶片颜色较为接近,属于“正常”模式;后段视频拍摄于猕猴桃果实的密集区域,相邻果实的重叠度较高,光照条件较差,属于“困难”模式,如图3所示。
图3 3种模式比较Fig.3 Comparison of three modes
为衡量网络整体的跟踪精度,采用Darklabel软件截取连续600帧视频进行手动标记,并在3种模式下验证网络计数精度。
图4展示了基于视频追踪的猕猴桃产量预估算法框架。首先通过YOLO v7检测器对当前帧中的猕猴桃进行目标检测,并使用基于VGG16的特征提取网络对目标进行外观特征提取。然后,利用卡尔曼滤波器结合当前帧和前两帧图像获得目标猕猴桃的运动特征与外观特征,并预测下一帧目标的预测框及其相应的外观特征。最终,通过计算当前目标外观特征与下一帧外观特征的相似度及预测框与检测框的交并比 (Intersection over union, IoU),共同构建代价矩阵,并进行ID匹配。
图4 视频跟踪算法框图Fig.4 Architecture of video tracking algorithm
1.3.1果实检测网络
(1) YOLO v7检测网络
YOLO v7结构如图5所示,输入图像经过数据增强等操作后,根据网络输入要求对图像进行缩放并送入backbone网络进行特征提取,backbone网络通过高效的网络聚合来提高模型特征提取性能。提取后的特征分别通过双向融合网络(Path aggregation network, PAN)和特征金字塔网络(Feature pyramid network, FPN)进行融合,得到3种不同尺度的特征图后,融合的特征被送入检测头进行检测。由于网络会重复检测每个特征点,因此使用非极大抑制(NMS)来选择置信度(con)最高的预测框作为输出。
图5 YOLO v7结构图Fig.5 Architecture diagram of YOLO v7
(2) Soft-NMS检测框筛选
由于视频中猕猴桃数据量多,重叠严重,NMS操作可能会错误地删除相邻检测框。为了解决此类问题,本研究使用Soft-NMS方法[25],通过对重叠检测框使用高斯加权来修改重叠检测框置信度,从而减少由NMS操作引起的重叠检测框被误删,当前检测框置信度得分计算公式为
(1)
式中si——当前检测框置信度得分
M——当前检测框
δ——算法标准差bi——重叠框
在相同置信度下,重叠度越高时,检测框置信度得分越低。如图6所示,A、B、C为满足阈值条件(置信度大于0.8,交并比大于0.5)的3个检测框,为得到最终检测结果,NMS处理通常保留置信度最高的检测框A,而直接删除其邻近的检测框B、C。该方法虽然得到了目标的唯一检测框,但是错误地删除了检测框C。采用Soft-NMS时,通过对置信度加权的方式降低了邻近目标的检测框置信度,从而保留了检测框C,提高了检测精度。
理解幼儿的思维和需要是教育的基础和前提,所以家长和教师应当在对幼儿细致观察的基础上来分析幼儿的行为,以此确定幼儿活动的价值。充分利用儿童对一切事物无边的好奇的这一特点,在保护好儿童好奇心的基础上,进一步促进他们创造力与想象力的发展。
图6 Soft-NMS示意图Fig.6 Schematic of Soft-NMS
1.3.2果实跟踪算法
由于视频中猕猴桃外观较为相似且重叠较多,为了提高追踪精度,采用结合运动轨迹与外观特征的追踪策略。其中,外观特征由VGG16[26]网络进行提取,运动轨迹特征提取及匹配由DeepSort算法实现。
(1) VGG16特征提取网络
对于检测到的猕猴桃,为保留原始目标的外观特征信息,并同时满足网络输入尺度要求,对图像中不满足尺寸要求的部分进行补零处理,获得统一尺寸的RGB图像作为VGG16网络的输入。第1次卷积后,特征图尺寸不变,通道数变为64,第1次池化后,特征图尺寸变为原来的1/2,之后经过4次卷积与池化处理,得到512通道、尺寸为7×7的特征图,3次全连接后的特征向量作为最终输出,得到猕猴桃目标的特征编码。
(2) DeepSort目标跟踪
1.3.3基于ID计数的产量估计
猕猴桃产量估计需要获得视频中出现的猕猴桃总数,如图7所示。由于在目标跟踪算法运行时,将从数字1开始为每个目标赋予不同的ID,并保证相邻视频序列中相同目标的ID不变,因此仅需要获取视频中ID最大值便可获得产量估计结果。
图7 ID计数示意图Fig.7 ID count diagram
1.4.1猕猴桃检测性能评估指标
为了评估网络对猕猴桃的检测性能,采用平均交并比(Mean intersection over union, mIoU)来衡量检测框与真实框之间的重合情况。在评估检测准确性方面,使用精确率(Precision)来衡量网络预测结果中是否为正样本;使用召回率(Recall)来衡量在所有正样本中网络预测为正样本的能力;使用F1值(F1 score)来衡量网络准确率和召回率的平均水平。
1.4.2猕猴桃跟踪性能评估指标
采用多目标跟踪准确率(Multiple object tracking accuracy, MOTA)来衡量跟踪网络在每帧中正确跟踪的能力,使用多目标跟踪精确率(Multiple object tracking precision, MOTP)来衡量跟踪网络在每帧中跟踪框与实际框匹配的程度。其中MOTA与MOTP的具体公式为
(2)
(3)
式中GTt——目标出现的总数
MOTA——多目标跟踪准确率
MOTP——多目标跟踪精确率
FNt——目标跟踪失败数
Fpt——目标跟踪成功数
IDSWt——目标ID变化的次数
δt,i——跟踪框与检测框之间的重叠率
ct——当前帧匹配成功的目标数
t——测试视频帧序列
1.4.3猕猴桃计数指标
使用平均计数精度(Mean counting accuracy,MCA)来衡量跟踪网络的计数精度,计算公式为
(4)
式中MCA——平均计数精度
Pi——检测到的目标数
Gi——真实目标个数
n——测试视频个数
实验环境为PC机(Windows 10操作系统,处理器为Intel(R) Core(TM) i7-9700 CPU @ 3.00 GHz,显卡为NVIDIA GeForce GTX 1660 SUPER,内存为16 GB,开发环境为Python 3.6.13)。
YOLO系列网络在经过特征提取层后,通常生成13×13、26×26、52×52共3种不同尺度的特征图,其中尺寸越小的特征图适合越大的先验框。原始检测网络的先验框是在COCO数据集上获得,并不适用于本研究数据集,为了获得更加适合的先验框尺寸,采用K-means算法对人工标注的猕猴桃尺寸进行聚类,获得不同尺度下的先验框大小,结果见表1。
表1 先验框聚类结果Tab.1 Clustering results of prior boxes
聚类后所获得的锚框作为网络的先验框,用于目标检测。所用的数据集共包含260幅图像,10 391个人工标注的检测框,作为不同检测网络的对比实验数据,多次训练的检测网络的平均测试结果见表2,可视化结果见图8。
表2 不同网络检测结果对比Tab.2 Comparison of detection results for different networks
图8 网络检测结果可视化Fig.8 Visualization of network detection results
实验结果显示,YOLO v7网络的检测结果明显优于其他网络,其精确率达到91.16%,F1值达到90.09%,每秒能够检测25.92帧图像,满足基本的视频实时检测需求,为视频跟踪提供了可靠的接口。
图8给出了不同网络检测结果的可视化对比。为了进一步评估不同网络的检测效果,本实验选取4组不同环境拍摄的猕猴桃图像数据进行检测。检测结果由检测框和置信度两部分组成,检测框内的数值代表该检测框内为猕猴桃的概率。
相比之下,模型的预测结果与检测指标展示结果一致。在总体检测效果上,YOLO v7模型表现得较为出色,检测数量与检测精度最高。YOLO v3模型与YOLO v4模型检测数量相当,Fast R-CNN模型的检测效果一般。
表3为利用目标跟踪评估指标确定的网络跟踪精度。在满足复杂环境拍摄猕猴桃的条件下,使用Darklabel软件对600帧图像进行了连续手动标注,用于验证网络的跟踪效果。不同网络所计算的目标跟踪准确率、多目标跟踪精确率以及视频跟踪帧速率如表3所示。
表3 不同网络目标跟踪结果对比Tab.3 Comparison of tracking results for different networks
实验证明,通过采用Soft-NMS,可以有效降低因目标重叠导致的检测框误删次数。在目标跟踪任务中,通过将检测器与包含外观特征的DeepSort跟踪器相结合,显著提高了视频跟踪的准确率和精确率,提升幅度为1~2个百分点。当采用YOLO v7作为检测器并与DeepSort网络结合后,所获得的跟踪指标MOTA和MOTP分别为89.87%和82.34%,视频跟踪帧速率为20.19 f/s。
图9呈现了目标持续跟踪的可视化结果。第1行展示了果实密集区域内样本16号在3~92帧间持续跟踪的情况,在相邻果实轨迹相近的情况下,跟踪算法最大程度地保证了目标跟踪的稳定性。第2行展示了样本633号在667~868帧间的持续跟踪情况,即使目标视角发生变化,跟踪网络也保证了持续跟踪的能力。第3行展示了在存在遮挡的情况下,样本2 089号在3 715~3 794帧间的持续跟踪结果,由于叶片的遮挡,YOLO v7网络未检测到当前目标,但跟踪算法保存了目标特征,因此在后续视频中仍然能够跟踪到该目标。
根据视频拍摄顺序和自然环境下猕猴桃生长环境不同,将拍摄视频按照3种模式分别统计,并与人工计数结果比较。得到3种模式下的7段微视频的猕猴桃视频计数结果如表4所示。
表4 网络计数结果比较Tab.4 Comparison of network count results
实验证明,在简单模式下,ID计数的精度可以达到97.49%,与人工计数接近;在正常模式下,ID计数精度最高可达94.83%;在困难模式中最高精度可达88.63%。总体而言,视频ID计数的平均估算精度超过91.59%,在理想情况下可达97.49%,进一步证明了该算法的有效性。
利用目标检测和跟踪算法进行了视频猕猴桃产量估计。采用最新的YOLO v7目标检测框架和Soft-NMS算法,得到F1值为90.09%的检测精度以及25.92 f/s的检测速度。目标跟踪阶段,结合训练好的YOLO v7检测网络、VGG16特征提取器以及卡尔曼滤波器,通过代价矩阵和匈牙利算法实现了前后帧的目标跟踪,平均跟踪准确率为89.87%,精确率为82.34%,跟踪速率为20.19 f/s。最后,通过ID计数实现了猕猴桃产量估计,平均计数精度达到91.59%,简单模式下,计数精度高达97.49%,近似于人工统计结果,困难模式下也能保持在88.63%,进一步证明了本文算法的可行性。