一种基于关键点的3D目标检测方法与流程

文档序号:24969076发布日期:2021-05-07 22:39阅读:250来源:国知局
一种基于关键点的3D目标检测方法与流程

本发明涉及激光雷达数据处理与目标识别技术领域,涉及一种基于关键点的3d目标检测方法。



背景技术:

基于视觉的目标检测是点云数据处理和计算机视觉领域的重要研究方向之一,可应用于自动驾驶系统中的车辆、行人、交通标志等目标检测、视频监控中的异常事件分析,以及服务机器人等诸多领域。近年来,随着深度神经网络的发展,包括点云数据分类、目标检测以及语义分割等方面的研究均取得了显著进展,特别是在目标检测领域,出现了以r-cnn、fastrcnn、maskrcnn为代表的two-stage网络框架和以yolo、ssd为代表的one-stage的网络框架。无论何种框架,基于深度学习的二维目标检测算法在准确性和实时性上较以往基于特征的机器学习方法都获得了较大提升。但是,由于二维目标检测只用于回归目标的像素坐标,缺乏深度、尺寸等物理世界参数信息,在实际应用中存在一定局限性,特别是在自动驾驶车辆、服务机器人的感知中,往往需要结合激光雷达、毫米波等传感器实现多模态融合算法,以增强感知系统的可靠性。

因此,研究者们提出了三维目标检测的相关方法,旨在获取三维空间中的目标位置、尺寸以及姿态等几何信息;现有的三维目标检测算法根据传感器不同,大致可以分为视觉、激光点云和多模态融合三类。视觉方法由于其成本低、纹理特征丰富等优势,在目标检测领域中被广泛使用,并且可根据相机类型分为单目视觉和双目/深度视觉两类。前者关键问题在于无法直接获取深度信息,从而导致目标在三维空间中的定位误差较大;而后者不仅提供了丰富的纹理信息,还具有较为准确的深度信息,目前相比前者具有更高的检测精度。

对于支撑实现自动驾驶功能的车载智能计算平台而言,激光雷达是车辆进行周围环境感知的一种重要设备。激光雷达也是车辆以及机器人进行周围环境感知的一种重要手段,激光雷达包括激光发射系统、激光接收系统和转动组件,激光发射系统一般由一个单束多线窄带激光器组成,激光器以一定的频率向朝向方向发射激光脉冲,激光脉冲在衰减距离内如果打在物体表面就会反射回来,最后被接收系统接收。转动组件通过不间断的转动,使单束多线激光脉冲实现360度周围环境信息的采集,发射器的发射频率可以达到每秒上百万个脉冲,与此同时,接收器也会在相应的时间内接收这些脉冲反射回的激光点,由大量的激光点共同构成可以勾勒周边环境的点云特征图。其中,任意单个点的特征记为pi=(xi,yi,zi,ri),xi,yi,zi分别为x、y、z轴下的空间坐标值,ri为反射强度;通过大量点集进行坐标描述,从而可以将该点云数据应用于不同的感知方法,实现对周围环境3d感知。

由激光雷达的工作特性可知,激光脉冲沿直线运动,已知光的速度是确定的,根据发射时间和接收时间的时间差,可以得到物体表面与发射点的直线距离,同时结合激光脉冲的发射角度,如果以激光雷达中心做为坐标系原点,则可以得到激光反射点精确的x、y、z相对坐标信息,从而可以还原周围环境精确的空间信息。但由于激光雷达的特殊的感知特性,导致激光雷达产生的点云数据存在稀疏、无序及存在噪声的特点,其稀疏性体现在两个方面:

一方面是由于激光雷达单位时间内产生的激光脉冲有限,所以是对周边障碍物信息进行离散采样,这种离散采样的特性导致即使在物体表面形成的局部点云特征具有稀疏的特性;

另一方面空间障碍物相较于整个空间存在稀疏性。相较于相机等传感器产生的自然点云数据,点云数据在描述空间特性是时点的次序无关。

除此之外激光雷达在接收激光脉冲时,存在少数噪声反射点,导致形成的点云数据存在部分孤立的、错误的噪声点,因此,设计恰当的感知算法进行3d目标检测是十分重要的。

目前,有三种类型的点云表示,作为3d探测器输入:

1)基于点的表示。直接处理原始点云,并根据每个点预测边界框。

