CVPR 2023 | VoxelNeXt实现全稀疏3D检测跟踪,还能结合Seg Anything
在本文中,研究者提出了一个完全稀疏且以体素为基础的3D物体检测和跟踪框架VoxelNeXt。它采用简单的技术,运行快速,没有太多额外的成本,并且可以在没有NMS后处理的情况下以优雅的方式工作。VoxelNeXt在大规模数据集nuScenes、Waymo和Argoverse2上表现出很好的速度和精度;在Argoverse2 3D检测和nuScenes 3D LiDAR跟踪上取得了SOTA的结果。
想要关注该项工作的更多内容?欢迎查看来自本文作者陈玉康带来的Talk分享!
正在上传…重新上传取消https://mp.weixin.qq.com/s?__biz=MzAxMzc2NDAxOQ==&mid=2650447242&idx=1&sn=91d75e69b9486ccbe0818123a3c079e4&scene=21#wechat_redirect
论文链接:https://arxiv.org/abs/2303.11301
代码链接:https://github.com/dvlab-research/VoxelNeXt
一、摘要
目前,自动驾驶场景的3D检测方法大多采用稠密特征的检测头,而3D点云数据本身是稀疏的,这无疑是一种低效和浪费计算量的做法。我们提出了一种全稀疏的3D 检测框架 VoxelNeXt. 该方法可以直接从稀疏的体素特征来预测3D物体,无需借助成anchor, center, voting等中间状态的媒介。
此外,该方法在取得检测速度优势的同时,还能很好地帮助多目标跟踪。VoxelNeXt在大规模公开数据集nuScenes、Waymo、Argoverse2上都取得了很好的效果,并在Argoverse2 LiDAR 检测和nuScenes LiDAR多目标跟踪上取得SOTA。此外,VoxelNeXt由于其全稀疏的特性,能够很好地结合 Segment Anything [1],在点击图像的同时不仅能获得2D mask,还能获得 3D box,可以在很大程度上方便3D物体的标注https://github.com/dvlab-research/3D-Box-Segment-Anything。
二、背景介绍
3D感知是自主驾驶系统中的一个基本组成部分。3D检测网络以稀疏点云或体素作为输入。大多数3D目标检测器[2, 3, 4]通常使用稀疏卷积网络(Sparse CNNs)[5]进行特征提取,因其效率高。受2D目标检测框架启发,现有的方法通常用锚点[2, 3]或中心点[4]来预测,即CenterPoint [4]中的密集点锚点。它们都是手工制作的,作为3D对象的中间代理。
然而,锚点和中心点设计初衷是针对常规和网格结构的图像数据,并不考虑三维数据的稀疏性和不规则性。为了使用这些代理表示法,主流的检测器将3D稀疏特征转换为二维密集特征,以构建有序锚点或中心的密集检测头。虽然有用,但这种dense head的方式显然是不够高效的。
图 1 CenterPoint 点云输入和BEV heatmap
在图1中,我们展示了CenterPoint[4]中的热力图。很明显,大部分空间几乎没有预测得分。由于固有的稀疏性和许多背景点,只有少数点有响应,在nuScenes验证集上Car类平均少于1%的点。然而,现有的检测头会在特征图中所有位置进行计算,它们不仅浪费了很多计算资源,还用冗余的预测使检测管道变得更加复杂。需要使用非极大值抑制(NMS)之类的后处理方法来消除重复的检测结果。这些限制促使我们寻求替代的稀疏检测解决方案。
图 2 VoxelNeX和主流检测框架结构对比
三 、方法介绍
在本文中,我们提出了VoxelNeXt。它是一种简单,高效且无需后处理的3D物体检测器。我们设计的核心是直接从体素特征中预测3D物体,使用一种强大的完全稀疏卷积网络。如图2所示,我们方法的关键优势在于,可以摆脱锚点代理,稀疏转密集,区域建议网络和其他复杂的组件。
图 3 VoxelNeXt 框架具体细节
VoxelNeXt 包含了4个实现细节:1) 多下采样两次,2) 将3D稀疏体素压缩成2D 稀疏体素,3)sparse max pooling (可以和NMS替代),4)用3x3 sparse conv或FC来预测物体。
图 4 多下采样两次对于预测结果和感受野的影响
其中,“多下采样两次”是对于效果来说最重要的操作。想实现“从稀疏的体素直接预测物体”的前提是体素特征需要有足够大的感受野。而“多下采样两次”刚好弥补了感受野的不足,如图4所示。且非常好实现,也不会增加太多额外的计算量。
四 、实验分析
我们统计了用于预测物体的体素 (query voxel) 和相应预测框之间的关系表格,如表1所示。可以看出,大多数的物体都是基于靠近物体边界的体素预测出来的,而非靠近中心的体素。对于一些比较小的物体,如Pedestrian,甚至可以用物体以外的体素进行预测,如图5所示。
表 1 预测物体的体素和预测框之间的位置关系
图 5 预测物体的体素(query voxel)和预测框
我们还对比了和基于中心点预测的传统方法CenterPoint的结果,发现VoxelNeXt相比于CenterPoint的优势主要来自于在物体方向(Orientation)上的精准预测。相比于中心点,靠近物体边界的体素可能对物体方向有着更好的把控。
此外,我们还在Argoverse2数据集上进行了实验。相比于Waymo, nuScenes等75m半径的检测范围,Argoverse2最大的检测范围是200m半径。如图6所示,CenterPoint这种稠密的检测头会随着检测范围的增加而急剧增加。而FSD [5] 和 VoxelNeXt 这类全稀疏的检测器速度恒定,其中VoxelNeXt由于其简洁性,速度快。
图 6 在Argoverse2数据集上,不同检测范围消耗的计算时间
五 、结合 Segment Anything
图 7 结合Segment Anything和VoxelNeXt进行 promtable 3D检测
我们在 Segment Anything 的基础上加入了VoxelNeXt 3D物体检测。可以直接点击图像,不仅能获得2D mask,还能获得3D框。这样的结合把3D检测变成了promtable的,可以在很大程度上方便3D物体的标注。
六 、后记
我们提出了一个完全稀疏且以体素为基础的3D物体检测和跟踪框架VoxelNeXt。它采用简单的技术,运行快速,没有太多额外的成本,并且可以在没有NMS后处理的情况下以优雅的方式工作。我们首次展示了直接基于体素的预测是可行和有效的。因此,锚点或中心以及密集头变得不必要。VoxelNeXt在大规模数据集nuScenes [7]、Waymo [8] 和Argoverse2 [9] 上表现出很好的速度和精度。VoxelNeXt在Argoverse2 3D检测和nuScenes 3D LiDAR跟踪上取得了SOTA的结果。
参考文献
[1] Alexander Kirillov, Eric Mintun, Nikhila Ravi, Hanzi Mao, Chloe Rolland, Laura Gustafson, Tete Xiao, Spencer Whitehead, Alexander C. Berg, Wan-Yen Lo, Piotr Doll{'a}r, Ross Girshick
[2] Shaoshuai Shi, Chaoxu Guo, Li Jiang, Zhe Wang, Jianping Shi, Xiaogang Wang, and Hongsheng Li. PV-RCNN: pointvoxel feature set abstraction for 3d object detection. In CVPR, pages 10526–10535, 2020.
[3] Jiajun Deng, Shaoshuai Shi, Peiwei Li, Wengang Zhou, Yanyong Zhang, and Houqiang Li. Voxel R-CNN: towards high performance voxel-based 3d object detection. In AAAI, pages 1201–1209, 2021.
[4] Tianwei Yin, Xingyi Zhou, and Philipp Krahenbuhl. Centerbased 3d object detection and tracking. In CVPR, pages 11784–11793, 2021.
[5] Benjamin Graham, Martin Engelcke, and Laurens van der Maaten. 3d semantic segmentation with submanifold sparse convolutional networks. In CVPR, pages 9224–9232, 2018.
[6] Lue Fan, Feng Wang, Naiyan Wang, Zhaoxiang Zhang, Fully Sparse 3D Object Detection, NeurIPS 2022
[7] Holger Caesar and at.al. nuscenes: A multimodal dataset for autonomous driving. In CVPR, pages 11618–11628, 2020.
[8] Pei Sun and et. al. Scalability in perception for autonomous driving: Waymo open dataset. In CVPR, pages 2443–2451, 2020.
[9] Benjamin Wilson and et. al. Argoverse 2: Next generation datasets for self-driving perception and forecasting. In NeurIPS, 2021.
作者:陈玉康
Illustration by IconScout Store from IconScout
-The End-
相关文章:

CVPR 2023 | VoxelNeXt实现全稀疏3D检测跟踪,还能结合Seg Anything
在本文中,研究者提出了一个完全稀疏且以体素为基础的3D物体检测和跟踪框架VoxelNeXt。它采用简单的技术,运行快速,没有太多额外的成本,并且可以在没有NMS后处理的情况下以优雅的方式工作。VoxelNeXt在大规模数据集nuScenes、Waymo…...

本地使用3台centos7虚拟机搭建K8S集群教程
第一步 准备3台centos7虚拟机 3台虚拟机与主机的网络模式都是桥接的模式,也就是他们都是一台独立的“主机” (1)kebe-master的配置 虚拟机配置: 网络配置: (2)kebe-node1的配置 虚拟机配…...

NVIDIA CUDA驱动安装
1 引言 因为笔记本电脑上运行Milvus图像检索代码,需要安装CUDA驱动。电脑显卡型号是NVIDIA GeForce GTX 1050 Ti Mobile, 操作系统是Ubuntu 20.04,内核版本为Linux 5.15.0-72-generic。 2 CUDA驱动测试 参考网上的资料:https://blog.csdn.…...
python 从excel中获取需要执行的用例
classmethod def get_excel_data(cls, excel_name, sheet_name, case_numNone):"""读取excel文件的方法:param excel_name: 文件名称:param sheet_name: sheet页的名称:param case_name: 执行的case名称:return:"""def get_row_data(table, row)…...

Web3中文|乱花渐欲meme人眼,BRC-20总市值逼近10亿美元
现在的Web3加密市场,用“乱花渐欲meme人眼”来形容再合适不过了。 何为meme? “meme”这个词大概很多人都不知道如何正确发音,并且一看到它就会和狗狗币Dogecoin等联系在一起。那它究竟从何而来呢? Meme:[mi:m]&#x…...

盖雅案例入选「首届人力资源服务国际贸易交流合作大会20项创新经验」
近日,首届人力资源服务国际贸易交流合作大会顺利召开。为激励企业在人力资源服务贸易领域不断创新,加快培育对外贸易新业态、新模式,形成人力资源服务领域国际竞争新优势,大会评选出了「首届人力资源服务国际贸易交流合作大会20项…...

[论文笔记]SimMIM:a Simple Framework for Masked Image Modeling
文章地址:https://arxiv.org/abs/2111.09886 代码地址:https://github.com/microsoft/SimMIM 文章目录 摘要文章思路创新点文章框架Masking strategyPrediction headPrediction targetEvaluation protocols 性能实验实验设置Mask 策略预测头目标分辨率预…...
mysql从零开始(4)----索引/视图/范式
接上文 mysql从零开始(3) 索引 索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。一张表的一个字段可以添加一个索引,也可以多个字段联合起来添加索引。索引相当于一本书的目录,是为了缩小扫描范围…...

Flutter框架:从入门到实战,构建跨平台移动应用的全流程解析
第一章:Flutter框架介绍 Flutter框架是由Google推出的一款跨平台移动应用开发框架。相比其他跨平台框架,Flutter具有更高的性能和更好的用户体验。本章将介绍Flutter框架的概念、特点以及与其他跨平台框架的比较,以及Flutter开发环境的搭建和…...
Spring AOP+注解方式实现系统日志记录
一、前言 在上篇文章中,我们使用了AOP思想实现日志记录的功能,代码中采用了指定连接点方式(Pointcut(“execution(* com.nowcoder.community.controller..(…))”)),指定后不需要在进行任何操作就可以记录日志了&…...

OpenGL 4.0的Tessellation Shader(细分曲面着色器)
细分曲面着色器(Tessellation Shader)处于顶点着色器阶段的下一个阶段,我们可以看以下链接的OpenGL渲染流水线的图:Rendering Pipeline Overview。它是由ATI在2001年率先设计出来的。 目录 细分曲面着色器细分曲面Patch细分曲面控…...

项目经理如何及时掌控项目进度?
延迟是指超出计划的时间,而无法掌控则意味着管理者对实际情况一无所知。 为了解决这些问题,我们需要建立好的制度和沟通机制。例如使用项目管理软件来跟踪进度、定期开会并避免沟通障碍等。 管理者可以建立相关制度: 1、建立进度记录制度。…...
HTML <applet> 标签
HTML5 中不支持 <applet> 标签在 HTML 4 中用于定义嵌入式小程序(插件)。 实例 一个嵌入的 Java applet: <applet code="Bubbles.class" width="350" height="350"> Java applet that draws animated bubbles. </applet&g…...

加密与解密
加密与解密 加密方式分类 加密方式主要分为两种 一种是对称加密一种是非对称加密 对称加密 对称和非对称两种方式主要说的是加密和解密两个过程。 如果对数据用一个钥匙进行了加密,那么, 你想成功读取到这个加密了的数据的话,就必须对这…...

京东金融Android瘦身探索与实践
作者:京东科技 冯建华 一、背景 随着业务不断迭代更新,App的大小也在快速增加,2019年~2022年期间一度超过了117M,期间我们也做了部分优化如图1红色部分所示,但在做优化的同时面临着新的增量代码,包体积一直…...

open3d-ml 读取SemanticKITTI Dataset
目录 1. 下载dataset 2. 读取并做可视化 3. 源码阅读 3.1 读取点云数据-bin格式 3.2 读取标注数据-.label文件 3.3 读取配置 3.4 test 3.5 train 1. 下载dataset 以SemanticKITTI为例。下载链接:http://semantic-kitti.org/dataset.html#download 把上面三…...

6.其他函数
1.时间日期类 -- current_date() 返回当前日期 -- date_add(date, n) 返回从date开始n天之后的日期 -- date_sub(date, n) 返回从date开始n天之前的日期 -- datediff(date1, date2) 返回date1-date2的日期差 -- year(date) 返回…...

2023年宜昌市中等职业学校技能大赛 “网络搭建与应用”竞赛题-1
2023年宜昌市中等职业学校技能大赛 “网络搭建与应用”竞赛题 一、竞赛内容分布 “网络搭建及应用”竞赛共分二个部分,其中: 第一部分:企业网络搭建部署项目,占总分的比例为50%; 第二部分:企业网络服…...

Linux权限划分的原则
考察的不仅是一个具体的指令,还考察对技术层面的认知。 如果对 Linux 权限有较深的认知和理解,那么完全可以通过查资料去完成具体指令的执行。更重要的是,认知清晰的程序员可以把 Linux 权限管理的知识迁移到其他的系统设计中。 权限抽象 一…...

PhotoScan拼接无人机航拍RGB照片
目录 背景 拼接步骤 1.新建并保存项目 2.添加照片 3.对齐照片 4.添加标记(Markers) 5.添加地面控制点 6.建立批处理任务 7.使用批处理文件进行批处理 8.导出DEM 9.导出DOM 背景 本文介绍使用地面控制点(GCPs)拼接…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...

五、jmeter脚本参数化
目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...

OPENCV图形计算面积、弧长API讲解(1)
一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积,这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能,常用的API…...