激光雷达三维检测包含哪些内容?
点击下方卡片,关注“新机器视觉”公众号
重磅干货,第一时间送达
文章导读
本文是针对一篇激光雷达三维目标检测的综述性文章的解读分析《Deep 3D Object Detection Networks Using LiDAR Data A Review》,从激光雷达的基础介绍出发,总结三维目标检测的网络设计方法,并给出模型的评估方式,最后针对一些公开问题进行探讨分析。
三维检测的基础介绍
三维检测的算法回顾
三维检测的评估指标
三维检测的问题探讨
1. 激光雷达的测距和扫描原理
激光雷达的主要测距方式是基于TOF:用光速乘以激光脉冲的飞行时间。
根据激光雷达的扫描方式,可以分为三种类型:
机械式雷达
混合式雷达
固态式雷达
机械式雷达:通过在不同垂直方向上水平旋转的激光发射器实现360°扫描,不同数量的发射器可以产生不同密度的三维图像;
混合式雷达:通过调整微型镜片的角度使单脉冲激光反射到不同的方向,具有成本低、体积小的优点;
固态式雷达包括两种:
OPA激光雷达利用了相干光的原理。采用多光源阵列,通过控制激光发射的时差,在特定方向合成主光束。然后在不同方向上改变主光束相位的方向,进行全景扫描。
Flash激光雷达成像类似于相机成像。它首先向前视图发射激光,然后接收反射信号来构建视图图像。Flash激光雷达成像速度快,但受电子器件功率限制,探测距离短。
2. 点云的输出形式
点云是一些通过LiDAR扫描而得的点的集合,包含物体表面信息的特征和环境点的空间分布。每个点包含了相对传感器中心的3D坐标向量(x,y,z),和一个激光的反射强度相关的r。如下图所示:
p点的坐标向量可以通过如下计算而来:
x = Lcos(ω)cos(φ)
y = Lcos(ω)sin(φ)
z = Lsin(ω)
3. 目标检测的网络结构
三维空间任意分布的原始点云,在网络处理之前通常采用视图投影或体素化将其特征化为规则格式。
和图像的目标检测一样,检测网络可以分为两类,如下图所示:
两阶段方法:先提出候选区域,最大限度地提高网络召回率,然后再使用细化网络提取每RoI特征向量,并预测目标分类得分以及回归到原始RoI位置的偏移量,最后通过后处理消除了重叠框。
单阶段方法:利用深度网络强大的特征学习能力,在网络的单一推理中预测对象的位置和类别。最后通过后处理消除了重叠框。
4. 三维外接框的编码方式
三维外接框表示的是目标位置、尺寸、方向属性,其编码方法主要有三种:
八顶点:8个顶点的坐标(xyz),一共24个值。目标的朝向通常假定为边较长的;
四顶点和两高度:为了保持边界盒顶角与底角对齐的地物的物理约束。4个定点是底面的四个点,两个高度值是底面和顶面相对地面的偏移量;根据四个角点计算四个可能的方向,并选择最近的一个作为方向向量;
中心点和尺寸:7d向量表示一个3D框,中心坐标x,y,z;长宽高l,w,h;朝向角θ;
点云的表征决定了三维检测网络的设计,所以根据点云的特征化方法,可以将所有的算法分为三类:
基于投影的方法;
基于体素的方法;
基于点的方法;
1. 基于投影的方法
主要侧重在观察点云的角度上,将点云投影到2D平面中,然后再使用二维卷积网络,类似于图像平面上的目标检测。根据投影方向不同,可以分为前视投影和鸟瞰投影:
a 前视投影
二维前视图类似于圆柱形图像。每个像素都充满了几个特征通道。研究人员设计了各种统计前视特征,以充分保留点云特征,从而进一步提高目标定位和分类精度。常用的前视特性如下:
前视投影通常制作一个致密的2D图,使用现成的2D检测器。深度信息被编码在前视图中以获得不同视图之间的依赖关系。但是由于透视性,尺度变化和遮挡等问题带来的信息损失是其一大难点。
b 俯视投影
将三维点云压缩到x-y方向的平面空间,通常会对z方向的高度进行编码操作,转化为高度差,平均高度等信息,为了弥补降维的损失,也会去引入点云的密度信息,强度信息作为通道的叠加。
但是基于投影的方法比较依赖于2D检测算法,需要设计人工特征在2D投影中保持空间特征。但是由于投影的分辨率和特征通道影响计算效率,一些不可逆的信息损失在投影中依旧存在,并且限制着目标检测精度。
2. 基于体素的方法
主要是将不规则的点云数据格式化到一个纯矩阵中以适应卷积。3D空间被离散化到固定大小的体素栅格中。每个体素内部容纳非结构化点。体素的方式保留的原始点云数据的三维结构。但是稀疏的点云数据引入了大量的空体素。体素分辨率提高的同时,3D空间计算量程指数增长。
如何去解析稀疏体素目前有以下几种方法:
Efficient Localizing Object in Large 3D Voxel Space
Learnable Voxel Feature Encoding
Efficient Vertical Feature Processing
Optimizing Voxelization Process
Exploring Depth-Aware Features
Combining Image Features
比较经典的体素网络如VoxelNet结构:
虽然体素的方式能够在各个子空间中统计离散的特征点,但是此类建模中的稀疏表示和不可避免的计算限制了体素方法的实时性。
3. 基于点的方法
相比于前两种方法直接对点云数据建模减少信息的损失,比较经典的如PointNet系列,提出了一种统一的深度网络体系结构,直接使用不规则点来获取局部和全局点的特征,如下图所示:
大多数基于点的算法都是对PointNet系列的改造,从不规则点中获取3D特征。基于点的方法在三维检测任务中展现了强大的能力和潜力。
基于以上三种方法,论文中给出一张优缺点对比图:
检测任务中较常用的是以IoU的方式计算mAP。通过三维预测盒与三维地面真值盒的交集求出的三维IoU与阈值比较,确定检测是真阳性(TP)还是假阳性(FP)。
精准度是判断为真的正例占所有判断为真的样例比重
召回率是分类器中判定为真的正例占总正例的比率
单一的看精准度或者召回率都是比较片面的,可以通过P-R曲线可以用来观察模型准确度和召回率之间的平衡。
另一种评估方式是使用二维中心距离测量代替IoU,允许在3D边界框计算中解耦对象位置、大小和方向,减少在使用IoU度量时,存在TP目标不匹配的问题。
除了mAP度量之外,还测量了一组真正度量(TP度量),以量化每个TP的质量,包括盒子的位置、大小、方向、属性和速度。
TP包含了以下五个错误:
平均平移误差(ATE):二维欧式中心距离;
平均尺度误差(ASE):校准方向和平移后3D IoU的误差;
平均方向误差(AOE):角度和GT角度之间的误差;
平均速度误差(AVE):平面状态下经过L2后的速度误差;
平均属性误差(AAE):1- 类别精度
公式如下:
1. 点云数据的稀疏性增加特征提取的难度
可以考虑从局部点云生成目标三维形状和形状几何的推断。或者将多层次的点特征从粗到细进行融合,保持稀疏目标特征更为详细的信息。
2. 点云之间不规则性影响搜索效率
没有拓扑关系的点云在卷积提取特征时往往不能表现出好的效果。可以考虑图卷积网络来处理原始点云,引入可学习的卷积参数对拓扑图进行优化,有利于不规则图的特征学习。
3. 是否需要融合多传感器数据
不同传感器带来的特征信息确实能够对场景进行相互补充。比如使用图像颜色和纹理特征来补充点云数据的形状特征。
较流行的方案是以点云生成三维提议框,将图像的RGB矢量、分割特征或类概率直接附加到三维空间中相应的投影点上,构造丰富的逐点输入数据。
4. 是否有必要做多任务联合训练
三维环境的感知是将多个任务协同工作,每种任务带来的信息输出是可以给其他任务作为参考,所以在多个任务之间共享特征和传输信息是值得的,可以有效提高3D目标检测的效果。
5. 是否要做复杂场景下的性能验证
实验室中的算法原型开发一般只针对特定场景或者特定数据集跑出一个很好的效果,但是真实场景下,雨、雾很容易被雷达反射,同时引入噪声点。所以在实际应用中有许多额外的因素需要考虑:
检测算法是否能较鲁棒的处理噪声数据;
类别的增多是否需要增加锚点引起计算压力;
特殊场景的小样本数据是否会有不均衡问题;
本文仅做学术分享,如有侵权,请联系删文。