一种基于弱标注的三维点云目标检测方法及标注工具与流程

文档序号:22881977发布日期:2020-11-10 17:46阅读:259来源:国知局
一种基于弱标注的三维点云目标检测方法及标注工具与流程

本发明涉及一种点云的弱标注方法,具体涉及一种基于弱标注的三维点云目标检测方法以及一种基于弱标注的三维点云目标标注工具,属于目标检测模式识别技术领域。



背景技术:

随着人工智能和无人驾驶技术的日趋发展,基于点云的三维目标检测已成为研究热点。相比传统的基于图像的目标检测方法,点云能提供更加准确的深度信息,用于对物体进行定位和形状描绘。点云数据在深度上的精度优势,使得它在自动驾驶、家庭机器人、增强现实等领域占据十分重要的地位。

近年来,基于深度学习框架的点云数据目标检测器取得了飞速发展。然而,在检测精度不断提升的同时,检测算法对于大量标注数据的依赖度却不断提升。

现有的点云三维目标检测方法,大多是基于全监督学习框架设计。然而,这些全监督框架需要大量精细标注的三维框来进行训练,从而满足对检测器的性能需求以及避免过拟合问题。精细标注工作需要消耗大量时间和经济成本。在这种标注方法下,一小时的驾驶视频需要花费上百小时进行标注,导致高质量的三维检测数据集不仅制作开销高,而且在尺度和多样性上受到巨大限制。由此可见,要真正实现泛用的三维目标检测系统,不仅需要整合各种新兴技术,还必须解决它对高成本、高数量、高质量标注数据的依赖。

因此,有必要提出一种使用少量、简单、快速标注进行训练的三维目标检测方法,以及能够自动化进行三维目标标注的工具,以解决上述技术问题。



技术实现要素:

本发明的目的是为了解决点云三维目标检测对标注数据依赖度高、耗时长、成本高、实现复杂的技术问题,创造性地提出了一种基于弱标注的三维点云目标检测方法,以及一种基于弱标注的三维点云目标标注工具。本发明方法和工具,能够利用更廉价、更少量、更简单的标注,达到良好的检测效果,并且能够降低标注成本。

一种基于弱标注的三维点云目标检测方法,包含以下步骤:

步骤1:使用弱标注方法。设数据集中共有n个未标注场景,n0<n。对n0个未标注的自动驾驶点云场景进行标注。通过标注,获得每一个目标中心在俯视图上的坐标(x,z),存储标注信息。

具体地,所述基于俯视图的三维目标快速标注包括以下步骤:

步骤1.1:标注人员点击相机视图上需要标注的目标。

步骤1.2:程序根据点云和相机的投影关系取得距离点击位置最近的点云点,并显示一个以该点为中心的局部俯视图。

步骤1.3:标注人员在局部俯视图上选取目标较精确的中心位置,完成单个目标的快速鸟瞰标注过程。

步骤1.4:重复步骤1.1-1.3,标注该场景中所有可见目标,并切换场景将n0个场景全部进行快速俯视图标注,将标注信息进行存储,取得快速俯视图标注,最终获得快速俯视图标注的数据集。

步骤2:使用基于俯视图标注的目标定位方法,构建目标定位网络。使用步骤1存储的标注信息对网络进行训练,使网络获得目标定位能力。

具体地,所述基于俯视图标注的目标定位方法,包括以下步骤:

步骤2.1:使用快速俯视图标注确定目标中心,对每一个点云点生成前景分数标签。

步骤2.2:构建目标定位网络,以点云作为输入。

步骤2.3:以步骤1生成的俯视图标注作为训练目标,并使用步骤2.1生成的前景分数标签构建损失函数,通过损失函数强化目标定位网络对于目标的敏感程度。

步骤2.4:优化目标定位网络。

步骤3:n0个场景中共含有m个无标注的目标,m0<m。选择m0个无标注的目标,进行三维位置(x,y,z)、三维尺寸(h,w,l)、航向角θ共七个参数的三维框标注。将标注框临域内的点云以框为单位进行存储,每个点云点的特征除原有信息外,再增加目标定位网络输出的每个点的前景分数并一同存储,形成局部三维检测数据集。

