本文转载自知乎,已获作者授权转载。

https://zhuanlan.zhihu.com/p/148942116

本文简单介绍一下我们关于点云3D物体检测方向的最新算法:PV-RCNN (Point-Voxel Feature Set Abstraction for 3D Object Detection)。

我们的算法在仅使用LiDAR传感器的setting下,在自动驾驶领域Waymo Open Challenge点云挑战赛中取得了(所有不限传感器算法榜单)三项亚军、Lidar单模态算法三项第一的成绩,以及在KITTI Benchmark上保持总榜第一的成绩超过半年。

(顺带聊一下我对现在LiDAR点云3D检测方向的一些看法)

论文链接 (代码链接在最后):https://arxiv.org/abs/1912.13192

1

PV-RCNN性能怎么样?

我们先看看PV-RCNN 3D检测框架的性能如何。说到底,做high-level的,大多数还得硬碰硬 (不然难免故事吹的天花乱坠,一跑AP只有0.5。。

1. 到目前为止,3D检测算法上竞争最激烈的莫过于KITTI榜单了(近两年每次DDL都能涌现很多新方法。。

我们是去年11月提交的PV-RCNN结果,大幅领先之前的SoTA算法,且保持第一大半年一直到现在(最近出现很多新方法,估计也该被别人挤下去了。。

KITTI 3D检测榜单(Car类别)。

2. 除了KITTI以外,自动驾驶业界巨头Waymo也在去年release了超大的点云数据集Waymo Open Dataset。据我们所知,除了Waymo/Google以外,我们应该是最早在Waymo数据集训练+测试的论文(之一),同样大幅领先了Waymo论文的算法:

PV-RCNN在Waymo Open Dataset上的性能。

3. 此外,Waymo还于CVPR2020举办了点云3D物体检测等比赛,因为我们刚好有去年投稿PV-RCNN时准备的各种现成Waymo代码(以及觊觎其丰厚的奖金233),所以就直接跑了一下。由于实验室机器有限,我们并没有太多资源(与时间)投入到比赛中,我们提交的方法基本就是裸的论文原版PV-RCNN+一些简单trick,在仅使用LiDAR点云作为输入的情况下,我们最终取得了3D Detection、3D Tracking、Domain Adaptation三项比赛中单模态算法三项第一,所有(不限传感器)算法三项第二。

在KITTI/Waymo上的出色性能,证明了我们PV-RCNN 3D检测框架的有效性,接下来简单介绍一些我们是怎么做的,以及为什么要这么做。

点云数据的稀疏性与不规则性,以及如何从点云数据中提取特征

众所周知,相比图像,点云数据的不规则性和稀疏性需要我们设计更特殊的网络结构去点云中提取特征。我们一般采用下面两种方式提取点云特征,一个是PointNet++[1]中提出的point-based Set Abstraction (以及各种魔改版本SA),另一个是转化为规则voxel以后的voxel-based Sparse Convolution [2]。

点云特征提取的两种常用操作。

这两种方式各有各的优点:

(1) SA在原始点云上做,保留了准确的位置信息,且通过自定义球的半径使得感受野更为灵活。

(2) Sparse conv在voxel上做,速度往往更快,并且在自动驾驶场景下结合anchor可以产生更高质量的3D Proposal (室内场景一般来讲通过PointRCNN[3]中提出的anchor-free策略提Proposal更为高效且直观)。

2

动机

为了综合利用上面两种特征提取操作各自的优势,我们就在考虑怎么能将这两种点云特征提取算法深度结合到一个网络中,提升网络的结构多样性以及表征能力。从另一个方面讲,我们之前一直专注于二阶段的高性能3D网络检测框架(PointRCNN[3], PartA2-Net[4]),经验告诉我们,在point上进行3D RoI pooling比BEV map上效果更好(保留更精细的特征)。所以,怎么得到表征能力更强的point-wise特征,也是我们需要做的。

因此,我们接着考虑,怎么能将整个场景编码到少量的keypoint上,用这些point-wise的keypoint特征来做第二阶段的RoIPooling,也就是将其作为桥梁,来连接检测框架的两个阶段。

然后我们就自然而然的关注到了Set Abstraction这个操作上了。在Set Abstraction的原本设计中,球中心的点是从整个点云中采样出来的,其与周围的点同宗同源,中心点的特征即通过球内周围点的特征聚合而来。然而,我们发现,其实球中心点无需与周围的点同宗同源,球中心点是可以任意给定的。所以,Set Abstraction本身就可以作为一个很好的操作,来结合上面两种点云特征提取操作(球中心与周围点可以分别来自于point与voxel)。

3

PV-RCNN算法简介

有了上面的思路,还需要一些具体实现的设计。简单来讲:

PV-RCNN 3D物体检测框架,包含了Voxel-to-keypoint Scene Encoding和Keypoint-to-grid RoI Feature Abstraction两部分。

(1) 我们提出了Voxel Set Abstraction操作,将Sparse Convolution主干网络中多个scale的sparse voxel及其特征投影回原始3D空间,然后将少量的keypoint (从点云中sample而来) 作为球中心,在每个scale上去聚合周围的voxel-wise的特征。这个过程实际上结合了point-based和voxel-based两种点云特征提取的结构,同时将整个场景的multi-scale的信息聚合到了少量的关键点特征中,以便下一步的RoI-pooling。

(2) 我们提出了Predicted Keypoint Weighting模块,通过从3D标注框中获取的免费点云分割标注,来更加凸显前景关键点的特征,削弱背景关键点的特征。

RoI-grid Pooling的2D示意图,pool的感受野可以超出proposal框之外,编码更多有效信息。

(3) 进一步,我们设计了更强的点云3D RoI Pooling操作,也就是我们提出的RoI-grid Pooling: 与前面不同,这次我们在每个RoI里面均匀的sample一些grid point,然后将grid point当做球中心,去聚合周围的keypoint的特征。这样做的好处有两个:

(1) 球半径灵活,甚至可以包括proposal框外围的关键点,从而获取更多有效特征。

(2) 球互相覆盖,每个keypoint可以被多个grid point使用,从而得到更紧密的RoI特征表达。另一方面,这其实也是另一个point (keypoint)与voxel (grid point)特征交互的过程。

通过Voxel-to-keypoint与keypoint-to-grid这两个point-voxel特征交互的过程,显著增强了PV-RCNN的结构多样性,使其可以从点云数据中学习更多样性的特征,来提升最终的3D检测性能。

4

PV-RCNN 代码到哪找?

前段时间我们release了一个通用3D检测代码库,PCDet:https://github.com/sshaoshuai/PCDet

最近我们正在重新整理PCDet代码库,方便更好的进行排列组合,同时包含更多的model与dataset。我们的PV-RCNN代码也将于近期整合到PCDet中,敬请关注。

5

点云3D物体检测还有哪些可做的?

最后简单聊一下我觉得点云3D检测还有哪些方向可以试一下。随着越来越多优秀的人涌入做基于点云的3D物体检测,以及越来越多的开源codebase和数据集(KITTI, NuScenes, Waymo等),3D物体检测的性能在短短两三年间已经被提升了好几个档次。

从目前的情况来看,由于多sensor的同步等问题,纯LiDAR的3D检测算法受到追捧,且达到了媲美多sensor甚至更强的性能。但我们都知道点云3D物体检测算法最大的应用场景就是自动驾驶,其对可靠性要求很高。而LiDAR捕获的点云场景包含更多的几何信息,其语义信息远不如图像,这使得纯LiDAR感知算法经常出现奇怪的误检,且由于点云的稀疏性导致纯LiDAR检测器能识别的类别有限。所以多模态的LiDAR+RGB结合的检测算法从长远来看还是有很大的发展空间的。

而大部分人之所以醉心于纯LiDAR 3D物体检测,是因为基于LiDAR+RGB的3D物体检测算法面临一些问题:

(1) 比如LiDAR点云和RGB图像是来自于不同view的场景表征,如何融合两者的特征?融合了特征又如何做检测?之前也有一些方法探索了这个问题,但还没看到比较优雅的解决方案。

(2) 另一个问题是纯LiDAR的3D物体感知可以做各种各样的数据增强,比如将一个场景中的GT "copy"到另一个场景。而如果结合RGB图像,"copy"的GT在RGB图像上的特征如何处理,也是一个难解的问题。

另一方面,随着Waymo等大规模的点云数据集的发布(Waymo Open Dataset的每个scene的检测范围已经比最早的KITTI大了近4倍),以及自动驾驶车上的时延需求,我们期待出现更高效的3D物体检测框架。同时随着LiDAR传感器的发展,如何更高效的检测更大范围的点云场景(更密的点+更大的范围),也是一个值得探索的方向。

参考资料

[1] Qi, Charles Ruizhongtai, et al. "PointNet++: Deep hierarchical feature learning on point sets in a metric space." Advances in neural information processing systems. 2017.

[2] Graham, Benjamin, Martin Engelcke, and Laurens van der Maaten. "3d semantic segmentation with submanifold sparse convolutional networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

[3] Shi, Shaoshuai, Xiaogang Wang, and Hongsheng Li. "PointRCNN: 3d object proposal generation and detection from point cloud." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019

[4] Shi, Shaoshuai, et al. "From Points to Parts: 3d object detection from point cloud with part-aware and part-aggregation network." IEEE Transactions on Pattern Analysis and Machine Intelligence (2020).

END

在看,让更多人看到  

CVPR2020 | PV-RCNN: 3D目标检测相关推荐

  1. CVPR 2019 | Stereo R-CNN 3D 目标检测

    点击我爱计算机视觉标星,更快获取CVML新技术 本文来自知乎,52CV获作者heryms授权转载. https://zhuanlan.zhihu.com/p/58077936 CVPR 2019的文章 ...

  2. 汇总|3D目标检测文章(CVPR2020)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言 今年CVPR20-paper-list前几天已经出了,所以这里做一点大致的综述介绍在CVPR20 ...

  3. CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  4. 地平线机器人提出Anchor free、NMS free的3D目标检测算法 | CVPR2020 Workshop

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 这是一篇由地平线机器人发表在CVPR2020 Workshop的文章,主要是将Anchor Free的 ...

  5. CVPR2020 3D目标检测 PV-RCNN

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者不一样的子湘授权转载,不得擅自二次转载.原文链接:https://zhuanlan.zh ...

  6. CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:不一样的子湘 知乎链接:https://zhuanlan.zhihu.com ...

  7. 3D目标检测 CVPR2020 总结

    本文盘点CVPR 2020 所有目标检测相关论文,总计64篇论文,感觉最大的特点是3D目标检测研究工作很多有21篇,尤其是工业界单位,可能是自动驾驶热带来的.2D目标检测依然很热,神经架构搜索也开始在 ...

  8. 详解两阶段3D目标检测网络 Voxel R-CNN:Towards High Performance Voxel-based 3D Object Detection

    本文介绍一篇两阶段的3D目标检测网络:Voxel R-CNN,论文已收录于AAAI 2021. 这里重点是理解本文提出的 Voxel RoI pooling. 论文链接为:https://arxiv. ...

  9. 【CVPR2020】3D目标检测论文汇总

    文章目录 1. 3D目标检测--室外 1. Associate-3Ddet: Perceptual-to-Conceptual Association for 3D Point Cloud Objec ...

  10. 通过形状先验引导的3D目标检测方法(Disp R-CNN解读)

    来源丨AI 修炼之路 问题,我们提出在不需要雷达点云的情况下,使用统计形状模型生成密集视差伪真值,这使得我们的系统具有更广泛的适用性.在KITTI数据集上进行的实验表明,即使在训练时不使用雷达数据,D ...

最新文章

  1. linux(六)之文本操作
  2. 关于python mysql
  3. windows环境给redis配置密码
  4. 【git重案组】如何逃避git blame的追踪?
  5. 数字电路中的建立时间与保持时间
  6. 关闭报错_Cydia Impactor工具各种报错提示的解决方法!
  7. html5 drawimage 不显示,javascript – 来自视频的HTML5 Canvas drawImage在第一次绘制时不显示...
  8. 运行QTP测试脚本后,将编译结果写入指定文件(四)
  9. 优惠券如何引流,如何做好优惠券推广,优惠券正确引流方法
  10. 机器学习十大算法案例
  11. VScode自动格式化代码减少build时的问题
  12. commonAncestor
  13. Latex --- 加三级子标题,解决没有编号问题(已解决)(加头文件即可)
  14. MySQL字段名诸如key的报错问题
  15. 母亲节板报图片计算机方案,母亲节电子手抄报图片大全
  16. 【程序厨】学习 Redis ,可以看看这个
  17. omnigraffle 画曲线_三步学会用绘图利器 OmniGraffle 绘制流程图
  18. 关于蜂产品保健的一些介绍
  19. Linux下EC20实现ppp拨号
  20. python write函数参数_Python函数-函数参数、返回值

热门文章

  1. LeetCode实战:整数反转
  2. redis删除过期key的算法_面试官别再问我Redis内存满了该怎么办了
  3. 又被 AI 抢饭碗?2457 亿参数规模,全球最大中文人工智能巨量模型 “源1.0”正式开源...
  4. 物联网下的数据传输,Python 就能搞定!
  5. 通过三个直观步骤理解ROC曲线
  6. 170个新项目,579个活跃代码仓库,Facebook开源年度回顾
  7. 多模态人物识别技术及其在爱奇艺视频场景中的应用 | 公开课笔记
  8. 再见Python!Yann LeCun警告:深度学习需要新编程语言
  9. 中小学AI教育靠谱吗?50%教师教学经验不足1年
  10. 云计算赋能人工智能,未来的红利在哪?