查看原文
其他

值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(下)

黄浴 AI科技大本营 2019-10-30


作者 | 黄浴
来源 | 转载自知乎专栏自动驾驶的挑战和发展

【导读】在近日发布的《值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)》一文中,作者介绍了一部分各大公司和机构基于激光雷达的目标检测所做的工作,本文是补充的第二部分。


继续介绍一些工作。没想到,这个研究方向很热。


“FVNet: 3D Front-View Proposal Generation for Real-Time Object Detection from Point Cloud”


这是一个称为FVNet的框架,从点云生成3D前视图提议和目标检测。它包括两步:生成前视图提议和估计3D边框参数。


首先将点云投影到圆柱面上以生成保留丰富信息的前视特征图,而不是从摄像机图像或鸟瞰图中生成提议。然后,引入提议生成网络(proposal generation network),从生成的图中预测3D区域提议,并进一步从整个点云中提取出感兴趣的目标。最后提出了另一个网络,用于从提取出的目标点中提取点特征,并在规范坐标中回归最终的3D边框参数。该框架实现了每点云样本处理时间12ms的实时性能。


如图(a)FVNet的概述。由两个子网组成:(b)用于生成3D区域提议的提议生成网络(PG-Net)和用于估计3D边框参数的参数估计网络(PE-Net)。

如图是PG-Net架构。顶部是主干网,底部分别显示残余块、卷积块和上采样块的细节。


如图显示一个3D边框及其相应的圆柱片段。左:具有维度先验(Pw,Ph)、位置预测(bx,by)和截断距离预测(r1,r2)的3D边框。右:3D空间中的相应圆柱片段,它通过截取具有两个径向距离r1和r2的平截头( frustum)生成。





形成圆柱投影的公式是:



“Part-A^2 Net: 3D Part-Aware and Aggregation Neural Network for Object Detection from Point Cloud”


本文提出从点云中进行三维物体检测的部件-觉察(part-aware)和聚合神经网络(Part-A^2 Net)。整个框架由部件-觉察阶段和部件聚合阶段两个组成。


首先,部件觉察阶段学习用3D真实(GT)框导出的免费监督同时预测粗略3D提议和准确目标内(intra-object)部件位置。通过设计的RoI-觉察(-aware)点云池化模块对相同提议中预测的目标内(intra-object)部件位置进行分组,从而实现3D提议特征编码的有效表示。


然后,部件聚合阶段学习重新对边框进行评分并基于池化部件位置来细化边框位置。


下图所示,即使当目标被部分遮挡时,所提出的部件-觉察和聚合网络也可以鲁棒地预测目标内部件位置和分割掩码。这样的部件位置可以辅助更准确的3D目标检测。



下图是用于3D目标检测的部件-觉察(part-aware)和聚合神经网络(Part-A^2 Net)总体框架。它包括两个阶段:(a)第一个部分,部件-觉察阶段准确地估计目标内部件位置,并通过将原始点云馈送到设计的骨干网络来生成3D提议。(b)第二部分,聚合阶段进行提议的RoI-觉察点云池化操作对每个3D提议的部件信息进行分组,然后利用部件聚合网络根据部件特征和信息对边框进行评分和细化位置。



下面介绍稀疏上采样和特征细化块。该模块在基于稀疏卷积的UNet骨干解码器中采用。横向特征和底部特征首先通过稀疏卷积融合和变换。然后通过稀疏逆卷积对融合特征进行上采样。



再说RoI-觉察点云特征池化图。由于上述BEV图中显示的模糊性,无法使用先前的点云池化方法恢复原始边框形状。提出的RoI-觉察点云池化方法可以通过保持空体素来编码边框形状,这个只需要跟着稀疏卷积即可。



如下图是一些结果展示:



“Voxel-FPN: multi-scale voxel feature aggregation in 3D object detection from point clouds”


点云数据中的目标检测是计算机视觉系统中的关键组件之一,尤其是自动驾驶场景。Voxel-FPN,是一种单步3D目标探测器,仅利用LIDAR传感器的原始数据。


核心框架包括编码器网络和相应的解码器,后跟区域提议网络。编码器以自下而上的方式提取多尺度体素信息,而解码器以自上而下的方式融合来自不同尺度的多个特征图,如下所示。