2)基于体素的表示。使用2d/3d体素化将原始点云转换为紧凑的表示形式。

3)点和体素混合表示。在这些方法中,将点和体素都用作输入,并且将其特征融合到网络的不同阶段以进行边界框预测。不同的方法可能会消耗不同类型的点云表示形式。

现有的一阶段3d对象检测方法可以实现实时性能,但是,它们被基于锚的检测器所支配,该检测器效率低下并且需要额外的后处理,在本文中,我们消除了锚点并将对象建模为单个点-其边界框的中心点。基于中心点,我们提出了无锚的3d检测网络,该网络无需锚点即可执行3d对象检测,我们的3d检测使用关键点估计来找到中心点并直接使3d边界框回归,但是,由于点云的固有稀疏性,因此3d对象中心点很可能位于空白区域,这使得难以估计准确的边界。为了解决这个问题,我们提出了一个辅助连接关系回归模块,以强制cnn骨架对关键点之间的连接关系给予更多关注,从而有效地获得更准确的边界框,此外,我们的3d检测不受非最大抑制的影响,这使其更有效,更简单。



技术实现要素:

鉴于上述技术问题,本发明提供了一种基于关键点的3d目标检测方法。

本发明为解决上述技术问题所采用的技术方案为:

一种基于关键点的3d目标检测方法,其特征在于,所述方法包括:

第一阶段:进行模型训练流程,产生模型;

第二阶段:使用训练流程产生的模型,进行预测流程,产生3d目标信息,从而完成3d目标检测。

上述的基于关键点的3d目标检测方法,其特征在于,第一阶段中,所述模型为卷积神经网络模型。

上述的基于关键点的3d目标检测方法,其特征在于,第二阶段中具体包括:

步骤1:获取含有待检测的点云数据,进行数据处理;

步骤2:通过经训练的所述卷积神经网络模型对点云数据进行检测,得到检测结果。

上述的基于关键点的3d目标检测方法,其特征在于,步骤2中,所述的检测结果包括3d目标信息的关键点位置信息和关键点连接关系信息。

上述的基于关键点的3d目标检测方法,其特征在于,所述关键点包括3d目标的斜对角的起始点、中间点和结束点。

上述技术方案具有如下优点或有益效果:

本发明提出了一种基于关键点的3d目标检测方法,基于关键点为lidar点云构建了3d检测网络结构,这是一种基于关键点的无锚3d检测方法,首先,我们提出了一个分支,用于回归3d目标的关键点;接着我们提出了一个关键点之间连接关系的辅助训练模块,该模块通过回归同一个3d目标的点与点之间的连接关系实现框的精准定位,同时该模块使3d检测方法无需花费额外成本即可获得更好的性能。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未可以按照比例绘制附图,重点在于示出本发明的主旨。

图1是基于关键点的3d目标检测方法的基本流程图;

图2是基于关键点的3d目标检测方法的网络结构图;

图3是基于关键点的3d目标检测方法的矢量图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1和图2所示,本发明公开了一种基于关键点的3d目标检测方法,具体方案如下:

第一阶段:进行模型训练流程,产生模型;具体如卷积神经网络模型。

第二阶段:使用训练流程产生的模型,进行预测流程,产生3d目标信息,从而完成3d目标检测。具体的,步骤1:获取含有待检测的点云数据,进行数据处理;

步骤2:通过经训练的所述卷积神经网络模型对点云数据进行检测,得到检测结果。检测结果包括3d目标信息的关键点位置信息和关键点连接关系信息,关键点包括3d目标的斜对角的起始点、中间点和结束点。

在本发明的实施例中,通过经训练的卷积神经网络模型对点云数据进行检测,得到检测结果,能够有效提取出对点云数据有影响力的具体特征,适应于多种具体复杂场景下的3d目标识别;根据检测结果,获取待检测点云数据,识别过程运行稳定,有效的提高了对3d目标的检出率和识别准确率,使得3d目标识别效果良好。下面对图1所示的流程进行具体说明:

步骤101,获取含有待检测的点云数据,进行数据处理。

具体地说,在待检测3d目标所处的空间内,得到的点云数据进行处理。

步骤102,通过经训练的卷积神经网络模型对点云数据进行检测,得到检测结果。具体地说,检测结果为待检测3d目标的关键点位置信息和关键点连接关系信息,其中,关键点至少包括3d目标的斜对角的起始点、中间点和结束点。

