【论文精读】Fully Sparse 3D Occupancy Prediction

1 背景信息

团队:南京大学,上海人工智能实验室
时间:2023年12月
代码:https://github.com/MCG-NJU/SparseOcc

2 OCC预测存在的问题

2.1 dense 3D features

目前都是提取的密集3D特征,但是据统计,**90%**的Voxel都是空的,造成了极大的浪费,帧率现在很低,在Tesla A100上只能达到2-3FPS;然而,SparseOCC达到了17FPS;
还有一些稀疏的特征表征方式,最后还是做了saprse2dense的操作,比如VoxFormer。所以本文说自己是fully sparse。

2.2 evaluation

原本是mIOU,这篇文章提出了自己的评价方式RayIOU。

3 SparseOCC的做法

分为3个部分:

  1. backbone + FPN,提取特征
  2. sparse voxel decoder,解码出占据网格,但是不带类别信息
  3. mask transformer,分别各个实例的类别
  4. 2个decoder输出处理得到带分类的占据网格

3.1 sparse voxel decoder

将下述的层多次执行:

  1. 将一个体素voxel 8等份,得到8个新的体素;这一步就是论文里说的coarse2fine的步骤,它一步步把占据的网格细化,得到更细致的占据分布
  2. 这一步使用交叉熵损失进行监督,并考虑到地面这个种类最多,所以对每个类别进行了权重的平衡。

3.2 Mask transformer

  1. 这一步用到了上一步的输出,但是上一步输出的占据网格也会有错误,因此会把错误的结果类别设为no object;损失使用focal loss

4 Evaluation

4.1 mIOU的问题

一言以蔽之,mIOU鼓励模型预测的网格更厚,和真实场景不符。

If the model fills all areas behind the surface, it inconsistently penalizes depth predictions.
The model can obtain a higher IoU by filling all areas behind the surface and predicting a
closer depth.

如果模型预测的网格在真实网格的后面,那么IOU得分为0;那么如果想要得分高,而且也不预测那么准的话,就把网格预测厚一点,把真实网格包裹住就可以。

If the predicted occupancy represents a thin surface, the penalty becomes overly strict. Even
a deviation of just one voxel results in an IoU of zero.

反之,预测薄了的话,如果没包住真值,那IOU为0,得分就很低。

The visible mask only considers the visible area at the current moment, reducing occupancy
prediction to a depth estimation task and overlooking the scene completion ability.

visible mask告诉模型哪些区域有效,哪些区域无效invisible,那么模型只需要预测有效区域的深度就可以了,让模型occ预测变成了深度预测。

4.2 Ray-IOU的提出

针对每一束射线射到的第一个样本C:求:

TP / (TP + FP + FN)
TP表征实际有,预测有
FP表征实际没有,预测有
FN表征实际有,预测没有

这样有好处:

  1. 只看射线射到的第一个样本,不考虑其厚度
  2. TP的阈值更宽,比mIOU宽松一点
  3. 任何位置都有可能成为光束的起始点,这样子让模型能够真正进行场景建模能力,而不是仅仅深度预测能力

实验

在Ray-IOU中,SparseOCC达到最佳,在mIOU中,BEVDet-OCC达到最佳。
后面的实验结论没看了。

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

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

相关文章

SpringBoot缓存注解使用

背景 除了 RedisTemplate 外, 自Spring3.1开始,Spring自带了对缓存的支持。我们可以直接使用Spring缓存技术将某些数据放入本机的缓存中;Spring缓存技术也可以搭配其他缓存中间件(如Redis等)进行使用,将某些数据写入到缓存中间件…

QSqlRelationalTableModel 增删改查

QSqlRelationalTableModel 可以作为关系数据表的模型类,适用于三范式设计的表,主表中自动加载外键表中的名称。本文实现QSqlRelationalTableModel 为模型类,实现增删改查。 目录 0.表准备 1. 构建表格数据 声明变量 表格、数据模型、选择…

全球价值链贸易核算matlab程序(TIVA与WWZ分解方法大全)以及区域表链接方法

数据来源:基础数据来源于世界银行、国家统计局时间范围:2007年数据范围:国家与行业层面样例数据: 包含内容: 全部数据下载链接:https://download.csdn.net/download/samLi0620/89567902

Redis的操作以及SpringCache框架

目录 一.什么是Redis? 二.Redis的相关知识: 三.如何操作Redis? 1,常用命令: 2.Spring Data Redis (1) pom.xml 配置: (2)配置Redis数据源: …

麒麟V10安装nginx、mysql报错缺少包:error while loading shared libraries libssl.so.10

背景 启动nginx报错:error while loading shared libraries libssl.so.10 解决 查看nginx启动文件所依赖的动态链接库(即共享库或动态库) ldd nginx-1.22.1/sbin/nginx离线安装compat-openssl10包 将依赖包麒麟v10安装openssl10依赖包上…

QT6.6+Opencv 4.6.0完成摄像头显示以及捕获照片的功能

