《Center-based 3D Object Detection and Tracking》CVPR2021

代码:https://github.com/tianweiy/CenterPoint
论文:https://arxiv.org/pdf/2006.11275.pdf

CenterPoint听名字有种似曾相识的感觉,没错! 这篇文章的灵感正是来自于图像中的目标检测算法CenterNet: Objects as Points[1].(二者的作者都来自于UT Austin)

本文提出将3D目标表示为点(points),性能优于3DSSD、PointPainting等,端到端3D检测和跟踪速度达30 FPS!

回顾CenterNet

CenterPoint


图1:作者提出了一个基于中心的框架来表示,检测和跟踪对象。以前的基于锚的方法相对于自我车辆坐标使用“轴对齐”的锚。当车辆在直路上行驶时,基于锚点和基于中心的方法都能够准确地检测物体(顶部)。但是,在安全关键的左转(底部)期间,基于锚点的方法很难将轴对齐的边界框拟合到旋转的对象。我们基于中心的模型通过旋转不变点准确地检测物体。彩色效果最佳。

图2:我们的CenterPoint框架概述。我们依赖于一个标准的3D Backbone,该主干从Lidar点云中提取地图视图特征表示。然后,2D CNN架构检测头找到对象中心,并使用中心特征回归到完整的3D边界框。该框预测用于提取估计的3D边界框的每个面的3D中心处的点特征,这些点特征将传递到MLP中以预测IoU引导的置信度得分和框回归细化。彩色效果最佳

本文的主要贡献是提出了一个两阶段的Center-based的目标检测追踪模型,在第一阶段(如图2中的a,b,c),使用CenterPoint检测三维目标的检测框中心点,并回归其检测框大小,方向和速度。在第二阶段(如图2中的d)设计了一个refinement模块,对于第一阶段中的检测框,使用检测框中心的点特征回归检测框的score并进行refinement。

前处理及主干网络
CenterPoint延续了CenterNet的思路,并没有设计新的主干网络,而是采用之前的工作。其framework如下图所示,图中编码器阶段的虚线框代表可选项,蓝色框代表深度网络,红色框代表固定操作。

实际上,CenterPoint的主干网络(3D encoder)采用的是PointPillars和VoxelNet的encoder。二者的区别可以通过作者的实验结果看出

由于PointPillars没有耗时的3DCNN,因而速度更快;VoxelNet因为有更多的参数,所以mAP会更高。

检测头
网络有四个输出:①表征目标中心位置的热力图;②目标尺寸;③目标朝向;④目标速度 (速度用于做目标跟踪,该思路来源于另一篇文章CenterTrack[2]) 。不难看出,这是一种典型的center-based anchor-free检测头。在文中,作者论述了采用这种center-based representation 对检测任务的两点好处:首先,点没有内在的方向。这大大减少了检测器的搜索空间,同时有利于网络学习对象的(rotational invariance)和等变性(rotational equivariance)。其次,在三维检测中,目标定位比对目标的其他三维属性进行更重要。这个反映在常用的评估指标中,这些指标主要依赖于检测到的目标和gt box中心之间的距离,而不是估计的3dbox的属性。笔者认为作者未提到的一个明显的好处则是,此类center-based representation方法不需要做NMS,能减少运算。

主要的Contribution:

  1. 使用点表示目标,简化三维目标检测任务:
    与图像目标检测不同,在点云中的三维目标不遵循任何特定的方向,box-based的检测器很难枚举所有的方向或为旋转的对象拟合一个轴对齐的检测框。但Center-based的方法没有这个顾虑。点没有内转角。这极大地减少了搜索空间,同时保持目标的旋转不变性。(AblationStudy的结果可以看到Center-based方法对模型效果提升非常明显)
  2. Center-based的方法可以简化追踪任务
    作者表明由于该方法不需要额外的运动模型(如Kalman滤波),所以追踪计算时间可以忽略不计,在检测的基础上仅需要运行1毫秒。
  3. 使用一个基于点特征的refinement模块作为网络的第二阶段。保障模型预测性能,同时也比现在大多数的refinement方法更快。我的理解是由于“检测–追踪”的多目标追踪流程对检测阶段的错误预测非常敏感,本文通过第二阶段预测bbox的score来降低CenterPoint第一阶段中产生的错误预测,提升目标检测的质量,同时进一步提升了追踪的结果。


图3:在Waymo验证中CenterPoint的定性结果示例。我们将原始点云显示为蓝色,将检测到的对象显示为绿色边界框,并使用红色将边界点内部的激光雷达点显示为红色。最好在屏幕上观看。

实验结果

