点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨Shaoshuai Shi@知乎

来源丨https://zhuanlan.zhihu.com/p/148942116

编辑丨3D视觉工坊

本文简单介绍一下我们关于点云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

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更为高效且直观)。

动机

为了综合利用上面两种特征提取操作各自的优势,我们就在考虑怎么能将这两种点云特征提取算法深度结合到一个网络中,提升网络的结构多样性以及表征能力。从另一个方面讲,我们之前一直专注于二阶段的高性能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)。

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检测性能。

PV-RCNN 代码到哪找?

前段时间我们release了一个通用3D检测代码库,PCDet:

https://github.com/open-mmlab/OpenPCDet

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

点云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).

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

CVPR2020 | PV-RCNN: 3D目标检测 Waymo挑战赛+KITTI榜 单模态第一算法相关推荐

  1. CVPR2020 | PV-RCNN: 3D目标检测Waymo挑战赛+KITTI榜单模态第一算法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:知乎Shaoshuai Shi,https://zhuanl ...

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

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

  3. 面试真题总结:Faster Rcnn,目标检测,卷积,梯度消失,Adam算法

    目标检测可以分为两大类,分别是什么,他们的优缺点是什么呢? 答案:目标检测算法分为单阶段和双阶段两大类.单阶段目标验测算法(one-stage),代表算法有 yolo 系列,SSD 系列:直接对图像进 ...

  4. 一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[ECCV2022]获取ECCV2022所有自动驾驶方向论文! 目前 ...

  5. 【3D目标检测】3D Object Detection for Autonomous Driving: A Survey

    目录 概述 细节 背景 常用数据集及其评价指标 基于RGB图像的算法 基于点云的算法 基于RGB图像与点云模态融合的算法 概述 这是一篇21年的综述,介绍了3D目标检测背景.传感器以及基于传感器的算法 ...

  6. 万字长文概述单目3D目标检测算法

    一,理论基础-相机与图像 相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述,这个模型有很多种,其中最简单的称为针孔相机模型.相机的成像过程是也一个射 ...

  7. 【单目3D目标检测】项目实战-道路车辆/行人3D目标检测

    [单目3D目标检测]项目实战-道路车辆/行人3D目标检测 任务定义 传统激光雷达3D检测模型 VS 单目3D检测模型 单目3D目标检测优点 单目3D目标检测难点 数据集 KITTI数据集标注及网络输出 ...

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

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

  9. Waymo 2020 | 2D/3D目标检测、跟踪和域自适应性冠军解决方案解析

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士 研究方向|多目标跟踪 随着最近 Waymo Open Dataset Challenges 2020 的落幕,其中关于 2D/3 ...

最新文章

  1. Mathtype写分段函数的方法
  2. python埋点测试_埋点进化论:从埋点到无埋点
  3. 用C#+Selenium+ChromeDriver 爬取网页,完美模拟真实的用户浏览行为
  4. chrome恐龙游戏_如何玩没有互联网的Google Chrome恐龙游戏-在线和离线
  5. [jQuery] Zepto的点透问题如何解决?
  6. oracle中出现会话被锁
  7. 学习笔记1:更改python下载源
  8. swift 关于闭包和函数
  9. Win10 Composer下载安装
  10. C语言实现贪吃蛇[内附详细步骤]
  11. UG模具设计从入门到精通
  12. Half-space Hyperplane
  13. UltraLAB台式图形工作站(独门绝技~多核+超高频~极速计算工作站H490介绍)
  14. 那些好玩的生成器网站
  15. 利用composer安装依赖
  16. 开始学习开发Chrome扩展插件
  17. 计算机毕业设计Java后勤管理系统(源码+系统+mysql数据库+lw文档)
  18. 用编译器写的mov ax,[0]指令,执行的实际上是mov ax,0
  19. 大三下的计划以及找工作的准备
  20. gmt java date_关于日期:以Java获取GMT时间

热门文章

  1. easyui datagrid 表格动态隐藏部分列的展示
  2. iOS宏定义的使用与规范
  3. [转]在cocos2d-x中让一个项目适配iphone、iphone retina、ipad、ipad retina四种分辨率
  4. 有无符号的整数、二进制
  5. 社会内卷的真正原因?华为内部论坛的这篇雄文火了
  6. 基于Flink SQL构建流批一体实时数仓
  7. TCP 为什么是三次握手,而不是两次或四次?
  8. 几个简化算法理解的网站,进来收藏!
  9. 一次I/O问题引发的P0重大故障[改版重推]
  10. 这些Java8官方挖的坑,你踩过几个?