效果图提前展示,想试试再往下看: 在网上找了很久QT的摄像头打开方式,成功了,但是捕获照片一直不成功,我不知道是不是qt6版本的原因:这个多媒体窗口我安装没有效果 QT += multimediawidgets之前使用过python的opencv,于是想到可以使用opencv来显示摄像头以及捕获照片。…

C++完整的学生管理系统

实现功能 添加、删除、修改学生为学生添加、删除、修改成绩将数据保存在students.txt和grades.txt里 效果图&#xff08;部分功能&#xff09; 添加学生 添加成绩 源代码 这里就不分多个文件了 编译时在连接器命令行加入以下命令 -stdc11 #include <ios…

极客天成NVFile全闪存储加速千卡AIGC大模型训练平台

01 中国AI算力核心产业现状 随着人工智能技术的快速发展和广泛应用&#xff0c;AI算力已成为推动数字经济和科技创新的关键基础设施。2024年&#xff0c;中国AI算力核心产业规模持续扩大&#xff0c;在全球AI发展格局中占据重要地位&#xff0c;中国AI算力核心产业规模达到约…

LangChain的数据增强

吾名爱妃&#xff0c;性好静亦好动。好编程&#xff0c;常沉浸于代码之世界&#xff0c;思维纵横&#xff0c;力求逻辑之严密&#xff0c;算法之精妙。亦爱篮球&#xff0c;驰骋球场&#xff0c;尽享挥洒汗水之乐。且喜跑步&#xff0c;尤钟马拉松&#xff0c;长途奔袭&#xf…

Spring事务(1)

目录 一、事务回顾 1、什么是事务&#xff1f; 2、为什么需要事务&#xff1f; 3、事务的操作 二、Spring 中事务的实现 1、代码准备&#xff1a; &#xff08;1&#xff09;创建项目 spring-trans&#xff0c;引入 Spring Web&#xff0c;MyBatis&#xff0c;MySQL等依…

【C++】C++前言

目录 一.什么是C 1.1.面向过程&#xff1a; 1.2.面向对象&#xff1a; 二.C发展历史 三.C版本更迭 3.1.语法更新 3.2.关于C2X最新特性的讨论&#xff1a; 3.3.关于C23的一个小故事&#xff1a; 四.C参考文档&#xff1a; 五.C的重要性&#xff1a; 5.1.编程语言排行榜…

JESD204B学习与仿真

平台&#xff1a;vivado2018.3 芯片&#xff1a;xcku115-flva1517-2-i 场景&#xff1a;在高速ADC和DAC芯片中&#xff0c;有使用源同步的时钟和数据同步传输的方式&#xff0c;但是需要在逻辑内部对其进行校准。如果使用jesd204b接口传输数据&#xff0c;设计人员不需要了解…

《流程引擎原理与实践》开源电子书

流程引擎原理与实践 电子书地址&#xff1a;https://workflow-engine-book.shuwoom.com 第一部分&#xff1a;流程引擎基础 1 引言 1.1 流程引擎介绍 1.2 流程引擎技术的发展历程 1.3 相关产品国内外发展现状 1.4 本书的内容和结构安排 2 概念 2.1 基础概念 2.2 进阶…

MODBUS tcp学习总结

MODBUS TCP协议实例数据帧详细分析_modbus 帧结构-CSDN博客

Vuex看这一篇就够了

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

Win11 改造

记录一些安装 win11 系统之后&#xff0c;对使用不习惯的地方&#xff0c;进行的个人改造 右键菜单 Hiyoung006/Win11Useable: 将Win11右键菜单及资源管理器恢复为Win10样式的脚本 切换到旧版右键菜单&#xff1a; reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34…

什么是128陷阱?

Java包装类详解 Java包装类提供了一种将基本数据类型转换为对象的机制&#xff0c;这对于在需要对象而非基本数据类型的场景下尤为有用。本文将介绍拆装箱、包装类的编译器行为、常见方法以及自动装箱中的128陷阱。 拆装箱 拆装箱概念 拆箱&#xff08;Unboxing&#xff09…

iview中Checkbox组件设置不勾选是0,勾选是1

正常情况: <Checkbox v-model"data.blow" true-value"1" false-value"0"><span>是否易燃易爆</span> </Checkbox>vue的data中&#xff0c;将Checkbox绑定的初始值设置成0。 data: function () {return {data: {blow: &…

Web前端:HTML篇(二)元素属性

HTML 属性 属性是 HTML 元素提供的附加信息。 HTML 元素可以设置属性属性可以在元素中添加附加信息属性一般描述于开始标签属性总是以名称/值对的形式出现&#xff0c;比如&#xff1a;name"value"。 属性实例 HTML 链接由 <a> 标签定义。链接的地址在 href …

数据结构(二叉树-2)

文章目录 一、 实现链式结构二叉树 1.1 Tree.h 1.2 Tree.c 前中后序遍历 前序遍历 中序遍历 后续遍历 1.2 Tree.c 结点个数 1.3Tree.c 叶子节点个数 1.4 Tree.c 二叉树的高度 1.5 Tree.c 层序遍历 1.6 判断是否为完全二叉树 1.7 销毁二叉树 test.c 一、 实现链式结构二叉树 ⽤链…