下图是VFE框架:体素特征提取。



这是RPN-FPN框架图:



如图是可视化汽车检测结果:绿色立方体表示真实3D框,红色表示检测结果。



“STD: Sparse-to-Dense 3D Object Detector for Point Cloud ”


本文提出了一种两步3D目标检测框架,称为从稀疏到密集的3D目标探测器(STD)。第一步是自下而上的提议生成网络,使用原始点云作为输入,通过使用球形锚点(spherical anchor)为每个点撒种来生成准确的提议。实现了高召回率,计算量更少。


然后,应用PointsPool将其内部点特征从稀疏表达转换为紧凑表示,生成提议特征,从而节省更多的计算时间。


在第二步的边框预测中,实现了并行的交叉联合(IoU)分支,提高对定位精度的觉察,从而进一步提高性能。


下面是包括三个不同部分的框架示意图。第一部分是提议生成模块(proposal generation module,PGM),用于从人工基于点的球形锚点生成准确的提议。第二部分是PointsPool层,用于将提议特征从稀疏表达转换为紧凑表示。最后一个是边框预测网络,对提案进行分类和回归,并选择高质量的预测。



接着说提议生成模块的网络。(a)3D分割网络(基于PointNet ++),将原始点云(x,y,z,r)作为输入,并通过堆叠集合抽象(set abstraction,SA)层和特征传播(feature propagation,FP)模块为每个点生成语义分割分以及全局上下文特征。(b)提议生成网络(基于PointNet)。它将锚点内点的归一化坐标和语义特征作为输入,产生分类和回归预测。



下图是可视化的KITTI测试结果。汽车、行人和骑自行车者分别以黄色、红色和绿色突出显示。每个图像的上行是投影到RGB图像上的3D对象检测结果。另一个是LiDAR阶段的结果。



“Fast Point RCNN”


这个腾讯的工作是为基于点云的三维目标检测提供统一、高效和有效的框架。这种两步法同时利用体素表示和原始点云数据来利用各自的优势。


第一步中以体素表示为输入的网络仅由轻卷积运算组成,产生少量高质量的初始预测。初始预测中每个点的坐标和索引卷积特征(indexed convolutional feature)与注意机制有效融合,保留了准确的定位和上下文信息。


第二步利用其融合特征在内部点上工作,以进一步细化预测。


如图给出两步法框架概述。在第一步,将点云体素化并将它们馈送到VoxelRPN产生少量初始预测。然后通过融合VoxelRPN的内部点坐标和上下文特征为每个预测生成框特征。边框特征被送到RefinerNet进行进一步改进。



假设点云的感兴趣区域是大小为(L,W,H)的长方体,并且每个体素大小(vl,vw,vh),3D空间被划分为大小(L/ vl,W/ vw,V/ vh)的3D体素网格。


下图是VoxelRPN的网络结构。图中使用的层格式如下(内核大小)(通道)/(步幅),即(kx,ky,kz)(chn)/(sx,sy,sz)。除非另有说明,否则默认步幅为1。



下图是RefinerNet架构:



而这个是边框的经典化,其中数字表示RefinerNet中角点预测的顺序。



给个结果:



“StarNet: Targeted Computation for Object Detection in Point Clouds”


这是谷歌的工作。提出一个专门为单步和两步法的点云数据混合(blending)的目标检测系统。观察到点云的目标与传统的相机图像截然不同:目标稀疏且位置变化很大,但没有展示出在单个相机视角中观察到的尺度失真。这两个观察现象表明,简单且廉价的数据驱动目标提议可以使空间覆盖最大化,或与观察到的点云数据密度相匹配。这种识别与局部非卷积的基于点网络相结合,允许为点云建立目标探测器,该检测器可以仅训练一次,但适应不同的计算设置 - 针对不同的预测优先级或空间区域。在KITTI检测数据集以及大规模Waymo Open Dataset上,他们展示了这种灵活性和有针对性的检测策略。StarNet如图结构:



