fast_bev学习笔记

news2024/9/21 12:40:23

目录

  • 一. 简述
  • 二. 输入输出
  • 三. github资源
  • 四. 复现推理过程
    • 4.1 cuda tensorrt 版

一. 简述

原文:Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline
FAST BEV是一种高性能、快速推理和部署友好的解决方案,专为自动驾驶车载芯片设计。该框架主要包括以下五个部分:

Fast-Ray变换:这是一种轻量级的、部署友好的视图变换,它将多视图2D图像特征沿着相机射线的体素投影到3D,从而快速获得BEV(鸟瞰图)表示。相较于传统方法,这种变换方式显著提升了推理速度,使得多尺度投影操作变得更为高效和实用。
多尺度图像编码器:利用多尺度信息来获取更好的性能。通过多尺度投影操作,编码器能够充分利用不同尺度的图像特征,从而增强BEV感知的准确性和鲁棒性。
高效BEV编码器:专为加速车载推理而设计。通过使用少量的原始残差网络作为基本BEV编码器,该部分能够在保证性能的同时,进一步降低计算复杂度和推理时间。
数据增强:针对图像和BEV空间的强大数据增强策略,以避免过度拟合。通过引入各种数据变换和增强技术,可以提高模型的泛化能力,使其在面对不同场景和复杂环境时仍能保持良好的性能。
时间融合:利用时间信息的多帧特征融合机制。通过融合多帧图像的特征信息,该部分能够捕捉动态场景中物体的运动轨迹和状态变化,从而进一步提升BEV感知的准确性和实时性。
FAST BEV的优势在于其能够在保证高性能的同时,实现快速推理和方便部署。这使得它成为自动驾驶车载芯片上一种理想的解决方案。此外,相较于传统方法,FAST BEV无需使用昂贵的视图变换器或深度表示,从而降低了硬件成本和维护难度。

综上所述,FAST BEV通过优化视图变换、编码器设计、数据增强和时间融合等方面,实现了高性能、快速推理和部署友好的自动驾驶解决方案。随着自动驾驶技术的不断发展,FAST BEV有望在未来发挥更大的作用。

二. 输入输出

FAST BEV的输入主要是多相机RGB图像,
输出则是预测的3D边界框(包括速度)和地图分割结果。

通过一系列的处理步骤,如Fast-Ray变换、多尺度图像编码、高效BEV编码等,对输入的RGB图像进行特征提取、视图变换和编码,最终输出3D边界框和地图分割结果。

三. github资源

源码: https://github.com/Sense-GVT/Fast-BEV
使用CUDA和TensorRT进行Fast-BEV推理: https://github.com/Mandylove1993/CUDA-FastBEV
https://github.com/linClubs/FastBEV-ROS-TensorRT

Fast-BEV代码复现实践: https://blog.csdn.net/h904798869/article/details/130317240
Fast Bev在ubuntu上的复现过程以及error汇总: https://blog.csdn.net/qq_42704750/article/details/130280567
复现教程1 : https://zhuanlan.zhihu.com/p/631504194

四. 复现推理过程

4.1 cuda tensorrt 版

参考链接:https://github.com/Mandylove1993/CUDA-FastBEV

提供了PTQ和QAT的int8量化代码,
PTQ (Post-Training Quantization)是在模型训练完成后进行的量化,通过分析训练好的模型的权重和激活的分布来确定量化参数(如缩放因子和零点偏移)。
QAT(Quantization Aware Training)通过在训练过程中模拟量化操作来优化模型的权重,以减少量化带来的精度损失。
int8量化代码: 将模型的权重从浮点数转换为int8。在推理过程中,将模型的激活从浮点数转换为int8。在计算层输出时,将int8值转换回浮点数以便进行后续计算。

问题1:
CUDA和TensorRT进行Fast-BEV推理
缺少的 在此下载NVIDIA-AI-IOT/Lidar_AI_Solution https://github.com/NVIDIA-AI-IOT/Lidar_AI_Solution/tree/master

 ../dependencies/stb
  ../dependencies/pybind11/include
  ../libraries/cuOSD/src
  ../libraries/3DSparseConvolution/libspconv/include

问题2:
安装mmcv mmdet mmdet3d 参考:https://blog.csdn.net/h904798869/article/details/130317240版本如下:
在这里插入图片描述

问题3:
安装spconv:

pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html

git clone https://github.com/traveller59/spconv.git 
cd spconv
git checkout v1.2.1
git submodule update --init --recursive 
python setup.py bdist_wheel

cd ./dist
pip install spconv-.....

python 
import spconv

问题5:https://blog.51cto.com/u_15906550/5921374

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

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

相关文章

ssm婚纱摄影管理系统的设计+1.2w字论文+免费调试

项目演示视频: ssm婚纱摄影管理系统的设计 项目介绍: 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多商家的之中,随之就产生了“婚纱摄影网的设计”,这样就让婚纱摄影网的设计更…

IDEA跑Java后端项目提示内存溢出

要设置几个地方,都试一下吧: 1、默认是700,我们设置大一点(上次配置了这儿就解决了) 2、 3、 4、-Xmx4g

Linux基础命令篇:文本处理命令基础操作(awk、sed、sort、uniq、wc)

