[论文阅读]VoxelNet——基于点云的三维物体检测的端到端学习
VoxelNet论文阅读
VoxelNet
基于点云的三维物体检测的端到端学习
论文地址:VoxelNet
摘要
三维点云目标检测主要应用场景:自主导航,家居机器人,虚拟现实等。
为了将激光雷达获取的点云数据与区域提议网络(RPN)结合,现有的工作主要集中在手工制作的特征表示上:例如鸟瞰投影。
本文消除了对三维点云的手工特征工程的需要,一个通用的三维检测网络,它将特征提取和区域提议框预测统一为一个单阶段的,端到端的可训练的深度网络。
VoxelNet将点云划分为等间距的3D体素,并通过新引入的体素特征编码(VFE)层将每个体素内的一组点转换为统一的特征表示。点云被编码为描述体积的表示,然后将其连接到RPN生成检测。
引言
与基于图像的检测相比,激光雷达所获得点云数据提供了可靠的深度信息,可用于精确定位物体并表征其形状。
与图像不同,三维空间采样不均匀,传感器有效范围有限,遮挡和相对位姿等因素,激光雷达所获得的点云数据是稀疏的,以及点密度高度可变。
为了应对这些挑战,许多方法通过手工构建特征来表示点云,这些特征是为三维检测而调优的。例如:(1)将点云投影到透视图中,并应用基于图像的特征提取技术。 (2)将点云栅格化为3D体素网格,并用手工制作的特征对每个体素进行编码。 这些手工设计特征引入了一个信息瓶颈,阻止了这些方法有效的利用三维形状信息和检测任务所需的不变性。基于图像的识别和检测,一个重大的突破就是由手工制作特征转向机器学习特征。
PointNet:提出了一种直接从点云学习特征的端到端深度神经网络。
改进的PointNet,使网络能够在不同尺度上学习局部特征。 这两个网络都是在所有的输入点上训练特征变换网络,有较高的计算和存储需求。
区域提议网络是一种高度优化的有效目标检测算法。这种方法要求数据密集并以张量的形式存储。这不是激光雷达点云所具备的情况。
本文设计了一种新的体素特征编码(VFE)层,通过将逐点特征与局部聚集特征相结合,实现了体素内点的相互交互,通过堆叠多个VFE层学习用于表征局部三维形状信息的复杂特征。 具体来说,VoxelNet将点云划分为等间距的3D体素,通过堆叠的VFE层对每个体素进行编码,然后3D卷积进一步聚合局部体素特征,将点云转换为高维体素表示。最后,一个RPN消耗体积并产生检测结果。 该算法不仅具有稀疏的点结构,而且在体素网格上进行了高效的并行处理。
相关工作
早期的特征表示方法:手工提取特征。当有丰富和详细的三维形状信息时,这些手工制作的特征会产生令人满意的结果,然后它无法适应更复杂的形状和场景,也无法从数据中学习所需的不变性。
图像可以提供丰富的纹理信息,许多算法从二维图像推理出三维边界框。然而,基于图像的三维检测方法在精度上受到深度估计精度的限制。
几种基于激光雷达的三维目标检测技术利用体素网格表示。 例如用6个统计量对每个非空体素进行编码,这些统计量是从体素中包含的所有点导出的。 融合多个局部统计信息来表示每个体素。 计算体素网格上截断的有符号距离。 对3D体素网格进行二进制编码。 通过计算鸟瞰视图中的多通道特征图和正面视图中的圆柱坐标,提出了一种激光雷达点云的多视图表示方法。 其他的一些研究方法将点云投影到透视图上,然后使用基于图像的特征编码方案。
也有基于多模态融合的方法,将图像和激光雷达结合起来提高检测精度。 与仅使用激光雷达的3D检测相比,这些方法提供了改进的性能,特别是对于小物体(行人、骑自行车的人)或当物体很远时,因为相机提供的测量比激光雷达多一个数量级。 然而,需要一个与激光雷达时间同步和校准的额外相机限制了它们的使用,并使解决方案对传感器故障模式更加敏感。
VoxelNet贡献
- 提出了一种新的端到端可训练的深度点云检测体系结构VoxelNet,它直接对稀疏的三维点进行检测,避免了手工特征工程引入的信息瓶颈。
- 本文提出了一种有效的VoxelNet的实现方法,它既具有稀疏的点结构,又能在体素网格上进行高效的并行处理。
VoxelNet体系结构
VoxelNet由3个功能部分组成:
- 特征学习网络
- 卷积中间层
- 区域提议网络
特征学习网络
- 体素分割:将三维空间细分为等间距的体素
- 分组:根据点所在的体素对它们进行分组。分组后,每个体素中包含可变数量的点。
- 随机抽样:直接处理所有的点对计算平台的内存和效率负担太大,而且整个空间中点的密度参差不齐,对检测会带来偏差。解决:从包含T个以上点的体素中随机抽取固定数目T个点。 这种抽样策略有两个目的,(1)计算节省; (2)减少了体素之间点的不平衡,从而减少了采样偏差,增加了训练的变异。
- 堆叠体素特征编码(VFE)