在nuScenes的3D检测和跟踪任务中,单阶段的CenterPoint效果很好,单个模型的NDS为65.5,AMOTA为63.8。模型性能很好,但是论文中说该模型的速度是在Waymo上11FPS,在nuScenes上为16FPS;同时模型的速度实验是在TiTan RTX上做的,也就是在所有边缘计算设备上均达不到实时计算。

作者在nuScenes数据集上进行了实验,如下。
不难看出, CenterPoint在各个类别上都有较好的检测结果,mAP甚至直接超出了PointPillar一倍。

更难能可贵的是,通过下图中作者的ablation study我们可以看出,CenterPoint在性能明显提升的情况下,实时性并没有下降。这也不难理解,毕竟backbone没有大的改变。

补充知识

就笔者目前看见的anchor-free检测头可以分为三种:

center-based representation: 如Centerpointpoint-based representation: 如PointRCNN[3], 3DSSD[4]pillar-base representation: 如POD [5]

CenterNet vs CenterPoint.虽然整体思路和CenterNet类似,但是CenterPoint也有三维检测器的独有的特点:

1、在三维检测中,主干网络需要学习目标的旋转不变性和等变性。为了让网络更好的捕获这个特征,作者在中心点预测分支和回归分支各添加了一个可变卷积。中心点预测分支学习旋转不变性,回归分支学习等变性。

2、考虑到网络输出的旋转不变性,作者选择了圆形池化区域,而不是CenterNet中的方形区域。具体说,就是在鸟瞰中,只有当某中心半径r内没有具有更高置信度的中心时,该对象才被视为正,作者将该方法称为Circular NMS。Circular NMS与基于3D IoU的NMS具有一样的抑制效果,但速度更快。

3、基于上述的设计,检测器依然没有达到完美的旋转不变性和等变性。作者因此构建了一个由输入点云的四个旋转、对称副本组成的简单集合,并将这一集合共同输入CenterPoint,每一个都产生一个热力图和回归结果,然后简单地将这些结果求均值。

CenterPoint 学习笔记相关推荐

  1. 3D目标检测学习笔记

    博主初学3D目标检测,此前没有相关学习背景,小白一枚-现阶段的学习重点是点云相关的3D检测. 本文是阅读文章:3D Object Detection for Autonomous Driving: A ...

  2. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  3. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  5. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  6. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  7. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  8. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  9. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

最新文章

  1. 什么时候是找工作的最佳时期? | 原力计划
  2. 15g1和g2和g3区别大吗_河南成人高考和普通高考的区别有哪些?成人高考难度会越来越大吗?...
  3. cocos2d-x 关于tilemap滚动时黑线闪动的问题
  4. IIS/ Apache+PHP+MySQL+ Zend Optimizer完全安装手册
  5. 牛人,多看看他们写的东西
  6. Vue.js基础体验(一)
  7. LeetCode 404. 左叶子之和思考分析
  8. java 文档比较功能_Java 12 新特性介绍,快来补一补
  9. 最新发布|深度学习必学“圣经”花书出视频课了!附带论文代码精读讲解!
  10. .Net魔法堂:发个带附件的邮件
  11. vue组件基础知识及组件间通讯
  12. 2018二月安恒月赛WRITE UP
  13. 2018杭州云栖大会主要演讲:新杭州故事,平头哥与新制造
  14. 阿里大文娱宣布成立游戏事业群;茅台瘦身停产155个品牌;苹果iPhone 8硬件成本曝光丨价值早报
  15. okvis 基于关键帧视觉惯性传感器非线性优化SLAM 论文翻译+博客总结
  16. win32 窗口 绘制矩形
  17. java给txt文件写入内容_java代码 如何向TXT文件写入内容?
  18. 微信小程序之身份证照片正反上传
  19. Unity VFX学习系列 —— 效果制作(烟花)
  20. linux把光盘复制成ISO文件方法

热门文章

  1. 勒索病毒2019年常见的后缀有ITLOCK/AOL/VC/phobos/ETH/x3m/qwex/H
  2. 深入理解Linux启动过程 0号进程,1号进程
  3. Unity3d 游戏特效制作实战教程 第二部
  4. Zoom and pan, introduction to FabricJS part 5(缩放和平移,介绍Fabric.js第五部分)
  5. 使用 PHP 和 MySQL 的安全登录系统
  6. Python 手把手实现M3U8视频抓取
  7. Sun Java 国际认证考试流程表
  8. 什么是HTTPS协议?HTTPS协议优势有哪些?
  9. SQLServer系统函数之聚合函数
  10. 【PM】软件项目管理流程和方法