由于关键点对于描述点云数据至关重要,所以通过经训练的卷积神经网络模型对点云数据进行关键点信息的提取,能够有效提取出对点云数据有影响力的具体特征,适应于多种具体复杂场景下的3d目标识别。

步骤103,根据检测结果,在推理时,我们首先独立提取每个类的中心热图中的中心预测,我们过滤所有中心预测的值是否大于或等于它的8连接的邻居进行距离过滤,然后,我们只保留那些值高于预定义阈值的中心预测点作为检测中心点;把多余的关键点去除后获取待检测点云数据。具体地说,根据检测结果和预设的关键点信息与点云数据的对应关系,查找与检测结果对应的点云数据;其中,关键点信息包括关键点位置信息和关键点连接关系信息。由于预设有关键点信息和点云数据的对应关系,所以通过检测结果一定能查找到对应的点云数据,通过这种方法对3d目标进行识别,识别过程稳定,有效的提高了对3d目标的检出率和识别的准确率,使得3d目标识别效果良好。

在本发明实施例中,获取含有待检测的点云数据,进行数据处理,具体如下:

本实施方式中,获取含有待检测的点云数据,利用已知的投影矩阵,将每个点云数据中的每个类别的区域投影到lidar点云空间中,对应lidar点云空间的区域具有与点云数据区域一致的类别属性;然后将关于车辆、行人、骑车人的点从原始点云中筛选并提取出来,形成视锥,分别经过了reduce,encode,vfe三步;

reduce:需要原始雷达数据,图片大小信息,传感器标定信息,获取0.001m~100m范围内的投影到图像范围内的视锥体;

根据图像的大小构建像素坐标系下的顶点,将顶点先利用矩阵c变换到相机2的坐标,然后通过r和t变换到矫正相机坐标系下的坐标,最后利用(r0_rect*tr_velo_to_cam)_inv变换到雷达坐标系下的坐标.取z=0.001m和100m两个位置的视椎体顶点坐标;根据在原始点云是否在视椎体内的索引进行过滤,只保留视椎体内的点。

encode:初始化一个k×t×4维张量(命名为voxels),值为全0:用于存储所有的体素输入特征;对于点云中的每个点(eg点坐标(x1,y1,z1,r1)),我们检查对应的体素是否已经存在;遍历所有点后,或者voxelidx达到k-1且和所有体素格的点数统计num均达到t时,即完成;

vfe:步骤11,基于voxels,num_points_per_voxel计算每个有效体素格内的所有实际点在特征的每个维度上的平均,得到k×4维度的张量,每一行存储了(x_bar,y_bar,z_bar,r_bar),表达了一个体素格的特征信息.计算方法:voxels(k×t×4)在第2个维度上求和的到维度(k×4)的张量,然后除以num_points_per_voxel,即得到上面的(x_bar,y_bar,z_bar,r_bar);

步骤12,将步骤1得到的更新后的voxels(维度k×4),针对其每一行计(x_bar^2+y_bar^2)^(1/2);