其中LIDAR中的点用pi = [xi, yi, zi, ri]表示,pi包含第i点的XYZ坐标,ri是接收到的反射率。用V = {pi = [xi, yi, zi, ri]T∈R4}i=1…t为包含t≤T LiDAR点的非空体素。首先计算局部均值作为V中所有点的质心,表示为(vx, vy, vz)。然后用质心的相对偏移量w.r.t增大每个点pi,得到输入特征集Vin ={ˆpi = [xi, yi, zi, ri, xi−vx, yi−vy, zi−vz]T∈R7}i=1…T。接下来,每个ˆpi通过全连接网络(FCN)转换成一个特征空间,通过聚合来自点特征fi∈Rm的信息,对体素中包含的表面形状进行编码。FCN由线性层、批归一层(BN)和线性激活单元(ReLU)层组成。在获得点级特征表示之后,我们在所有与V关联的fi上使用元素级MaxPooling来获得局部聚合的特征˜f∈Rm对于V。最后,我们用˜f对每个Fi进行扩充,形成点状级联特征为fout。从而得到输出特征集Vout = {fout i}i…t。所有非空体素都以相同的方式编码,并且在FCN中共享相同的一组参数。
使用 VFE-i(cin,cout)来表示第 i 个 VFE 层,它将输入维数 cin 的特征转换为输出维数 cout 的特征。线性层学习一个大小为 cin×(cout/2) 的矩阵,并通过逐点连接得到维度为 cout 的输出。
由于输出特征结合了逐点特征和局部聚集特征,堆叠VFE层编码体素内的点交互,并使最终特征表示能够学习描述形状信息。 通过将VFE-n的输出通过FCN转换成RC,并应用元素MaxPool来获得体素特征。 - 稀疏张量表示:将非空体素特征表示为稀疏张量,大大减少了反向传播过程中的内存占用和计算开销,是有效实现反向传播的关键步骤。
卷积中间层
3D卷积 + BN层 + RELU层
卷积中间层在逐渐扩大的感受野中聚集体素特征,为形状描述增加更多上下文。
RPN
区域提议网络已经成为了顶级目标检测框架中重要组成部分。
本文对RPN体系结构做了几个关键的修改,将其与特征学习网络和卷积中间层结合起来,形成了一个端到端的可训练流水线。
RPN的输入是由卷积中间层提供的特征映射。
该网络有三个完全卷积层块。 每个块的第一层通过步幅为2的卷积将特征映射向下采样一半,然后是步幅为1的卷积序列(×q表示滤波器的q应用)。 在每个卷积层之后,应用BN和RELU操作。 然后,我们将每个块的输出上采样到一个固定的大小,并连接以构建高分辨率的特征映射。 最后,该特征映射到期望的学习目标:(1)概率得分映射和(2)回归映射。
损失函数

Lcls分类损失使用的是二元交叉熵损失函数
Lreg回归损失使用的是使用SmoothL1函数
高效实施
GPU优化处理密集张量结构。 直接处理点云的问题是:点在空间中的分布是稀疏的,每个体素内都是可变数量的点。
本文设计了一种将点云转换为密集张量结构的方法,在该方法中,堆叠的VFE操作可以跨点和体素并行处理。
实验
KITTI 3D对象检测基准
基准包含7,481幅训练图像/点云和7,518幅测试图像/点云,涵盖三类:汽车、行人和自行车手。 对于每一个类别,检测结果的评估基于三个难度级别:容易,中等和难,这是根据对象的大小,遮挡状态和截断级别确定的。
KITTI官方的评估协议:其中汽车类的IOU阈值为0.7,行人和自行车类的IOU阈值为0.5。 无论是鸟瞰还是全3D评测,IOU阈值都是一样的。 本文使用平均精度(AP)度量对这两种方法进行了比较。
结论
未来的工作包括扩展Voxelnet用于联合激光雷达和基于图像的端到端三维检测,以进一步提高检测和定位精度。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)