Linux基础命令之文件处理 1. awk awk是一种文本处理工具,用于处理结构化文本数据。它基于模式匹配和动作来处理输入数据。以下是一些常用的awk选项和示例: 1.1- 打印指定字段:awk { print $1, $3 } input-file(打印输入文件中的…

【YOLOv5改进系列(6)】高效涨点----使用DAMO-YOLO中的Efficient RepGFPN模块替换yolov5中的Neck部分

文章目录 🚀🚀🚀前言一、1️⃣ 添加yolov5_GFPN.yaml文件二、2️⃣添加extra_modules.py代码三、3️⃣yolo.py文件添加内容3.1 🎓 添加CSPStage模块 四、4️⃣实验结果4.1 🎓 使用yolov5s.pt训练的结果对比4.2 ✨ 使用…

Javascript 数字精度丢失的问题(超级详细的讲解)

文章目录 一、场景复现二、浮点数二、问题分析小结 三、解决方案参考文献 一、场景复现 一个经典的面试题 0.1 0.2 0.3 // false为什么是false呢? 先看下面这个比喻 比如一个数 130.33333333… 3会一直无限循环,数学可以表示,但是计算机要存储&a…

Linux下iptables实战指南:Ubuntu 22.04安全配置全解析

Linux下iptables实战指南:Ubuntu 22.04安全配置全解析 引言iptables基础知识工作原理组件介绍 iptables规则管理添加规则修改规则删除规则规则持久化 常见的iptables应用场景防止DDoS攻击限制访问速率端口转发日志管理 高级配置和技巧基于时间的规则基于用户的规则结…

语音模块摄像头模块阿里云结合,实现垃圾的智能识别

语音模块&摄像头模块&阿里云结合 文章目录 语音模块&摄像头模块&阿里云结合1、实现的功能2、配置2.1 软件环境2.2 硬件配置 3、程序介绍3.1 程序概况3.2 语言模块SDK配置介绍3.3 程序文件3.3.1 开启摄像头的程序3.3.2 云端识别函数( Py > C ) & 串口程序…

【实现报告】学生信息管理系统(顺序表)

目录 实验一 线性表的基本操作 一、实验目的 二、实验内容 三、实验提示 四、实验要求 五、实验代码如下: (一)顺序表的构建及初始化 (二)检查顺序表是否需要扩容 (三)根据指定学生个…

Redis命令-List命令

4.6 Redis命令-List命令 Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。 特征也与LinkedList类似: 有序元素可以重复插入和删除快查询速度一般 常用来存储一个有序数据&#xff…

工控安全双评合规:等保测评与商用密码共铸新篇章

01.双评合规概述 2017年《中华人民共和国网络安全法》开始正式施行,网络安全等级测评工作也在全国范围内按照相关法律法规和技术标准要求全面落实实施。2020年1月《中华人民共和国密码法》开始正式施行,商用密码应用安全性评估也在有序推广和逐步推进。…

Day60-Nginx反向代理与负载均衡基于URI及USER_AGENT等跳转讲解

Day60-Nginx反向代理与负载均衡基于URI及USER_AGENT等跳转讲解 9. 基于uri实现动静分离、业务模块分离调度企业案例(参考书籍)10.基于user_agent及浏览器实现转发(参考书籍)11.根据文件扩展名实现代理转发12. Nginx负载均衡监测节点状态13.proxy_next_up…

FPGA高端项目:解码索尼IMX327 MIPI相机转HDMI输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存HDMI输出工程源码架构 6、工程源码…

C/C++ ③ —— C++11新特性

1. 类型推导 1.1 auto auto可以让编译器在编译期就推导出变量的类型 auto的使⽤必须⻢上初始化,否则⽆法推导出类型auto在⼀⾏定义多个变量时,各个变量的推导不能产⽣⼆义性,否则编译失败auto不能⽤作函数参数在类中auto不能⽤作⾮静态成员…

构建智能未来:探索AI人工智能产品业务架构的创新之路

随着人工智能技术的快速发展,AI人工智能产品在各行各业中扮演着越来越重要的角色。本文将深入探讨AI人工智能产品业务架构的创新之路,探讨如何构建智能未来的商业生态。 ### AI人工智能产品业务架构的重要性 AI人工智能产品的业务架构是支撑产品成功的…

Zookeeper的选主流程

Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后&#xff…

学习vue3第十二节(组件的使用与类型)

1、组件的作用用途 目的: 提高代码的复用度,和便于维护,通过封装将复杂的功能代码拆分为更小的模块,方便管理, 当我们需要实现相同的功能时,我们只需要复用已经封装好的组件,而不需要重新编写相…

信息系统项目管理师——第10章项目进度管理(重要)

本章节内容属于10大管理知识领域中的重中之重,选择、案例、论文都会考,需要完全掌握。 选择题,大概考3分左右,有的时候会考一点理论大多数都是考计算。 案例题,必考内容,各种类型的计算题,网络图…

基于SpringBoot的“招聘信息管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“招聘信息管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统首页界面图 企业招聘界面…

免费软件“蓝莓投屏”:支持多个Airplay同时镜像的投屏软件。

引言: 由于定制盒子(3288)不支持投屏功能(有些5.1不支持,安卓4.X本身也不支持),需要借助第三方的投屏软件来实现这一需求。所以,研究半天,蓝莓投屏以其简便易用的特性脱颖而出,只需…

《QT实用小工具·二》图片文字转base64编码

1、概述 源码放在文章末尾 base64编码转换类 图片转base64字符串。base64字符串转图片。字符转base64字符串。base64字符串转字符。后期增加数据压缩。Qt6对base64编码转换进行了重写效率提升至少200%。 下面是demo演示: 项目部分代码如下所示: #ifn…