经典文献阅读之--FlashOcc(快速且内存高效的占用预测模块)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G的免费磁盘空间。通过链接注册并联系客服,可以获得20元代金券(相当于6-7H的免费GPU资源)。欢迎大家体验一下~

0. 简介

鉴于能够缓解 3D 目标检测中普遍存在的长尾缺陷和复杂形状缺失的能力,占用预测已成为自动驾驶系统的关键组成部分。然而,三维体素级表示的处理不可避免地会在内存和计算方面引入大量开销,阻碍了迄今为止的占用预测方法的部署。与使模型变得更大、更复杂的趋势相反,《FlashOcc: Fast and Memory-Efficient Occupancy Prediction via Channel-to-Height Plugin》认为理想的框架应该对不同的芯片进行部署友好,同时保持高精度。为此,本文提出了一种即插即用范例,即 FlashOCC,以巩固快速且节省内存的占用预测,同时保持高精度。特别是,本文的 FlashOCC 基于当代体素级占用预测方法做出了两项改进。首先,特征保留在 BEV 中,从而能够使用高效的 2D 卷积层进行特征提取。其次,引入通道到高度变换(channel-to-height transformation) ,将 BEV 的输出 logits 提升到 3D 空间。本文将 FlashOCC 应用于具有挑战性的 Occ3D-nuScenes 基准的各种占用预测基线,并进行广泛的实验来验证其有效性。结果证实了本文的即插即用范例在精度、运行时效率和内存成本方面优于以前最先进的方法,展示了其部署潜力。该代码将可供使用。

1. 主要贡献

  1. 在我们的工作中,我们旨在高效实现通道到高度特征转换。鉴于BEV感知任务的进展,其中BEV表示中的每个像素包含沿高度维度的相应柱中所有对象的信息,我们直观地利用通道到高度转换来将扁平化的BEV特征重塑为三维体素级占用对数。

  2. 以一种通用且即插即用的方式增强现有模型,而不是开发新的模型架构,如图1(a)所示。具体来说,我们将当代方法中的3D卷积直接替换为2D卷积,并用通过2D卷积获得的BEV级特征的通道到高度转换替换从3D卷积输出中得出的占用对数。这些模型不仅在准确性和时间消耗之间取得了最佳平衡,而且表现出了出色的部署兼容性。

在这里插入图片描述

图1(a)说明了如何以即插即用的方式实现所提出的FlashOcc。当代方法使用经过3D卷积处理的体素级3D特征来预测占据情况。相比之下,我们的插件替代模型通过(1)用2D卷积替换3D卷积和(2)用2D卷积获取的BEV级特征的通道到高度转换来实现快速且内存高效的占据情况预测。缩写"Conv"代表卷积。图1(b)举例说明了准确性与速度、推理内存消耗和训练持续时间等因素之间的权衡。有关M0-8的详细配置,请参阅表2。"FO"是FlashOcc的缩写,"FO()“表示相应模型的插件替代,该模型以”"命名。最佳观看方式为彩色显示。

2.框架

FlashOcc 在该领域做出了开创性的贡献,成功实现了具有显著准确性的实时全景3D占据预测。此外,它在不同车载平台上展示了增强的多功能性,因为它避免了昂贵的体素级特征处理,其中避免了视图变换器或3D(可变形)卷积运算符的需求。如图2所示,FlashOcc的输入数据包括全景图像,而输出是密集的占据预测结果。尽管我们的FlashOcc专注于以一种通用和即插即用的方式增强现有模型,但它仍然可以分为五个基本模块:(1)负责从多摄像头图像中提取图像特征的2D图像编码器。(2)一个视图变换模块,用于将2D感知视图图像特征映射到3D BEV表示。(3)负责处理BEV特征信息的BEV编码器。(4)占据预测模块,用于预测每个体素的分割标签。(5)一个可选的时间融合模块,旨在整合历史信息以提高性能。

3. 图像编码器

图像编码器将输入图像提取为感知视图中的高级特征。具体来说,它利用骨干网络提取多尺度语义特征,随后将其馈送到颈部模块进行融合,从而充分利用具有不同粒度的语义信息。经典的ResNet [8]和强大的SwinTransformer [18]通常被选择为骨干网络。ResNet的多个残差块设计使其能够优雅地获取具有丰富和多粒度语义信息的特征表示。Swin Transformer引入了一个分层结构,将输入图像分成小块并逐步处理。通过利用移位窗口机制,SwinTransformer在保持竞争性能的同时实现了高效性和可扩展性。至于颈部模块,简洁的FPN-LSS [9, 25]被选中。它将细粒度特征与直接上采样的粗粒度特征进行整合。事实上,由于所提出的范式从未局限于特定的架构,因此骨干网络可以替换为其他先进模型,如SwinTransformer [18],Vit [5]。颈部模块也可以替换为其他具有竞争力的变体,如NAS-FPN [7],BiFPN [29]。


## …详情请参照[古月居](https://www.guyuehome.com/47203)