步骤4:使用基于少量标注的目标检测方法构建目标检测网络,使用步骤3中存储的信息进行训练,使网络获得目标检测能力。

具体地,所述基于少量标注的目标检测方法,包括以下步骤:

步骤4.1:构建一级三维目标检测网络,并将步骤3中的局部三维目标检测数据集作为输入。

步骤4.2:通过损失函数强化一级三维目标检测网络对目标的检测精度。

步骤4.3:优化一级三维目标检测网络。

步骤4.4:如果期望更高的检测精度,则构建二级三维目标检测网络,连接在训练完成的一级目标检测网络后。

步骤4.5:如果进行步骤4.4,则将步骤3中的局部三维目标检测数据集输入一级目标检测网络,并将输出送入二级目标检测网络。

步骤4.6:如果进行步骤4.5,固定除最后一级网络外的所有网络权重参数,通过损失函数强化二级三维目标检测网络对目标的检测精度。

步骤4.7:如果二级目标检测网络的输出未达到检测精度的要求,可依照步骤4.4-4.6继续级联更多检测网络。

步骤5:将目标定位网络与目标检测网络依次连接,构成基于弱监督框架的目标检测。

如果期望获得较快标注速度以控制标注成本,则使用步骤5中连接的网络对剩余未标注场景进行标注,即,作为自动化三维目标标注工具工作,能够较精确地完成数据集的三维框标注工作。

具体地,所述自动化三维目标标注工具包括以下步骤:

首先,选取一个未标注的场景,将点云输入步骤5连接的网络中,由目标定位网络生成目标的定位信息。

然后,使用定位信息根据邻域范围生成局部点云,局部点云输入目标检测网络中取得自动化三维目标标注结果。

如果期望获得高标注精度,则使用步骤1的方法,对整个数据集中剩余未标注场景进行标注,即通过人工标注直接完成目标定位,再使用步骤4训练的目标检测网络完成检测任务,即作为半自动化三维目标标注工具工作,能够更精确地完成数据集的三维框标注工作。

具体地,所述半自动化三维目标标注工具包括以下步骤:

首先,标注人员选取一个未标注的场景,进行步骤1的标注。

然后,以标注人员指示的目标中心生成临域,进行局部点云提取。

之后,使用步骤2.1计算的点云前景分数,与点云特征叠加。

最后,将叠加后的点云输入步骤4训练完成后网络生成半自动标注结果。

有益效果

1.本发明提出的快速俯视图标注方法可用来构筑用于弱监督算法的数据集,大大减少制作于三维检测的数据集所需要的人力、物力和时间,为三维数据标注降低了成本。

2.本方法有效利用获得的快速俯视图标注,完成在三维场景中对目标位置进行定位的工作,相比现有方法需要完整的三维框作为监督信息优化网络,能够使用简单快速的标注信息对网络进行优化。

3.现有三维目标检测方法,需要将训练集每一个场景的每一个目标都进行传统精细且耗时的三维框标注。而本发明只需要一部分场景进行快速标注,并选择一部分目标进行传统标注,大大降低了标注量,从而在减少了标注工作的时间消耗的同时,取得了精确的三维目标检测效果。

4.本发明能够在自动和半自动两种状态下进行快速的三维目标检测数据集标注,相比纯人工标注大大缩短了标注时间,节省了大量用于标注的人力和物力。

附图说明

图1是本发明所述方法的流程图。

图2是局部三维检测数据集制作流程图。

图3是基于俯视图的三维目标快速标注方式的流程图。

图4是基于俯视图标注的目标定位方法的流程图。

图5是目标定位网络的结构图。

图6是基于少量标注的目标检测方法的流程图。

图7是自动化三维目标标注工具的使用流程图。

图8是半自动三维目标标注工具的使用流程图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

本发明揭示了一种基于俯视图的三维目标快速标注方式、基于俯视图标注的目标定位、基于少量标注的目标检测器和自动化三维目标标注工具。如图1所示,本发明方法包含以下步骤:

