论文阅读笔记 | 三维目标检测——CenterPoint算法

news2024/11/15 20:43:21

如有错误,恳请指出。


文章目录

  • 0. 前言
  • 1. 背景
  • 2. 准备工作
  • 3. 网络结构
    • 3.1 RPN
    • 3.2 RCNN
  • 4. 实验结果

paper:《Center-based 3D Object Detection and Tracking》(2021CVPR)

0. 前言

CenterPoint应该是与CenterNet是同一个团队的成果,部分作者是一样的。对于2d检测算法CenterNet,详细可以查看之前的笔记:论文阅读笔记 | 目标检测算法——CenterNet算法,CenterPoint的思想就是将CenterNet用到基于点云的3d目标检测上。

1. 背景

与2d检测相比,3d检测面临一些特别的挑战:1)点云的稀疏性导致大部分空间为空;2)输出需要产生带方向的3d框,这不能与坐标系进行很好的对齐;3)3d目标的尺寸范围变化比较大。也很好理解,在一个3d框的自由度比较高,具有方向的属性,在空间上难以和坐标轴对齐,2d的axis-aligned的方法对3d检测也就不太适用。

为此,CenterPoint的核心思想就是将框预测改为中心点预测来避免这个问题的出现。预测目标框的中心点避免了方向属性,减少了搜索空间;其次对于中心点的方法可以简化一些例如目标跟踪的下游任务。所以CenterPoint本质上是一个two-stage、anchor-free的算法(利用中心点预测代替anchor)


2. 准备工作

为了容易理解Centerpoint算法,这里首先再简要介绍一下CenterNet算法,详细见:论文阅读笔记 | 目标检测算法——CenterNet算法

在CenterNet中,利用2d卷积生成的特征图,后面分别接一个heatmap、sizemap、offsetmap。对于数据集中有k个类别,heatmap的维度构成即为hxwxk,也就是说对每个类别够构建一个热力图,每个热力图的局部最大值对应就是相关类别的对象中心,2channels的sizemap用来预测对象的宽高尺寸。而由于下采样得到的特征图会存在一些偏差,所以会再接一个offsetmap来预测这部分的偏差。CenterNet就是利用这三个map来准确的预测物体的位置。

这里paper还额外提到,基于bev视图的3d检测算法(类似yolo3d,pixor、hdnet)是依赖于2d的bev iou进行目标分配,这对于为不同类别或不同数据集选择正/负阈值产生了不必要的负担。原文:“Moreover, during the training, previous anchor-based 3D detectors rely on 2D Box IoU for target assignment [42, 54], which creates unnecessary burdens for choosing positive/negative thresholds for different classes or different dataset.”

对于这一点我的理解是,对于anchor-based的检测算法,需要计算每个anchor与target的iou,从而需要设置阈值来区分需要训练的正负样本,这个计算iou的过程中存在一些计算负担。在CenterNet中,推测采取的heatmap中的峰值来作为置信度,来分配正负样本。


3. 网络结构

CenterPoint本质上是一个two-stage、anchor-free(center-based)的算法,其算法思路继承自CenterNet,结构图如下所示。
在这里插入图片描述

3.1 RPN

CenterPoint的思路是在bev视图上做3d检测,不过回归的是一个真正的3d框(包含离地面高度预测以及框高度信息预测)。利用SECOND、PointPillars的backbone,进行稀疏3d卷积提取特征图,在bev视图上进行投影,最后的维度大小为WxHxC。

得到了backbone输出的特征,首先在其后接一个heatmap head用于预测目标中心点。假设数据集中存在k类对象,那么这里就会输出一个大小为k的channels,每一个channel表示其中的一类。有监督信息通过3d场景在2d的bev视图中投影获得。考虑到点云信息的稀疏性,这里会扩大每个对象中心的高斯峰值来增加heatmap的正样本监督,“increase the positive supervision for the target heatmap Y by enlarging the Gaussian peak rendered at each ground truth object center”

CenterPoint在对方向预测上也使用了类似Complex的隐信息编码,也就是用(sin(α), cos(α))两个值来预测方向信息。对于位置信息xyz,以及尺寸信息hwl,还有方向全部都采用L1 loss来进行回归处理(使用对数回归可以更好的处理各种形状)。这个回归过程是通过另外一个分支regression head来实现的,在推理时直接取heatmap中峰值索引,在regression head获取到3d框的属性信息。

