PointRCNN: 点云的3D目标生成与检测
PointRCNN: 点云的3D目标生成与检测
PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud
论文地址:https://arxiv.org/abs/1812.04244
代码地址:https://github.com/sshaoshuai/PointRCNN
摘要
本文提出了一种基于点云的三维目标检测方法。整个框架由两个阶段组成:第一阶段用于自下而上的3D方案生成,第二阶段用于在标准坐标系中细化方案以获得最终的检测结果。stage-1子网没有像以前的方法那样从RGB图像或投影点云到鸟瞰图或体素中生成建议,而是通过将整个场景的点云分割成前景和背景,以自下而上的方式直接从点云生成少量高质量的3D建议。第二阶段子网络将每个方案的集合点转换为规范坐标,以学习更好的局部空间特征,并结合第一阶段学习到的每个点的全局语义特征,进行精确的box细化和置信度预测。在KITTI数据集的三维检测基准上进行的大量实验表明,仅使用点云作为输入架构,其性能优于最新的方法,并且具有显著的边缘特征。
本文贡献可以概括为三个方面。
(1) 提出了一种基于自下而上点云的三维包围box方案生成算法,通过将点云分割成前景和背景,生成少量高质量的三维图像方案。从分割中得到的学习点表示不仅有利于方案的生成,而且有助于以后的box求精。
(2) 所提出的规范化三维包围box精化利用了从阶段1产生的高召回box建议,并学习在具有稳健的基于bin的损失的规范化坐标中预测box坐标精化。
(3) 提出的3D检测框架PointRCNN以显著的优势超过了最新的方法,并在截至2018年11月16日所有已发表的3D检测作品中排名第一,只使用点云作为输入测试KITTI板。
在自主驾驶中,最常用的三维传感器是激光雷达传感器,它生成三维点云来捕捉场景的三维结构。基于点云的三维目标检测的难点主要在于点云的不规则性。最先进的三维检测方法要么利用成熟的二维检测,
通过将点云投影到鸟瞰图[14,42,17]中(见图1(a))、正面图[4,38]或规则的三维体素[34,43]中的框架,它们不是最优的,并且在量化过程中遭受信息丢失。
点云三维检测的PointRCNN
在这一部分中,提出了一个两阶段的侦测架构,即PointRCNN,检查来自不规则点云的三维物体。整体结构如图2所示,包括自下而上的3D方案生成阶段和规范化的包围box细化阶段。
Bin-based 3D bounding box generation
在激光雷达坐标系中,三维边界框表示为(x,y,z,h,w,l,θ),其中(x,y,z)是对象中心位置,(h,w,l)是对象大小,θ是鸟瞰图中的对象方向。为了约束生成的3Dbox建议,提出了基于bin的回归损失估计对象的3D包围box。
为了估计物体的中心位置,如图3所示,沿着X和Z轴将每个前景点的周围区域分割成一系列离散的box。
具体地说,为当前前景点的每个X轴和Z轴设置一个搜索范围S,并且每个1D搜索范围被划分为均匀长度δ的box,以表示X-Z平面上不同的对象中心(X,Z)。对于X轴和Z轴,使用基于交叉熵损失的bin分类,而不是使用平滑L1损失的直接回归,可以获得更精确和稳健的中心定位。
最终召回(IoU阈值0.5和0.7)和第一阶段的100个提案被用作评估指标,如图5所示。图中显示了基于全箱的三维包围盒回归损失的有效性。
第一阶段的子网络使用的基于全bin的损失函数比所有其他损失函数获得更高的召回率和更快的收敛速度,这得益于使用先验知识约束目标,特别是定位。基于部分bin的损失具有相似的召回率,但收敛速度慢得多。
完全和部分基于bin的损失都显著高于其他损失函数,特别是在IoU阈值为0.7时。通过改进角度回归指标,基于余弦的改进loss比基于余弦的loss具有更好的召回率。
定性结果
图6显示了在KITTI[7]数据集的测试分割上提出的PointRCNN的一些定性结果。该图像只是为了更好的可视化,PointRCNN只将点云作为输入来生成3D检测结果。
分析了每种类型的特征对细化子网络的影响,去掉其中一个并保持所有其他部分不变。所有实验共用一个固定的一级子网进行公平比较。结果显示在表4。如果不进行正则变换,细化子网络的性能会显著下降,表明将细化子网络转化为正则坐标系可以极大地消除旋转和位置变化,提高第二阶段特征学习的效率。