如图是StarNet点特征器(point featurizer)。(a)StarNet块将一组点作为输入,其中每个点都有一个相关的特征向量。每个块首先计算点云的聚合统计数据(最大值)。接下来,将全局统计数据连接回每个点特征。最后,应用两个全连接层,每个层由BN、线性投影和ReLU激活组成。(b)StarNet点特征器(point featurizer)堆叠多个StarNet块,并使用平均聚合(mean aggregation)读出每个块输出。读数连接在一起形成点云特征(featurization)。






注意看算法伪代码:




“Class-balanced Grouping and Sampling for Point Cloud 3D Object Detection”


本文介绍了一个赢得自动驾驶研讨会(WAD,CVPR 2019)中nuScenes 3D检测挑战赛的冠军方法。通常,利用稀疏3D卷积来提取丰富的语义特征,然后将其馈送到类平衡(class-balanced)的多头网络执行3D目标检测。为了处理自动驾驶场景中固有的严重类别不平衡问题,设计了一种类平衡的采样和增强策略,以生成更平衡的数据分布。


此外,提出了一个平衡的分组头,以提高具有相似形状的类别性能。如图是其网络架构。3D特征提取器由子流形(submanifold)和常规3D稀疏卷积组成。3D特征提取器的输出具有16×缩减比,其沿着输出轴扁平化并且馈送到随后的区域提议网络(RPN)生成8×特征图,随后是多组头部网络以生成最终预测。注:头部的组数是根据分组规范来设置的。



如下是验证分开的检测结果示例。GT注释为绿色,检测结果为蓝色。每个点云鸟视图图像顶部的标记是其对应的样本数据标记。



“Deep Hough Voting for 3D Object Detection in Point Clouds”


当前的3D目标检测方法受2D检测器的严重影响。为了利用2D检测器的架构,经常将3D点云转换为常规网格(即,到体素网格或鸟瞰图像),或者依赖于2D

图像的检测来提出3D框。很少有人尝试直接检测点云中的目标。


这项工作回到第一个原则来构建点云数据的3D检测流程图,并尽可能通用化。然而,由于数据的稀疏性 - 来自3D空间中的2D流形的样本 - 当从场景点直接预测边框参数时,面临一个主要挑战:3D目标质心可能远离任何表面点,因此难以准确地回归一步到位。


为了应对这一挑战,提出了VoteNet,一种基于深度点集网络和Hough投票(voting)协同工作的端到端3D目标检测网络。VoteNet使用纯粹的几何信息而不依赖于彩色图像。


注意该方法提供了开源代码:github.com/ facebookresearch/votenet。


如下图所示即具有深度Hough投票模型的点云三维目标检测。给定3D场景的点云,VoteNet投票到目标中心,然后分组并聚合投票以预测3D边框和目标的语义类。



下图是VoteNet架构在点云3D对象检测示意图。给定具有XYZ坐标的N个点的输入点云,一个骨干网络(PointNet++层实现)亚采样并且学习点深度特征并输出M个点子集,但被C维度特征扩展。


该点子集被视为种子点。每个种子通过投票模块独立地产生投票。然后,将投票分组为集群(clusters )并由提议模块处理以生成最终提议。分类和非最大抑制(NMS)处理的提议成为最终的3D 边框输出。



下图解释投票如何有助于增加检测上下文信息。生成好的边框(BoxNet)或好的投票(VoteNet)的种子点反过来生成好边框,就叠加在代表性的ScanNet数据场景上(蓝色)。由于投票步骤有效地增加了上下文,VoteNet展示了更密集的场景覆盖面,因此增加了准确检测的可能性。



大家可以看出来,一些激光雷达点云的3D目标检测器和2-D目标检测器有相似之处,也分单步法和两步法,也有区域提议网络(RPN),特征提取的设计上自由度更大,可以在投影(多是鸟瞰视图)图像,也可以在3-D体素空间,甚至直接点云空间,并可能设计2-D投影和3-D之间的转换通道提供某种特征聚合机制。


(*本文为AI科技大本营转载文章,转载联系作者)


精彩推荐



【结果提交倒计时】PV,UV流量预测算法大赛,结果提交截止时间为9月20日,还没有提交的小伙伴抓紧时间了~~9月25日公布初赛成绩。最新排行榜请扫码查看。


推荐阅读


你点的每个“在看”,我都认真当成了喜欢“

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存