步骤1:使用弱标注方法对n0(设数据集中共有n个未标注场景,有n0<n)个未标注的自动驾驶点云场景进行标注。该方法是一种基于俯视图的三维目标快速标注方法,通过标注能够获得每一个目标中心在俯视图上的坐标(x,z),存储标注信息。

如图3所示,所述基于俯视图的三维目标快速标注,包括以下步骤:

步骤1.1:标注人员点击相机视图上需要标注的目标。标注人员将看到一个标注程序界面,其中包括三个图片显示区:相机视图区,点云俯视图区,局部点云俯视图区。标注人员在这一步中主要关注相机视图区,在可见的车辆目标上进行单击。

步骤1.2:程序会根据点云和相机的投影关系取得距离单击位置最近的点云点,并显示一个以该点为中心的局部俯视图。程序则会根据单击的像素位置进行计算,获得距离单击像素位置最近的点云点,并以此点为中心在局部俯视图上显示一个8米×8米的点云投影。

步骤1.3:标注人员在局部俯视图上选取目标较为精确的中心位置,完成单个目标的快速鸟瞰标注过程。

步骤1.4:重复步骤1.1-1.3标注该场景中所有可见目标,并切换场景将n0个场景全部进行快速俯视图标注,将标注信息进行存储,取得快速俯视图标注,最终获得快速俯视图标注的数据集。

步骤2:使用基于弱标注的目标定位方法,构建目标定位网络,使用步骤1存储的标注信息对网络进行训练,使网络获得目标定位能力。

具体地,所述基于俯视图标注的目标定位方法,包括以下步骤:

步骤2.1:使用快速俯视图标注确定目标中心,对每一个点云点生成前景分数标签,标签是以0~1之间的一个小数来体现的,标签分数越高代表该点是前景点的可能性越高,反之则是越低,由此生成伪点云标签。每一个点云点p的前景分数将取该点对场景中所有标注计算得的最大值作为最终前景分数,前景分数fp通过以下公式计算:

对于场景中任意一个点云点p,它相对于某一个标注o的前景分数为ι(p,o)。其中,是一个均值为0、方差1.5的高斯分布,d(p,o)是点云点距离标注中心的加权距离,单位为米。加权距离计算公式:

其中,xp、xo表示点云点和标注点的x轴位置,yp、yo、zp、zo分别表示y、z轴上的对应变量。

步骤2.2:构建目标定位网络,以点云作为输入。

网络主要结构如图5所示。目标定位网络由特征提取器和特征传播器依次连接构成。二者分别由多个特征提取模块和多个特征传播模块连接构成。其中,特征提取模块负责将点云点或支持点特征抽象为对应更大范围支持点的局部特征,特征传播模块负责将支持点的局部特征传播到对应较小局部的支持点特征或点云点。

其中,特征提取模块包含多层感知器、点云/支持点采样器和特征聚合器。多层感知器由三个一维卷积层、三个批标准化层和三个非线性激活层相互穿插而成,取得每一个点云点/支持点的深度特征。点云/支持点采样器使用最远点采样策略对点云/支持点集进行下采样,生成深层的支持点集。特征聚合层根据不同的聚合半径,对范围内的点云/支持点特征进行通道方向的最大值池化操作,将本层点云点/支持点的深度特征传递到深层的支持点上。

特征传播模块包括范围插值器、特征融合器和多层感知器。其中,范围插值器使用相邻两层支持点的三维空间距离为权重,每个浅层支持点/点云点的插值特征由聚合半径内的深层支持点特征通过插值计算得出。特征融合器将对应深度的特征提取器的输入和范围插值器的插值特征堆叠在一起,再通过与前述结构相同但权重不同的多层感知器,取得浅层支持点/点云点的特征。

最终,网络将计算并输出每个点云点的特征。使用两个不同的多层感知器分别完成,其中一个多层感知器回归每个点的预测前景分数,另一个多层感知器回归每一个点向距离最近的目标中心的坐标偏移。本实施例中,选择图5内所示的网络连接级数m=4。