视角变换器是全景视图3D感知系统中的关键组件,它将2D感知视图特征映射到BEV表示。最近的工作中广泛使用了Lift-splat-shot(LSS)[9, 25]和激光雷达结构(LS)[13]。LSS利用像素级密集深度预测和相机内/外参数将图像特征投影到预定义的3D网格体素上。随后,沿垂直维度(高度)应用池化操作以获得扁平的BEV表示。然而,LS依赖于均匀分布的深度假设来转移特征,这导致特征错位,随后在相机光线方向上引起虚假检测,尽管计算复杂度降低。

5. BEV编码器

BEV编码器增强了通过视角变换获得的粗略BEV特征,从而产生更详细的3D表示。BEV编码器的架构类似于图像编码器,包括骨干和颈部。我们采用了第4节中概述的设置。通过在骨干中的几个块之后进行特征扩散,改善了LSS中缺失的中心特征[6]或LS中的混叠伪影。如图2所示,集成了两个多尺度特征以增强表示质量。

6. 占用预测模块

如图2所示,从颈部获取的BEV特征用于占用预测,输入到一个占用头中。它由一个多层卷积网络[1, 22, 23]或者复杂的多尺度特征融合模块[15]组成,后者具有更优越的全局感受野,能够更全面地感知整个场景,同时也提供了对局部详细特征更精细的表征。占用头产生的BEV特征然后通过通道到高度模块。该模块对通道维度执行简单的重塑操作,将BEV特征从 B × C × W × H B × C × W × H B×C×W×H的形状转换为具有 B × C ∗ × Z × W × H B × C^∗ × Z × W × H B×C×Z×W×H形状的占用对数,其中 B B B C C C C ∗ C^∗ C W W W H H H Z Z Z分别代表批处理大小、通道数、类别数、3D空间中 x / y / z x/y/z x/y/z维度的数量,且 C = C ∗ × Z C = C^∗ × Z C=C×Z

7. 时间融合模块

时间融合模块旨在通过整合历史信息来增强对动态对象或属性的感知。它由两个主要组件组成:时空对齐模块和特征融合模块,如图2所示。对齐模块利用自车信息将历史BEV特征与当前激光雷达系统进行对齐。这一对齐过程确保历史特征被正确插值并与当前感知系统同步。一旦对齐完成,对齐的BEV特征被传递到特征融合模块。该模块整合了对齐的特征,考虑了它们的时间上下文,生成了动态对象或属性的全面表示。融合过程结合了历史特征和当前感知输入的相关信息,以提高整体感知准确性和可靠性。

在这里插入图片描述

图2. 该图示意了我们的FlashOcc的总体架构,最好以彩色和缩放功能查看。
虚线框标识的区域表示可替换模块的存在。每个可替换模块的特征形状分别用代表2D图像、BEV级别和体素级别特征的图标表示。浅蓝色区域对应可选的时间融合模块,其使用取决于红色开关的激活。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows下编译linux的go程序报错gcc_linux_amd64.c: In function ‘_cgo_sys_thread_start‘:

报错解决 执行报错 报错解决 其他补充 windows下编译linux 64位程序 set GOARCHamd64 set GOOSlinux set CGO_ENABLED0 go build手把手教你实现Golang跨平台编译 报错解决其他补充windows下编译linux 64位程序Windows下编译Mac平台64位可执行程序:Linux 下编译…

webpack--压缩,代码的拆分,tree shinking