步骤13,拼接特征,将步骤12计算的(x_bar^2+y_bar^2)^(1/2)与步骤11计算的z_bar,r_bar拼接为一个最终特征表达voxels(维度为k×3,每一行((x_bar^2+y_bar^2)^(1/2),z_bar,r_bar)即一个有效体素格的特征;

步骤14:返回步骤13中获得的voxels以及步骤3获得的coors。

在本发明实施例中,网络结构搭建环节,使用pytorch搭建深度目标检测网络,该网络包含三个部分:使用网格的点云特征提取器、卷积中间提取层以及区域预选网络rpn。在网格点云特征提取器中,用设定大小的3d网格对整个视锥进行有序切割,并将每一个网格中的所有点都送到网格特征提取器中,所述网格特征提取器由一个线性层、一个批标准化层batchnorm和一个非线性激活层relu组成;在卷积中间层中,使用3个卷积中间模块,每个卷积中间模块由一个3d卷积层、一个批标准化层、和一个非线性激活层、顺序相连组成,以网格点云提取器的输出作为输入,并将这种具有3d结构的特征转化成2d的伪图特征,将其作为输出;区域预选网络rpn的输入由卷积中间层提供,prn的体系结构由三个全卷积模块组成,每个模块包含一个下采样的卷积层,在此下采样卷积层后接与特征图像尺寸相对应的两个卷积层,在每个卷积层之后应用batchnorm和relu操作;然后将每个块的输出上采样到具有相同大小的特征图,并将这些特征图连接成一个整体。

我们的3d检测网络输出由中心分类模块,框回归模块,连接关系回归模块三个模块组成:中心分类模块,可预测对象类别的中心点概率。框回归模块,该模块生成八通道特征图以对对象的框属性进行回归:偏移回归,用于回归由下采样步幅引起的中心2d位置的离散化误差;z坐标回归,可预测的中心位置z轴;尺寸回归,用于回归对象的3d尺寸;方向回归,使绕的旋转角度回归z轴;连接关系回归模块,该模块预测关键点与关键点之间连接的概率。

通过最大pooling对中心点预测进行处理,得到最终的边界盒,而不需要基于iou的非最大抑制(nms),其中连接关系回归模块,不参与预测流程,只参与训练流程。

在本发明具体实施例中,中心分类模块:中心分类输出多个卷积层的中心heatmaps,每个中心heatmaps对应一个类别;每一个类别都是人为定义的;是heatmaps的中心;r是向下采样步幅,c是中心点类型的数量,等于检测的类别;

关键点信息的真实值,通过以下方式获取:获取具有标注信息的点云数据集;读取标注信息,对标注信息进行高斯变换,生成具有3d目标关键点位置信息的l2数据和具有商品关键点连接关系信息的l1数据;l2数据和l1数据为关键点信息的真实值。其中,标注信息至少包含3d目标的关键点信息和类别信息。

更具体地说,对标注信息进行高斯变换,经过高斯变换的标注信息变成了具有高斯分布的响应区域,其中,高斯变换涉及到的变换公式为高斯半径的大小随被标注的3d目标的大小而变化。通过这种方式能够有效提高3d目标在被遮挡情况下的检出率,并有效抑制误检情况的发生。

在本发明具体实施例中,框回归模块:边界盒回归模块只发生在正中心点特征上,对于每个边界框,都是一个八维向量;对于每个框,一个8维的向量,[dx,dy,z,l,w,h,cos(r),sin(r)]用来回归表示激光雷达点云中的对象实例。

dx,dy是用来表示最后一张featuremap的中心点是否有离散化偏差;

z是相对于z轴的偏移;

l,w,h是3d目标的尺寸,长宽高;

cos(r),sin(r)表示绕z轴旋转角r的三角函数值是多少;

因此box回归包括offsetregression、z-coordregression、sizeregression和directionregression。

offsetregression:

偏移回归用于预测中心点偏移量,对于每个中心点,featuremap∈r××。所有类共享相同的偏移量预测,训练时预测值和真实值偏移量在0和1之间。偏移回归使用l1损失函数:

directionregression:

方向预测是预测其绕z轴旋转角度,在推理时,我们将每个旋转角度先进行编码后进行解码。方向回归预测使用l1损失进行训练:

z-coordregression:

使用z-coord回归来预测中心位置在z轴上的偏移。它输出z-coord特征图对于每个中心点。所有类共享相同的内容z-coord预测,然而,由于回归目标为z-coord对异常值很敏感,这些可以被视为硬样本的异常值将会产生过大的梯度,这会影响到模型的训练过程。考虑到这个问题,使用l1损失来训练z-coord

sizeregression:

预测长度,宽度,高度是尺寸回归工作;像z-coord回归,尺寸回归也容易引入训练不平衡。尺寸回归的损失函数也采用l1:

在本发明具体实施例中,连接关系回归模块:连接关系的回归使用了paf(partaffinityfields,即局部关联场)的机制,点与点之间是构建了一个像素级别的方向向量;3d向量编码3d目标的位置和方向,pafs是一个3d矢量场,保留了位置和方向。

如图3所示表示一个3d目标,由两个关键点0,2构成,在3d目标上的每个点是从一个关键点到下一个关键点的3d单位矢量;在预测阶段,关键点dj0,dj2和paf沿着“关键点对”组成的线段计算上面paf的线积分,来度量这对“关键点对”的关联程度(亲和度),来确定0和2关键点是否属于同一个3d目标。

本领域技术人员应该理解,本领域技术人员在结合现有技术以及上述实施例可以实现所述变化例,在此不做赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。

以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

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