步骤2.3:以步骤1生成的俯视图标注作为训练目标,并使用步骤2.1生成的前景分数标签构建损失函数通过损失函数强化目标定位网络对于目标的敏感程度,损失函数如下:

其中,表示前背景分数损失函数,表示目标定位能力损失函数。

前背景分数损失函数使用软性focalloss训练:

其中,参数α=0.25,γ=2,是网络预测的分数,fp是计算得到的前景分数,是加权分数。

目标定位损失函数是一个bin-based损失函数:

具体地,bin-base损失函数由两部分构成,首先将定位偏移量范围l分成多个块,每个块大小为δ,计算偏移量对应的块bu,使用交叉熵损失函数优化块所属关系预测,计算块内剩余残差ru,使用l1损失函数进行优化。其中,是网络的预测值,uo表示目标中心坐标,up表示当前点云点坐标,ε是尺度缩放参数。偏移量l沿x、z两个方向对称。本实施例中,选择l=4,δ=0.8,即x、z两个方向各有10个锚点。

步骤2.4:将目标定位网络在kitti数据集的训练集中n0个含有快速俯视图标注的场景上进行训练优化。例如,具体参数和实施方法为:在一张teslav100gpu上使用随机梯度下降法和adamonecycle优化器来训练优化,设置目标定位网络的训练次数为8000次,初始的学习率被设置为0.002,指数衰减因子0.8。

为了验证本发明的定位效果,本实施例在车辆目标上进行了测试:

表1目标定位网络在kitti验证集上的定位精度

表1显示,本方法训练的目标定位器具有较好的目标定位能力。在容差0.7米的条件下可以定位到90%的目标,在容差1.4米的条件下可以定位到92%的目标,能够基本完成自动驾驶场景下的目标定位任务。

步骤3:如图2所示,选择m0(上述n0个场景中共含有m个无标注的目标,m0<m)个无标注的目标使用传统方法进行三维位置(x,y,z),三维尺寸(h,w,l),航向角θ共计七个参数的三维框标注。并将标注框临域内的点云以框为单位进行存储,每个点云点的特征除原有信息外,再增加目标定位网络输出的每个点的前景分数一同存储,形成局部三维检测数据集。

步骤4:使用基于少量标注的目标检测方法,构建目标检测网络,使用步骤3中存储的信息进行训练,使网络获得目标检测能力。

具体地,所述基于少量标注的目标检测方法,包括以下步骤:

步骤4.1:构建一级三维目标检测网络,并将步骤3中的局部三维目标检测数据集作为输入。

具体地,局部三维目标检测数据集中的每个实例包含:该标注中心坐标,步骤3标注的对应标注框,中心从俯视图观察半径4米内的所有点云点,每个点云点上除三维坐标外还包含步骤3网络预测的前景分数作为输入特征。

三维目标检测网路则由步骤2.2提到的4个特征提取器构成,不同的是,最后一层的支持点只有1个。之后,将支持点特征输入两个不同的多层感知器。其中一个最终输出每个点的预测该目标框的置信度分数,另一个感知器完成回归偏移以及方向预测任务,得到预测三维框(x,y,z,h,w,l,θ)。

步骤4.2:通过损失函数强化一级三维目标检测网络对目标的检测精度,损失函数为:

其中,表示预测置信度损失函数,表示三维框回归损失函数,为网络对该目标框的预测置信度,ciou为网络预测的三维框与标注中三维框的重合率,是l1损失函数。损失函数由两部分构成,一是x,y,z框的三维坐标和h,w,l三维框尺寸的回归预测,其中,ru,u∈(x,y,z,h,w,l)是实际的残差,u∈(x,y,z,h,w,l)网络预测的残差,使用l1损失函数优化;二是θ框的方向角预测,使用角度bin-base损失函数,首先将360°航向角分成n个扇区,计算框的方向角对应的扇区bθ,使用交叉熵损失函数优化块所属关系预测,计算扇区内剩余残差ru,u=θ,使用l1损失函数进行优化。是预测方向角对应的扇区,u=θ表示预测的残差分量。本实施例中,选择n=12,即每个扇区30°。