Terser 对代码进行压缩、丑化 const TerserPlugin require("terser-webpack-plugin");optimization: { minimize: true, //在开发环境下启用 CSS 优化minimizer: [new TerserPlugin({extractComments: false,terserOptions: {compress: {arguments: true,// 将函数…

Cursor是什么?基于ChatGPT代码编辑器的cursor如何使用?VS Code如何迁移到Cursor的步骤

Cursor是什么 Cursor 是一个基于 Visual Studio Code(VS Code)技术构建的高级代码编辑器,专为提高编程效率并更深度地整合 AI 功能而设计。它不仅继承了 VS Code 的强大功能和用户界面,还增加了专门针对 AI 支持的特色功能。 Cur…

UE5 渲染性能优化 学习笔记

主要考虑三个点: 1、灯光 2、半透明物体 3、后处理 1、Game:CPU对游戏代码的处理工作 2、Draw:CPU为GPU准备数据所做的工作 3、GPU Time:就是GPU所渲染需要花的时间 UE5的命令行指令 里面说明了某个指令有什么用处 以及启动…

英伟达SSD视觉算法分类代码解析

一、官方原代码 #!/usr/bin/env python3 # # Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Softwa…

【电路笔记】-电子放大器介绍

电子放大器介绍 文章目录 电子放大器介绍1、概述2、四极表示法3、理想模型4、真实放大器的限制5、噪音考虑因素6、电子放大器的类型1、概述 放大器是一种电子模块,可放大电位信号(电压放大器)、强度信号(电流放大器)或两者(功率放大器)。 放大器由两个输入组成,分别是…

开门预警系统技术规范(简化版)

开门预警系统技术规范(简化版) 1 系统概述2 预警区域3 预警目标4 功能需求5 功能条件6 显示需求7 指标需求1 系统概述 开门预警系统(DOW),在自车停止开门过程中,安装在车辆的传感器(如安装在车辆后保险杆两个角雷达)检测从自车后方接近的目标车(汽车、摩托车等)的相对…

Django面试题

1. 什么是wsgi? WSGI 是 “Web Server Gateway Interface” 的缩写,它是一种用于 Python Web 应用程序和 Web 服务器之间通信的标准接口。它定义了一组规则和约定,使 Web 服务器能够与任何符合 WSGI 规范的 Python Web 应用程序进行交互。 #…

2024年中级会计报名失败原因汇总❗

2024年中级会计报名失败原因汇总❗ ❌这四类考生不能报考24年中级⇩⇩⇩ 1️⃣不参加会计信息采集的同学 2️⃣未按规定完成继续教育的同学 3️⃣不符合会计工作年限要求的同学 4️⃣报名前未做好材料准备 需要准备有效期内身份证、本人学历或学位证书、户籍证或者居住证明、符…

翻转链表-链表题

LCR 141. 训练计划 III - 力扣(LeetCode) 非递归 class Solution { public:ListNode* trainningPlan(ListNode* head) {if(head ! nullptr && head->next ! nullptr){ListNode* former nullptr;ListNode* mid head;ListNode* laster nul…

C++ PDF转图片

C PDF转图片#include "include/fpdfview.h" #include <fstream> #include <include/core/SkImage.h>sk_sp<SkImage> pdfToImg(sk_sp<SkData> pdfData) {sk_sp<SkImage> img;FPDF_InitLibrary(nullptr);FPDF_DOCUMENT doc;FPDF_PAGE …

Character Region Awareness for Text Detection论文学习

​1.首先将模型在Synth80k数据集上训练 Synth80k数据集是合成数据集&#xff0c;里面标注是使用单个字符的标注的&#xff0c;也就是这篇文章作者想要的标注的样子&#xff0c;但是大多数数据集是成堆标注的&#xff0c;也就是每行或者一堆字体被整体标注出来&#xff0c;作者…

人工智能ChatGPT的多种应用:提示词工程

简介 ChatGPT 的主要优点之一是它能够理解和响应自然语言输入。在日常生活中&#xff0c;沟通本来就是很重要的一门课程&#xff0c;沟通的过程中表达的越清晰&#xff0c;给到的信息越多&#xff0c;那么沟通就越顺畅。 和 ChatGPT 沟通也是同样的道理&#xff0c;如果想要 …

33.星号三角阵(二)

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/742 题目描述 给定一个整数 𝑛,输出一个…

专属部署简介

什么是专属部署 专属部署(也称为专用部署)是一种部署选择&#xff0c;它允许用户将数据和应用部署到自己的专用云基础架构中&#xff0c;而不是与其他租户共享基础架构。这种部署方式可以提供更高的安全性、控制力和性能优化&#xff0c;因为用户可以完全控制和管理自己的基础设…

大众点评全国爱车店铺POI采集177万家-2024年5月底

大众点评全国爱车店铺POI采集177万家-2024年5月底 店铺POI点位示例&#xff1a; 店铺id H69Y6l1Ixs2jLGg2 店铺名称 HEEJOO豪爵足道(伍家店) 十分制服务评分 7.7 十分制环境评分 7.7 十分制划算评分 7.7 人均价格 134 评价数量 2982 店铺地址 桔城路2号盛景商业广场1-3…

46【Aseprite 作图】发光

1 通过“编辑 - 特效 - 卷积矩阵”&#xff0c;这次选择“7*7”&#xff0c;可以做出窗户的效果

面试题:什么是线程的上下文切换?

线程的上下文切换是指在操作系统中&#xff0c;CPU从执行一个线程的任务切换到执行另一个线程任务的过程。在现代操作系统中&#xff0c;为了实现多任务处理和充分利用CPU资源&#xff0c;会同时管理多个线程的执行。由于CPU在任意时刻只能执行一个线程&#xff0c;因此需要在这…

【QT5】<知识点> IMX6ULL开发板运行QT

目录 1. 安装交叉编译器 2. 命令行交叉编译QT项目 3. 运行该可执行程序 4. 开发板上运行UDP程序与Ubuntu通信 1. 安装交叉编译器 第一步&#xff1a;进入正点原子论坛找到IMX6ULL开发板的资料&#xff0c;下载“开发工具”&#xff0c;将“交叉编译工具”中的fsl-imx-x11-…

讲透计算机网络知识(实战篇)01——计算机网络和协议

一、计算机网络和协议 1、网络和互联网络 1.1 网络、互联网、Internet 用交换机、集线器连接在一起的计算机构成一个网络。 用路由器连接多个网络&#xff0c;形成互联网。 全球最大的互联网&#xff1a;Internet。 1.2 网络举例 家庭互联网 图中的无线拨号路由器既是路由…