PointRCNN: 点云的3D目标生成与检测的更多相关文章
- CVPR2020|3D-VID:基于LiDar Video信息的3D目标检测框架
作者:蒋天园 Date:2020-04-18 来源:3D-VID:基于LiDar Video信息的3D目标检测框架|CVPR2020 Brief paper地址:https://arxiv.org/p ...
- 3D点云点云分割、目标检测、分类
3D点云点云分割.目标检测.分类 原标题Deep Learning for 3D Point Clouds: A Survey 作者Yulan Guo, Hanyun Wang, Qingyong H ...
- CVPR2020论文介绍: 3D 目标检测高效算法
CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...
- 3D目标检测(CVPR2020:Lidar)
3D目标检测(CVPR2020:Lidar) LiDAR-Based Online 3D Video Object Detection With Graph-Based Message Passing ...
- CVPR2019:无人驾驶3D目标检测论文点评
CVPR2019:无人驾驶3D目标检测论文点评 重读CVPR2019的文章,现在对以下文章进行点评. Stereo R-CNN based 3D Object Detection for Autono ...
- 3D几何图形生成的DEMO
3D几何图形生成的DEMO 可以生成以下几种图形: [1] 平面(Plane)图形的生成算法 [2] 立方体(Box)图形的生成算法 [3] 球(Sphere)图形的生成算法 [4] 圆锥(Cone) ...
- 点云3D 目标检测
点云 点云是雷达采集到的信息. 关于点云基本介绍参考https://zhuanlan.zhihu.com/p/22581673 ros中的点云消息结构:http://docs.ros.org/jade ...
- 在矩池云使用Disco Diffusion生成AI艺术图
在 Disco Diffusion 官方说明的第一段,其对自身是这样定义: AI Image generating technique called CLIP-Guided Diffusion.DD ...
- 用jieba库统计文本词频及云词图的生成
一.安装jieba库 :\>pip install jieba #或者 pip3 install jieba 二.jieba库解析 jieba库主要提供提供分词功能,可以辅助自定义分词词典. j ...
随机推荐
- C/C++ 手工实现IAT导入表注入劫持
DLL注入有多种方式,今天介绍的这一种注入方式是通过修改导入表,增加一项导入DLL以及导入函数,我们知道当程序在被运行起来之前,其导入表中的导入DLL与导入函数会被递归读取加载到目标空间中,我们向导入 ...
- IDAPython类库---idaapi.py的源码
#ThisfilewasautomaticallygeneratedbySWIG(http://www.swig.org).#Version2.0.12##Donotmakechangestothis ...
- Service Started!!!-end In Service while
将原先的win7换成了xp,用体验换来更好的兼容 问题如下: 在虚拟机器中运行了DebugView后,就一直重复出现Service Started!!!-end In Service while, 虽 ...
- SparkSQL电商用户画像(二)之如何构建画像
四. 如何构建电商用户画像 4.1 构建电商用户画像技术和流程 构建一个用户画像,包括数据源端数据收集.数据预处理.行为建模.构建用户画像 有些标签是可以直接获取到的,有些标签需要通过数据挖掘分析到! ...
- windows性能计数器搜集方法
windows性能计数器搜集方法 PerfMon-Windows性能监视器是个好东西,可以辅助我们分析发生问题时间段服务器资源占用情况,但是部署性能计数器确实一个相当麻烦的事情,往往这种枯燥的事别人还 ...
- pytest用法---学习篇1
一.pytest运行规则: pytest可以收集所有以test_*.py文件,Test开头的类,和以test_开头的函数和方法,都能识别成测试用例. 当然也可以改变这个的识别规则 二.常用参数 -k ...
- Visual Lab Online —— 事后分析
项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:事后分析 事后分析 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件使得编写简 ...
- 普里姆算法(Prim)
概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图(带权图)里搜索最小生成树.即此算法搜索到的边(Edge)子集所构成的树中,不但包括了连通图里的所有顶点(Vertex)且其所有边的权 ...
- [刷题] PTA 03-树3 Tree Traversals Again
用栈实现树遍历 1 #include<stdio.h> 2 #include<string.h> 3 #define MAXSIZE 30 4 5 int Pre[MAXSIZ ...
- [刷题] PTA 02-线性结构1 两个有序链表序列的合并
程序: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef int ElementType; 5 typedef st ...