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. 常用的STL

    map      容器和数组一样,不过比较活用,相当于直接离散化数组 map<int ,int>mp 一维int map<string ,string>mp 一维 str ma ...

  2. PAT 乙级 -- 1006 -- 换个格式输出整数

    题目简述 让我们用字母B来表示"百".字母S表示"十",用"12-n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整 ...

  3. Python中的输入(input)和输出打印

    目录 最简单的打印 打印数字 打印字符 字符串的格式化输出 python中让输出不换行 以下的都是在Python3.X环境下的 使用 input 函数接收用户的输入,返回的是 str 字符串 最简单的 ...

  4. POJ3498最大流,枚举终点,企鹅,基础最大流

    题意:       有一n个冰块,每个冰块上都有一些企鹅,所有的企鹅要跳到一个冰块上去,但是由于起跳是的后坐力原因导致每个冰块最多条mi次,最后问你所有的企鹅都跳到一个冰块上去的那块冰块可以是哪一块, ...

  5. [LeetCode每日一题]1143. 最长公共子序列

    [LeetCode每日一题]1143. 最长公共子序列 问题 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . 一个字符串 ...

  6. Mybatis-Plus02 CRUD

    先将快速开始01看完,再看这个文档 配置日志 我们所有的sql现在都是不可见的,我们希望知道它是怎么执行的,所以我们就必须看日志,开发的时候打开,上线的时候关闭 在application.proper ...

  7. 将本地代码上传到云效git存放

    前提已开通云效账号,然后进行云效首页的研发---代码 创建git组 创建git库 生成https://code.aliyun.com/test-demo1/v1的git库 准备将本地的test-dem ...

  8. Java中实现SAX解析xml文件到MySQL数据库

    大致步骤: 1.Java bean 2.DBHelper.java 3.重写DefaultHandler中的方法:MyHander.java 4.循环写数据库:SAXParserDemo.java ① ...

  9. Java学习之jackson篇

    Java学习之jackson篇 0x00 前言 本篇内容比较简单,简单记录. 0x01 Json 概述 概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种 ...

  10. 计算机网络参考模型,IP地址及MAC地址查看方法,数据包封装过程

    分层思想 首先,计算机网络参考模型,是基于分层思想而出现的.分层思想,就是将复杂流程分解为几个功能单一的子过程. 优点: 可以让整个流程更加清晰, 让复杂问题简单化, 更容易发现问题,并真对性的解决问 ...