步骤4.3:将三维目标检测网络在步骤3中的局部三维目标检测数据集的实例上进行训练优化。例如,具体参数和实施方法为:在一张teslav100gpu上使用随机梯度下降法和adamonecycle优化器来训练优化,设置三维目标检测网络的训练次数为40000次,初始的学习率被设置为0.002,指数衰减因子0.8。

步骤4.4:如果期望更高的检测精度,构建二级三维目标检测网络,连接在训练完成的一级目标检测网络后。

步骤4.5:如果进行步骤4.4,则将步骤3中的局部三维目标检测数据集输入一级目标检测网络,并将输出送入二级目标检测网络。

步骤4.6:如果进行步骤4.5,通过损失函数强化二级三维目标检测网络对目标的检测精度,此时将计算时的ciou改为由上一级目标检测网络预测的结果。

步骤4.7:如果二级目标检测网络的输出未达到检测精度的要求,依照步骤4.4-4.6继续级联更多检测网络。

为了说明级联网络带来的性能提升,本发明在车辆目标上进行了测试了不同级联数的检测器的性能:

表2目标检测网络不同级联数在kitti验证集上的性能对比

可见,通过增加级联网络个数,可以进一步提升本方法的目标检测精度,但是这种增益是有限的,在级联三个网络后达到最大值,过多的级联网络将出现过拟合问题,从而导致性能下降。

为了验证本发明的定位效果,本发明在车辆目标上进行了测试,并其他现有检测器性能进行对比,以下统一使用三个级联网络输出本方法的预测结果:

表3目标检测网络性能与其他方法在kitti验证集上的性能对比

表4目标检测网络性能与其他方法在kitti测试集上的性能对比

可见,本发明与现有基于全监督框架的方法相比,能够在使用13%快速标注场景和3%精细三维框的情况下达到85~96%的目标检测精度。证明本方法能在减少标注消耗的情况下,基本完成同等精度的目标检测任务。

步骤5:将目标定位网络与目标检测网络依次连接,即本发明提出的基于弱监督框架的目标检测器。

如果期望较快的标注速度以控制标注成本,则使用步骤5中连接的网络对剩余未标注场景进行标注,即作为自动化三维目标标注工具工作,能够较精确地完成数据集的三维框标注工作。如图7所示,自动化三维目标标注工具的步骤如下:

首先,选取一个未进行完全标注的场景,将点云输入步骤5连接的网络中。由目标定位网络生成目标的定位信息。

然后,使用定位信息根据邻域范围生成局部点云。局部点云输入目标检测网络中取得自动化三维目标标注结果。

如果期望更高的标注精度,则使用步骤1的方法对整个数据集中剩余未标注场景进行标注,即通过人工标注来直接完成目标定位,再使用步骤4训练的目标检测网络完成检测任务,即作为半自动化三维目标标注工具工作,能够更精确地完成数据集的三维框标注工作。如图8所示,半自动三维目标标注工具的步骤如下:

首先,标注人员选取一个未标注的场景,进行步骤1的标注

然后,以标注人员指示的目标中心生成临域,进行局部点云提取。

之后,使用步骤2.1计算的点云前景分数,与点云特征叠加。

最后,将叠加后的点云输入步骤4训练完成后网络生成半自动标注结果。

两种工作方式下的标注精度如下表所示:

表5使用kitti训练集训练标注工具,在kitti验证集上运行与其他方法在kitti验证集上的标注精度对比(以检测性能统计衡量)

可见,与现有的自动、半自动标注方法相比,本方法在全自动、半自动两种模式下均具有很大的性能优势。

使用人工、自动、半自动标注的数据集作为全监督算法的训练样本进行训练的结果如下表:

表6人工、自动、半自动标注的kitti数据集训练现有算法后在验证集的性能对比

可见,使用本发明标注工具标注的数据集可以作为现有目标检测方法的训练集,能够在基本不损失性能的前提下完成这些框架的训练任务。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1