冯 健,马俊燕,b,邓齐林,黄 毅,常亚楠
(广西大学 a.机械工程学院;b.广西制造系统与先进制造重点实验室,南宁 530004)
柑橘是我国种植最广泛的水果之一,近20年来产量从1000余万t增长到4000余万t[1]。在大规模的生产模式下,对果园产量的预测有利于合理分配劳动力资源、规划仓储空间和采收设备等,但目前的果实产量主要通过人工抽样估测[2],费时费力,故自动计算果园产量信息至关重要。
近年来,水果的产量估算方法已经得到广泛研究。Bargoti等[3]采用多尺度多层感知器(MLP)和卷积神经网络(CNN)进行特征学习,再利用分水岭分割(WS)和循环霍夫变换(CHT)算法对像素级水果分割输出进行处理,实现水果的检测和计数。Chen等[4]使用完全卷积网络[5]对苹果和橘子图像进行分割,有水果像素存在的区域称为簇,再使用另一个卷积神经网络估计每个簇中的水果数量。张小花等[6]提出融合颜色转换及霍夫圆变换的果树估产方法,准确率可达 96.58%。虽然目前的方法对水果产量的估算获得了较高的精度,但都是基于静态图像完成的,无法对视频中的果实进行动态计数,在实际应用中具有局限性。
实现果园的产量估算首先需要通过拍摄设备获取果园的全局信息。其中,无人机具有较高的部署灵活性,已被用于农业生产的各个方面,如喷药施肥[7]、农情监测[8]、农田灌溉[9]、估算植被覆盖[10]以及放牧[11]等。由于柑橘主要种植于我国的南方山地丘陵地区,地形复杂,很多自动化设备难以在山地应用,故无人机是获取柑橘果园产量原始数据的首要选择。
为了实现视频中柑橘果园的产量估算,采用无人机获取柑橘果园实时视频,通过目标检测算法YOLOv5s识别每一帧图像中的果实,并改进算法使运行速度更快;同时,通过目标跟踪方法实现相邻帧图像中的相同果实间的关联,为每个果实标记不同的ID,记录生成的ID总量用来估算果园中果实的数量,为生产实践提供参考。
系统的目标是统计果园的整体产量,如图1所示。
图1 柑橘产量估算系统流程Fig.1 Citrus yield estimation system flow
首先,需要无人机进入果园中通过摄像机不重复地记录每一颗柑橘树果实数量的视频文件作为原始数据,通过无人机的图传系统传输到影像接收器中,再通过HDMI接口将视频导入计算机;计算机通过算法识别视频每一帧图像的柑橘果实,对每个独立果实进行视频帧间关联,为果实标记独立的ID,以避免不同帧图像包含相同果实带来的重复计数;最后,通过获取最终生成的ID数量得到果园产量的估算值。
果园中的柑橘果实通常生长在茂密的枝叶之间,且较为密集,难以被精确识别;在无人机记录的实时视频中,通常1s输出15帧以上图像数据,故需要算法在保证识别准确性的同时提高运行速度,满足实时检测的需求。
本文以YOLOv5s算法为基础进行柑橘果实识别。YOLOv5是YOLO系列算法的最新版本,有x、l、m、s等4种尺度的模型可供实际应用选择[12]。其中,YOLOv5s是最小的模型,具有极快的检测速度及较高的检测精度。其识别的流程如图2所示。
图2 柑橘果实识别流程Fig.2 Citrus fruit identification process
YOLOv5主要由主干网络(Backbone)、颈部网络(Neck)和检测头(Prediction)3个部分构成。其中,主干网络是CSPDarkNet53卷积神经网络,通过多次卷积和合并从输入图像中提取不同大小的特征图,且保留主干网络中提取的最后3层特征图,通过颈部网络(图2中虚线框部分)将这些不同大小的特征图进行融合;在融合过程中,使用了FPN和PAN的特征金字塔结构。FPN结构将强语义特征从顶部特征映射传递到下部特征映射,并将强大的本地化特征从较低的特征映射传递到较高的特征映射。这两种结构共同增强了颈部网络的特征融合能力,以获得丰富的上下文信息,减少了信息丢失;将最后获得的特征图输入检测头中,通过反解码在原始图像上绘出包含果实位置的边界框,得到果实的位置信息。
由于本文不仅需要实时识别视频中果实的位置,而且还要根据检测的结果实现相同果实的帧间关联,为了给后续操作预留出时间,需要对算法进行改进,以提升运行速度。在CSPDarkNet53中,每次对特征图进行降维操作都使用CBL结构进行,包括标准卷积(Conv)、批处理标准化(Batch Normalization)及Leackyrelu激活函数。考虑到标准卷积的运算量较大,采用深度可分离卷积[13]作为代替。深度可分离卷积主要是将标准卷积拆分为对原始输入图像1对1的逐通道卷积和用1×1卷积核进行扩充通道数的逐点卷积两部分,以减少模型的运算量,结构如图3所示。
图3 标准卷积和深度可分离卷积结构Fig.3 Standard convolution and depth-wise separable convolution structures
深度可分离卷积和标准卷积的浮点运算量比值计算公式为
(1)
其中,c为输入通道数;m为输出通道数;h、w分别为输入特征图的高和宽,h′、w′分别为输出特征图的宽和高;k为卷积核大小。以3×3的卷积为例,深度可分离的运算量仅有标准卷积的1/9左右,可以节省大量运算资源。
实现视频中水果产量估算的最大难点是对果实实现帧间关联,即在识别果实之后区分视频中不同帧图像中的果实是否为同一果实,避免相同果实出现在不同视频中导致对果实重复计数。因此,需要引入目标跟踪方法,为每个目标标记独立的ID。
首先,通过卡尔曼滤波[14]根据改进的YOLOv5获得的水果位置状态信息(边界框中心位置、长宽比和边界框面积和这些位置信息在坐标系中各自的速度),并对果实在视频下一帧中出现的位置进行预测;然后,通过运动预测和下一帧中检测到的果实的真实位置之间的马氏距离,建立不同帧图像中水果的运动信息关联。马氏距离计算公式为
(2)
其中,d(1)为第j个检测和第i条轨迹之间的运动匹配度;dj为第j个检测框的位置;yi为第i个追踪器对目标的预测位置;Si为由卡尔曼滤波预测得到的在当前时刻观测空间的协方差矩阵。
当目标运动不规律或者受到遮挡时,马氏距离的度量效果就会变得较差,需要引入外观匹配的方法对匹配机制进行补充。在此,通过卷积神经网络ResNet-18[15]提取果实的外观特征向量,网络结构如表1所示。
表1 ResNet-18结构
ResNet-18主要由17个卷积层和1个池化层组成,原始输入是224×224的图像,由于深度较浅而具有较快的运行速度,并且该网络提供使用ImageNet训练好的权重。ImageNet是一个含有数百万张图像的数据集[16],也包含了柑橘等水果,可以免去重新训练的麻烦。将每一帧通过改进的YOLOv5s获得的边界框中的图像输入到ResNet-18中,提取其外观特征并形成特征向量rk。最小余弦距离计算公式为
(3)
其中,d(2)为某一目标当前时刻前100帧外观特征向量rk与当前获得的检测框j的外观特征向量rj的最小余弦距离。由于保留了当前时刻前100帧的特征向量,故只需目标100帧内有一次没有被遮挡就可以持续正确匹配。大大提升了抗遮挡性能。
两种度量方式通过服务于分配问题的不同方面而相互补充,为了构建关联问题,使用加权和将马氏距离和最小余弦距离相结合,即
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
(4)
其中,λ为权重参数。计算获得的c值小于阈值时即认为成功匹配。为每个成功匹配的柑橘果实标记独立的ID,计算生成的ID总数作为果园中果实的估算数量。
试验区域设在广西魁圩乡柑橘园,是广西脱贫攻坚农业示范区域(105°56′~106°48′E,22°51′~23°34′N),属于亚热带季风气候。当地大多是石山,石漠化严重,环境恶劣,近年来大力发展柑橘种植业,已种植柑橘300hm2。当地的农业生产模式较为传统,基本全靠手工作业,对产量并没有明确的预估,故在后期的收成物流规划上经常造成人力物力的浪费。试验时间为2021年12月中旬,是柑橘临近收获的时期。选取当地的一片果园,包含42株柑橘果树,如图4(a)所示。
柑橘果园产量原始视频数据通过无人机平台获取,无人机选用大疆DJI Mini2,如图4(b)所示。无人机的具体参数如表2所示。
图4 试验区域与无人机Fig.4 Experimental area with drones
表2 无人机主要参数Table 2 Main parameters of UAV
数据采集时,研究人员操纵无人机在树行之间飞行拍摄。为完整地记录果树全貌,无人机保持距离柑橘树1.2m左右,采用水平和倾斜两种拍摄视频的方式,倾斜角度45°左右,不重复地记录每一行柑橘树的产量信息,如图1所示。视频使用mp4格式录制,视频分辨率720P。
为训练果实识别网络,拍摄不同角度的600张柑橘果实图像训练数据集,使用LabelImg软件对原始数据进行边界框标注。
1)果实识别:使用600张图像的训练集分别对原始YOLOv5s网络和本文改进的算法进行充分训练,通过测试集对比检测性能。平台处理器为Intel Core i5-9300H CPU @2.40GHz,搭载NVIDIA GTX 1660 ti GPU。采用随机梯度下降训练,初始学习率0.01,动量衰减0.0005,训练300代。最后,对比改进前后的识别性能。
2)视频跟踪:拍摄一段较短的果园中的柑橘果树视频,使用卡尔曼滤波和卷积神经网络对视频中的每个柑橘果进行跟踪; 同时,为每个果实标记独立的ID,逐帧播放观察跟踪的稳定性,根据测试效果对实际应用进行调整。
3)果实计数:在无人机采集到的果园相同区域的水平和倾斜两种视频数据上运行果实产量估算系统,获得视频中果实数的估计,并与人工计数的实际数据相比较,计算准确率。
分别使用训练好的改进前YOLOv5s和改进后的YOLOv5s对包含100张图像柑橘测试集进行识别测试,使用mAP(Mean Average Precision)、R(Recall)作为对模型精度的评价指标。其中,mAP反映的是模型对所有类别目标的平均精度,R反映的是模型成功检测到的目标的比率。对于模型的检测速度,则用Fps(Frames Per Second)衡量,即每秒处理的图像数,并使用V(Volume)衡量模型的大小,即模型权重文件的大小。Fps和V的值通过模型训练和测试后得出,mAP和R的计算公式为
(5)
(6)
(7)
(8)
其中,TP为被判为正类的正类;FP为被判为正类的负类;FN为被判为负类的正类。测试结果如表3所示。
表3 不同网络的检测效果对比
虽然改进模型的mAP和R与原YOLOv5s相比分别下降了0.8%和0.6%,但运行速度提高到了98FPS。虽然无人机录制的影像通常在30帧左右,但更快的识别速度能为后续跟踪方法留出更多的处理时间。改进模型的实际检测效果如图5所示。
图5 改进的YOLOv5s网络实际检测效果Fig.5 The actual detection effect of the improved YOLOv5s network
在采集的视频上进行算法测试,可以达到25帧的运行速度,实际效果如图6所示。其中,图6(a)为视频第1帧的图像,此时所有目标处于待定状态,还未获得对应的ID;图6(b)为视频第3帧的图像,此时目标经过3次与轨迹成功匹配,得到ID1~5的5个柑橘目标;图6(c)是第70帧的图像,此时经过较多的帧数跨度,但在图中可见第3帧中的5个目标只有ID为5的柑橘受到较严重的遮挡导致ID切换为11;图6(d)中第90帧之前出现的目标ID都没有改变;图6(e)中第115帧果实数量已经较多,跟踪效果依旧稳定,只有极少数果实因为被遮挡而丢失。
虽然跟踪算法获得了较为稳定的跟踪效果,但对于产量估算仍有一些问题没有解决。在视频中抽取背景有其它树行果树的图像,如图6(f)所示。此时,图像中检测到了距离较远的柑橘树上的果实,说明在无人机经过背景有不同树行的柑橘树存在的区域时会将多余的果实计入,将造成对柑橘果实的过量计数。因此,在识别柑橘果实时增加限制条件,为边界框的生成增加阈值,即在应用中若是目标边界框小于既定的阈值则不生成。经过多次测试发现,在阈值设定在长宽都小于30像素时,可以去除绝大多数背景中果实的边界框,减少因为背景影响带来的过量计数。
图6 跟踪效果抽帧示意图Fig.6 Schematic diagram of tracking effect frame extraction
在无人机拍摄时,将无人机记录到的柑橘树的果实数量通过人工计数作为真实产量数据。为了进行评估,通过比较本文系统预测的产量和人工计数的柑橘真实数量来计算精度,即
(9)
其中,GT为真实值;L1为计算误差。
使用水平和倾斜两种拍摄方式,通过算法获得产量与人工统计的真实数量对比,结果如表4所示。
表4 柑橘视频产量估算结果
水平拍摄时,镜头移动过程中对柑橘果树的上、下部分果实都具有较高的可见性,且由于为边界框添加了阈值条件,没有受到背景果实的影响,仅漏检208个果实,达到88.6%的准确率,如图7(a)所示。但在实际应用中,有时柑橘树栽种较为密集,树行间的距离不足以在水平拍摄时获取完整的柑橘树,需要在较高的地方进行倾斜拍摄。此时,由于镜头主要捕捉到上半部分的果实,对位置较低的果实可见度不高,故漏检291个,准确率84.1%,如图7(b)所示。由此说明,使用无人机影像技术与机器视觉方法相结合对柑橘园果实的产量估算在两种拍摄角度上都具有较高的准确率,对柑橘采摘及物流规划具有一定的指导意义。
图7 不同视角拍摄的实际效果Fig.7 The actual effect of shooting from different perspectives
提出了一种基于无人机影像的柑橘果园产量估算方法,在实地采集的柑橘果园视频上估算水果数量,得到了较高的准确率。首先,对无人机获取的视频进行柑橘果实检测,通过改进的YOLOv5算法获得果实在每一帧图像中的位置信息;然后,通过DeepSORT目标跟踪算法对相邻帧之间的柑橘果实进行运动匹配和外观匹配,关联不同图像中的相同果实,为每个独立果实标记独立的ID,通过记录生成的ID数量获得对柑橘果实数量的估算。试验结果表明:在实际运行中,最高获得了88.6%的准确率。