CenterPoint的一阶段简单来说,就是利用heatmap预测出相应的类别以及对象的中心点,然后在regression map中的对应位置获取其他的3d框属性,构建成最后的3d候选框。

3.2 RCNN

得到了3d候选框就需要利用候选框中的特征进行特征聚合,这里选择的是3d候选框每个面的特征。具体来说,在bev视图上,顶部中心点与底部中心点在backbone输出的特征图中索引的位置特征是一样的,而前后左右4个方向的面特征其实也就是bev图上每条边的中心点特征,如结构图所示。一般来说,带有方向的候选框一般都和坐标轴不是对齐的,所以在对齐的backbone输出特征中不能正常索引,为此这里采用的双线性插值来获取这些点的特征。所以如结构图所示,对于每一个候选框可以从backboen输出的特征图中获得5个点的channels特征。

随后对这些point-features进行concat,再送入MLP处理。这里只预测置信度以及回归信息,不再预测类别信息(一阶段的heatmap中以及分类预测好)。在训练时,这里的置信度回归的是3d iou值;在推理时,最后输出的置信度是一阶段的类别分数预测以及这里的置信度预测的相乘再开方,Qt = sqrt(Yt ∗ It)。

在二阶段中,同样采用的是l1 loss对一阶段的候选框进行修正。CenterPoint简化了之前Two-stage的特征提取与RoIAlign操作。


4. 实验结果

可以发现,CenterPoint使用的backbone是与SECOND、PointPillars方法是一样的,不同的是前者是center-based的方法,后者是anchor-based的方法,可以从消融实验中看到使用center-based所带来的提升,证明了center-based方法的优越性。
在这里插入图片描述

ps:其中anchor-based方法的损失构造可以参考SECOND、PointPillars;而这里的Grid Point-based方法就是常见的anchor-free方法,代表性的有PointRCNN中的bin-based损失构造(联合分类+残差回归),以及PIXOR的直接回归(对方向信息利用sin+cos隐形回归)

CneterPoint这里在Waymo和nuScenes这两个比较大型的数据集上对网络进行了测试(kitti相比之下比较小,然后难度也没有那么大,逐渐退出历史舞台),CenterPoint的效果是杠杠的,甚至比很多现在的新方法性能还要好,在paper with code中排前列。
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django在线项目管理

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

庄懂的TA笔记(十一)< >

庄懂的TA笔记(十一)< > 目录: 一、shader面板玩法 > 增广 : 多种 面板设计玩法: 二、shader参数类型 > 增广 :认识 多种参数类型 : 三、增广 :认识 IVO …

体验一下传说中可以干掉程序员的OpenAI ChatGPT

ChatGPT初体验 ​ OpenAI公司最近开发了一个新的聊天AI模型,ChatGPT。网上铺天盖地传言AI可以替代程序员。于是今天也来体验了一下。下面是一个使用的案例: ​ 首先看来他也不是万能的。 问: 今年世界杯冠军预测 ChatGPT: 对于世界杯的冠军…

【20221208】【排序专题】

一、冒泡排序(稳定排序) 思想:冒泡排序的思想就是比较当前数和后一个数的大小,将较大的数往后移动,这样可以确保一轮下来能将最大的数放在数组的最末端。然后重复此操作即可完成排序。 上面第一轮比较完,我…

VSCode无法远程连接VMWare(Ubuntu)其中一个可能原因(inet消失)

有时候把虚拟机挂起后,等自己下次再想用,打开vscode用之前的ssh配置,却始终无法连接,进程sshd也是开启的,就很纳闷。 然后么,咱就想查查是不是网络的问题,毕竟ssh是通过ipv4连的虚拟机&#xff…

【explain执行计划】MySQL性能调优

explain是MySQL性能调优过程中必须掌握的工具,explain结果中常见的type结果及代表的含义,并且通过同一个SQL语句的性能差异,说明建立正确的索引多么重要。 explain结果中的type字段代表什么意思? MySQL的官网解释非常简洁&#x…

前端埋点分析

第三方代码埋点 已经有很多成型的服务商了如友盟,百度统计等🌯,都提供了比较成型的方案🎨,并可以在后台管理系统中查看比较详细的数据分析 自己动手 优点: 控制精准,可以非常精确地选择什么时…

Bulma的简单使用

