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目标生成与检测的更多相关文章

  1. CVPR2020|3D-VID:基于LiDar Video信息的3D目标检测框架

    作者:蒋天园 Date:2020-04-18 来源:3D-VID:基于LiDar Video信息的3D目标检测框架|CVPR2020 Brief paper地址:https://arxiv.org/p ...

  2. 3D点云点云分割、目标检测、分类

    3D点云点云分割.目标检测.分类 原标题Deep Learning for 3D Point Clouds: A Survey 作者Yulan Guo, Hanyun Wang, Qingyong H ...

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

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

  4. 3D目标检测(CVPR2020:Lidar)

    3D目标检测(CVPR2020:Lidar) LiDAR-Based Online 3D Video Object Detection With Graph-Based Message Passing ...

  5. CVPR2019:无人驾驶3D目标检测论文点评

    CVPR2019:无人驾驶3D目标检测论文点评 重读CVPR2019的文章,现在对以下文章进行点评. Stereo R-CNN based 3D Object Detection for Autono ...

  6. 3D几何图形生成的DEMO

    3D几何图形生成的DEMO 可以生成以下几种图形: [1] 平面(Plane)图形的生成算法 [2] 立方体(Box)图形的生成算法 [3] 球(Sphere)图形的生成算法 [4] 圆锥(Cone) ...

  7. 点云3D 目标检测

    点云 点云是雷达采集到的信息. 关于点云基本介绍参考https://zhuanlan.zhihu.com/p/22581673 ros中的点云消息结构:http://docs.ros.org/jade ...

  8. 在矩池云使用Disco Diffusion生成AI艺术图

    在 Disco Diffusion 官方说明的第一段,其对自身是这样定义: AI Image generating technique called CLIP-Guided Diffusion.DD ...

  9. 用jieba库统计文本词频及云词图的生成

    一.安装jieba库 :\>pip install jieba #或者 pip3 install jieba 二.jieba库解析 jieba库主要提供提供分词功能,可以辅助自定义分词词典. j ...

随机推荐

  1. RF-日期时间拼接(20191024_195355)

    *** Test Cases *** testGetTime @{time}= Get Time year month day hour min sec ${sDate}= Catenate SEPA ...

  2. 逆向工程第004篇:跨越CM4验证机制的鸿沟(中)

    一.前言 在上一篇文章的最后,我已经找出了关键的CALL语句,那么这篇文章我就带领大家来一步一步地分析这个CALL.我会将我的思路完整地展现给大家,因此分析过程可能略显冗长,我会分为两篇文章进行讨论. ...

  3. Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)

    目录 正则表达式 基本正则表达式 扩展正则表达式 grep tr diff du wc find 正则表达式 正则表达式,又称正规表示法.常规表示法( Regular Expression,在代码中常 ...

  4. Windows核心编程 第六章 线程基础知识 (上)

    第6章 线程的基础知识 理解线程是非常关键的,因为每个进程至少需要一个线程.本章将更加详细地介绍线程的知识.尤其是要讲述进程与线程之间存在多大的差别,它们各自具有什么作用.还要介绍系统如何使用线程内核 ...

  5. 【pytest系列】- mark标记功能详细介绍

    如果想从头学起pytest,可以去看看这个系列的文章! https://www.cnblogs.com/miki-peng/category/1960108.html mark标记 ​ 在实际工作中, ...

  6. PHP 上传文件至阿里云OSS对象存储

    简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...

  7. Jetbrains系列产品License key is in legacy format

    原文链接: https://zhile.io/2018/08/25/jetbrains-license-server-crack.html

  8. JDBC往数据库里插入数据

    首先还是一个工具类 插入数据

  9. php实现微信推送消息

    一.<?phpnamespace Org\Weixin;class OrderPush{ protected $appid; protected $secrect; protected $acc ...

  10. mysql-.frm,.myd,myi备份如何导入mysql

    .frm..myd..myi文件,也就是说是MySQL的原始数据文件,这三个文件分别是: .frm 表结构文件 .myd 表数据文件 .myi 表索引文件 方法,如下: 新建一个数据库 在my.ini ...