本发明涉及枸杞采收技术领域,具体来说是基于注意力机制和改进pv-rcnn网络的枸杞枝条识别定位方法。
背景技术:
随着枸杞种植面积不断扩大,枸杞的采摘成为制约枸杞产业持续发展的卡脖子问题。由于国内外市场并没有技术较成熟的采摘机械,所以枸杞的采收主要依靠于人工完成,但人工采收枸杞的效率仅为3-5kg/h,所需费用达到生产成本的50%以上。研制适应于我国国情的枸杞采收机械,对降低所需成本、提高农民收入、保障枸杞产业稳态持续发展具有重大意义。
各种枸杞采收机械均依赖于操作人员的主观判断操作,利用枸杞采收夹持装置夹住枸杞枝条,对枸杞枝条进行摆动或梳刷,效率较为低下。而枸杞果实的数量比较多、体积较小,采摘时存在树叶和枝条对果实的遮挡,致使枸杞枝条的准确识别与定位在二维图像下难以精准识别。
若能利用基于三维点云数据(三维点云数据可以获得目标的空间维度、分布特征以及三维形态等具体空间信息)的计算机识别技术准确地识别和判断枸杞枝条的位置及其枝条末端关键点的坐标,根据枝条的位置和走势及其枝条末端关键点坐标利用机械臂将其定点抓起进行枸杞高效率采摘,不仅可以提高枸杞采摘效率、采净率而且能够最大程度地降低对枸杞的损伤以及对树的保护而不被损坏。然而,目前对枸杞枝条的检测仍以二维图像为主,但自然环境复杂以及存在遮挡、断点、重叠等问题,故很难利用二维图像直接判断枝条的位置。
因此,如何提高枸杞枝条检测的精准性已成为当前亟待解决的关键技术问题。
技术实现要素:
本发明的目的是为了解决现有技术中由于枸杞枝条被遮挡、断点、重叠等原因致使二维图像难以精准识别的缺陷,提供一种基于注意力机制和改进pv-rcnn网络的枸杞枝条识别定位方法来解决上述问题。
为了实现上述目的,本发明的技术方案如下:
基于注意力机制和改进pv-rcnn网络的枸杞枝条识别定位方法,包括以下步骤:
训练样本的收集和预处理:通过双目相机获取枸杞树不同角度的20张图像,构建三维模型获得三维点云,对三维点云进行标注,对枝条末端关键点建立半径为r的球体作标注;
三维点云的体素化处理:将三维点云经过volexnet网络进行体素化处理,形成多个栅格;其中,点云输入区域的大小为(l,w,h),每个栅格的大小为(l,w,h),共有栅格个数为(l/l,w/w,h/h),每个栅格中点云数量设置为8;
构建枸杞枝条及其关键点检测网络:基于pv-rcnn网络构建枸杞枝条及其关键点检测网络,并在枸杞枝条及其关键点检测网络的pv-rcnn内融合注意力机制获得枸杞枝条及关键点目标定位的精修网络;
训练枸杞枝条及其关键点检测网络:利用训练样本对枸杞枝条以其关键点检测网络进行训练;
待识别枸杞枝条图像的收集和预处理:获取双目相机拍摄的待识别枸杞树不同角度的20张图像,利用已构建的三维模型获得待识别的三维点云,并对待识别的三维点云进行体素化处理;
枸杞枝条的识别和定位:将处理后待识别的三维点云数据输入训练后的枸杞枝条及其关键点检测网络,获得枸杞枝条和枝条末端关键点位置,实现枸杞枝条的识别与定位。
所述构建枸杞枝条及其关键点检测网络包括以下步骤:
基于pv-rcnn网络构建枸杞枝条及其关键点检测网络,设定其输入层为:枸杞枝条三维点云进行体素化后的诸多栅格和枝条末端关键点半径为r的球体;
设定其特征提取层为:利用稀疏3d卷积网络对输入栅格及其关键点半径为r的球体进行多尺度逐层特征提取;对利用fps选取的相关点通过基于注意力机制的pointnet网络进行点云的特征提取;
在枸杞枝条及其关键点检测网络pv-rcnn内构建融合注意力机制的精修网络:基于注意力机制构建枸杞枝条及其关键点目标候选框的精准定位网络,作为目标回归精修网络;
设定基于改进pv-rcnn网络枸杞枝条及其关键点检测网络的输出层为枸杞枝条位置及其枝条末端关键点坐标。
所述训练枸杞枝条及其关键点检测网络包括以下步骤:
将诸多栅格和关键点半径为r的球体输入3d稀疏卷积神经网络中进行逐层特征提取;
稀疏卷积神经网络由四层c1、c2、c3、c4,3×3×3的3d稀疏卷积组成,逐层进行特征提取;
将c4特征图转换成俯视特征图,俯视特征图的大小为
根据特征图大小由rpn网络生成
利用fps选取的k个相关点并通过基于注意力机制的pointnet网络进行点云的特征提取;
目标回归精修网络的训练:将3dproposals对应的俯视图特征和k个相关点权重特征fi′进行级联;再利用fusion模型对级联后的结果和3dproposals卷积产生的注意力特征相乘进行融合;最后通过多层感知机获得精修的边界框3dbox精确位置;
在训练过程中进行损失函数的训练:损失函数包括rpn的多任务目标损失函数lrpn和回归框精修损失函数lrefine。
所述的利用fps选取的k个相关点并通过基于注意力机制的pointnet网络进行点云的特征提取包括以下步骤:
利用fps算法从三维点云中选取k个相关点,其公式如下:
κ={p1,p2,…,pk};
每一个相关点pi的特征表示如下:
其中,
计算相关点pi的特征fi的权重如下:
f′i=λ(pi)⊙fii=1,2,3,...,k;
其中,λ(·)∈[0,1]为注意力网络,其值代表对应输入相关点的注意力向量,即该相关点的重要程度,fi是相关点pi的特征。
所述在训练过程中进行损失函数的训练包括以下步骤:
训练多任务目标损失函数lrpn,该损失函数包括分类任务损失函数lcls;目标回归框损失函数lboxreg;关键点回归损失函数lkeyreg::
当iou>0.6时,anchor被认为是正样本;当iou<0.45时,anchor被认为是负样本;其表达式如下:
lrpn=lcls+lboxreg+lkeyreg;
分类任务的损失函数lcls,其表达式如下:
其中,lcls(x,y)=-(xlog(y)+(1-x)log(1-y)),n+表示正样本个数,n-表示负样本个数;
目标回归框损失函数lboxreg,其表达式如下:
其中,令σ=2;
训练关键点回归损失函数lkeyreg,其表达式如下:
其中,
训练包括枝条目标框和关键点目标框的3dbox回归框精修损失函数lrefine,其表达式如下:
其中,
有益效果
本发明的基于注意力机制和改进pv-rcnn网络的枸杞枝条识别定位方法,与现有技术相比在pv-rcnn网络中融合了相关点的注意力网络及其精修网络中3dproposals卷积特征产生的注意力,能够补充在体素化和稀疏3d卷积网络中进行卷积运算丢失的大量定位信息,同时依据注意力网络获得相关点对于目标检测的贡献程度和精修网络中特征增强来提高枸杞枝条和枝条末端关键点检测的精准性,实现了枸杞枝条的准确识别定位。
附图说明
图1为本发明的方法顺序图。
具体实施方式
为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图1所示,本发明所述的基于注意力机制和改进pv-rcnn网络的枸杞枝条识别定位方法,包括以下步骤:
第一步,训练样本的收集和预处理。通过双目相机获取枸杞树不同角度的20张图像,利用现有技术构建三维模型获得三维点云,并对三维点云进行标注,对枝条末端关键点建立半径为r的球体作标注。三维点云会进行体素化预处理从而形成栅格,我们利用半径为r的球体作标注只是为了使其能够和栅格作为相同格式的数据输入到稀疏3d卷积网络中进行特征提取。
第二步,三维点云的体素化处理。将三维点云经过volexnet网络进行体素化处理,形成多个栅格;其中,点云输入区域的大小为(l,w,h),每个栅格的大小为(l,w,h),共有栅格个数为(l/l,w/w,h/h),每个栅格中点云数量设置为8。
第三步,构建枸杞枝条及其关键点检测网络。基于pv-rcnn网络构建枸杞枝条及其关键点检测网络,并在枸杞枝条及其关键点检测网络的pv-rcnn内融合注意力机制获得枸杞枝条及关键点目标定位的精修网络。在此,利用pv-rcnn网络架构构建枸杞枝条及其关键点检测网络,并为了实现注意力机制,在pv-rcnn网络内建立一个精修网络,以融合注意力机制。其具体步骤如下:
(1)基于pv-rcnn网络构建枸杞枝条及其关键点检测网络,设定其输入层为:枸杞枝条三维点云进行体素化后的诸多栅格和枝条末端关键点半径为r的球体。
(2)设定其特征提取层为:利用稀疏3d卷积网络对输入栅格及其关键点半径为r的球体进行多尺度逐层特征提取;对利用fps选取的相关点通过基于注意力机制的pointnet网络进行点云的特征提取。
(3)在枸杞枝条及其关键点检测网络pv-rcnn内构建融合注意力机制的精修网络:基于注意力机制构建枸杞枝条及其关键点目标候选框的精准定位网络,作为目标回归精修网络。
(4)设定基于改进pv-rcnn网络枸杞枝条及其关键点检测网络的输出层为枸杞枝条位置及其枝条末端关键点坐标。
第四步,训练枸杞枝条及其关键点检测网络:利用训练样本对枸杞枝条以其关键点检测网络进行训练。其具体步骤如下:
(1)将诸多栅格和关键点半径为r的球体输入3d稀疏卷积神经网络中进行逐层特征提取;
稀疏卷积神经网络由四层c1、c2、c3、c4,3×3×3的3d稀疏卷积组成,逐层进行特征提取;
将c4特征图转换成俯视特征图,俯视特征图的大小为
根据特征图大小由rpn网络生成
(2)利用fps选取k个相关点并通过基于注意力机制的pointnet网络进行点云的特征提取。由于枸杞枝条三维点云被体素化后会丢失大量重要的信息,所以从点云中选择k个相关点进行特征提取尽可能弥补丢失的信息,同时,引入了注意力机制可以获得相关点的重要程度。这样处理三维点云进行目标检测的方法既可以提高训练速度又可以提升目标检测的精度。其具体步骤如下:
a1)利用fps算法从三维点云中选取k个相关点,其公式如下:
κ={p1,p2,…,pk};
每一个相关点pi的特征表示如下:
其中,
b2)计算相关点pi的特征fi的权重如下:
f′i=λ(pi)⊙fii=1,2,3,...,k;
其中,λ(·)∈[0,1]为注意力网络,其值代表对应输入相关点的注意力向量,即该相关点的重要程度,fi是相关点pi的特征。
(3)目标回归精修网络的训练,对点云进行体素化处理,一般会损失一定的定位信息,从而影响目标检测的精度,所以对卷积特征和相关点权重特征作为精修网络输入,相互间可以提供语义补充信息;同时,增加注意力机制可以为每个点附带周围的上下文信息,增强特征,进一步优化检测结果。其步骤为:将3dproposals对应的俯视图特征和k个相关点权重特征f′i进行级联;同时再利用fusion模型对级联后的结果和3dproposals卷积产生的注意力特征相乘进行融合;最后通过多层感知机获得精修的边界框3dbox精确位置。
(4)在训练过程中进行损失函数的训练:损失函数包括rpn的多任务目标损失函数lrpn和回归框精修损失函数lrefine。
根据确定枸杞枝条关键点抓取位置的重要性,我们引入关键点作为监督数据,从而在训练粗定位枸杞枝条及其关键点网络后,进一步对枸杞枝条目标框和关键点目标框进行了精修网络的训练,最终获得目标的精准定位。
a1)训练多任务目标损失函数lrpn,该损失函数包括分类任务损失函数lcls;目标回归框损失函数lboxreg;关键点回归损失函数lkeyreg:
当iou>0.6时,anchor被认为是正样本;当iou<0.45时,anchor被认为是负样本;当0.45<iou<0.6时,这时很难判断anchor的正负样本,所以,在计算损失函数时我们将不予考虑。其表达式如下:
lrpn=lcls+lboxreg+lkeyreg;
分类任务的损失函数lcls,其表达式如下:
其中,lcls(x,y)=-(xlog(y)+(1-x)log(1-y)),n+表示正样本个数,n-表示负样本个数;
目标回归框损失函数lboxreg,其表达式如下:
其中,令σ=2;
训练关键点回归损失函数lkeyreg,其表达式如下:
其中,
a2)训练包括枝条目标框和关键点目标框的3dbox回归框精修损失函数lrefine,其表达式如下:
其中,
第五步,待识别枸杞枝条图像的收集和预处理:获取双目相机拍摄的待识别枸杞树不同角度的20张图像,并构建三维模型,获得待识别的三维点云,并对待识别的三维点云进行体素化处理。
第六步,枸杞枝条的识别和定位:将处理后待识别的三维点云数据输入训练后的枸杞枝条及其关键点检测网络,获得枸杞枝条和枝条末端关键点位置,实现枸杞枝条的识别与定位。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。