文章目录1. 引入Bulma2. 字体和颜色3. 间距和容器1. 引入Bulma 通过 CDN 引入&#xff1a; <style>import "https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.4/css/bulma.min.css";</style>官网还有其他多种引入方式。 2. 字体和颜色 在 Bulma 中&…

基于jQuery或Zepto的图片延迟加载插件

当我们网站的页面图片过多时&#xff0c;加载速度就会很慢。尤其是用手机2G/3G访问页面&#xff0c;不仅页面慢&#xff0c;而且还会用掉很多流量。我们主题之前也都采用了图片的懒加载形式&#xff0c;但都不完美&#xff0c;部分主题还采用了占位图片来控制懒加载&#xff0c…

CP2102N高度集成USB全速带电池充电检测控制芯片

目录CP2102N简介主要特点芯片特性CP2102N开发板开发板功能应用领域CP2102N简介 CP2102N是USBXpress系列中新的一款高度集成的USB转RS232的桥接芯片。不但较上一代CP210X系列更有成本效益&#xff0c;而且在功能上也有更多创新。其中&#xff0c;符合USB-BCS 1.2规范的充电器识…

【人脸识别】基于直方梯度图 HDGG 的人脸识别算法研究附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步进步&#xff0c;matlab项目目标合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信息&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算…

入门系列 - Git的管理修改与撤销修改

本篇文章&#xff0c;是基于我自用Linux系统中的自定义文件夹“test_rep”&#xff0c;当做示例演示 具体Git仓库的目录在&#xff1a;/usr/local/git/test_rep Git的管理修改与撤销修改 在讲这个之前&#xff0c;还是有必要再阐述一下“工作区和暂存区”。Git 和其它版本控制…

计算机毕业论文java毕业设计选题源代码S2SH校园BBS论坛系统

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之S2SH校园论坛_哔哩哔哩_bilibili计算机毕业设计java毕设之S2SH校园论坛共计2条视频&#xff0c;包括&#xff1a;计算机…

机器学习与数据挖掘——分类与预测模型

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;瞳孔空间 一&#xff1a;分类与预测 分类(Classification)&#xff1a;分类是找出描述并区分数据类或概念的分类函数或分类模型(也常常称作分类器)&#xff0c;该模型能把数据库中的数据项映射到给…

设计行业文档管理怎么做?天翎群晖全新解决方案来了!

编者按&#xff1a;解决设计行业文档管理难题&#xff0c;天翎群晖全新解决方案来帮忙&#xff01;本文分析了设计行也中的文档管理难点&#xff0c;并从五个方面介绍了天翎群晖是如何解决这些难题的。 关键词&#xff1a;免安装&#xff0c;免维护&#xff0c;私有化部署&…

ant design select 搜索同时支持输入和下拉选中

这个需求看着简单&#xff0c;但是实现起来走了不少弯路。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/74008ea8204c47e5b33ada2e82c56e26.png 1. 需求 当输入关键词时&#xff0c;远程搜索内容&#xff0c;有返回则下拉展示&#xff0c;无返回也要展示当前输入的关键…

学了C语言基本的语法,感觉转化代码的能力还是不强,编程能力到底该怎样提升?

刚开始学习编程的时候&#xff0c; 想写段不报错的代码吧&#xff0c;需要耗时十几分钟到一个小时。刷一道 Leetcode 上面的算法题呀&#xff0c;需要一个到几个小时。实现一个稍微复杂点的功能需求&#xff0c;跑通时间无比长。。。 当时&#xff0c;想一夜之前变成写代码的高…

ThreadLocal分析

每个线程都会有属于自己的本地内存&#xff0c;在堆中的变量在被线程使用的时候会被复制一个副本线程的本地内存中&#xff0c;当线程修改了共享变量之后就会通过JMM管理控制写会到主内存中。 很明显&#xff0c;在多线程的场景下&#xff0c;当有多个线程对共享变量进行修改的…

瑞格尔侯爵葡萄酒之城大师班

11月28日&#xff0c;美夏国际酒业携手西班牙瑞格尔侯爵酒庄&#xff08;Marqus de Riscal&#xff09;在上海的“苏河江宴”举办了一系列瑞格尔侯爵明星产品的大师班品鉴会。 开场前&#xff0c;一杯清爽的瑞格尔侯爵酒园白葡萄酒&#xff08;Marqus de Riscal Rueda Verdejo …

大一学生HTML个人网页作业作品——火影忍者动漫7页面带特效带轮播(HTML+CSS+JavaScript)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…