fast_bev学习笔记

目录

  • 一. 简述
  • 二. 输入输出
  • 三. 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

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

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

相关文章

数学逆元计算

定义,即是有(在mod p 的意义下),也就是求倒数 根据定义,则有,b的逆元就是 所以得出第一个计算式 求,可以快速计算较大情况: 表示的逆元的值,则有: fac[0]…

基于STM32的汽车防窒息系统

文章目录 基于STM32的汽车防窒息系统系统简介材料展示视频制作硬件连接原理图PCB实物图GSM模块使用GSM模块代码 SGP30模块SGP30模块代码 步进电机驱动步进电机代码 其他模块主逻辑代码 总结 基于STM32的汽车防窒息系统 系统简介 随着社会的发展目前汽车的流行,汽车大…

骨传导耳机哪个品牌最好?精选五大热销产品深度测评!

作为一个经验丰富的数码测评师,我经常在生活中使用各类数码产品,骨传导耳机就是其中之一,但在之前,选购骨传导耳机的时候也踩到过不少的坑,因为随着骨传导耳机逐渐热门,一些劣质品牌逐渐进入市场中&#xf…

京东云4核16G服务器优惠价格26元1个月、658元1年、三年3098元

京东云4核16G服务器优惠价格26元1个月、80元3个月、658元1年、3098元三年,配置为:轻量云主机4C16G-220G SSD系统盘-5M带宽-500G月流量,京东云优惠活动 atengyun.com/go/jd 可以查看京东云服务器详细配置和精准报价单,活动打开如下…

代码随想录训练营Day37:● 738.单调递增的数字 ● 968.监控二叉树 ● 总结

738.单调递增的数字 题目链接 https://leetcode.cn/problems/monotone-increasing-digits/description/ 题目描述 思路 从后往前遍历数字的每一位,如果前一位大于后一位,则将其减一,后边的一位取 i-9 中最大的 解答的两点疑惑:…

【Java多线程】5——Lock底层原理

5 Lock底层原理 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记仓库👉https://github.com/A-BigTree/tree-learning-notes 个人主页👉https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~&…

错误:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+

错误现象 解决方法: 将urllib3 降级 pip install urllib31.25.11

震惊!AI生成真人视频毫无瑕疵,台词随意变!HeyGen硬核升级数字人

2024年3月21日,HeyGen 5.0 正式发布!这款革命性的AIGC产品将AI数字人的魔力融入视频创作,以其简洁易用的特性,让视频制作变得轻而易举。 只需几次点击,即可打造出令人惊叹的高品质视频作品! 不仅如此&…

HarmonyOS入门--页面和自定义组件生命周期

文章目录 页面和自定义组件生命周期页面生命周期组件生命周期生命周期的调用时机 页面和自定义组件生命周期 生命周期流程如下图所示,下图展示的是被Entry装饰的组件(首页)生命周期。 自定义组件和页面的关系: 自定义组件&…

学习【Redis实战篇】这一篇就够了

目录 1. 短信登录1-1. 技术点redis存储token拦截器刷新token有效期 1-2. 业务登录注册 2. 商户查询缓存1-1. 技术点缓存更新策略缓存穿透缓存雪崩缓存击穿 1-2. 业务查询缓存的商铺信息 3. 优惠卷秒杀3-1. 技术点全局唯一ID乐观锁基于Redis实现分布式锁基于Redisson实现分布式锁…

2024年智能版控费系统方案卓健易控

2024年智能版控费系统方案卓健易控 详细可咨询:19138173009 设备智能卓健易控ZJ-V8.0控费方案在科学和技术不断发展的背景下,逐渐实现了更新和迭代。现如今,感应技术、生物识别技术、智能图像识别技术、过程记录技术、监管控制技术等方面的…

halcon例程学习——ball.hdev

dev_update_window (off) dev_close_window () dev_open_window (0, 0, 728, 512, black, WindowID) read_image (Bond, die/die_03) dev_display (Bond) set_display_font (WindowID, 14, mono, true, false) *自带的 提示继续 disp_continue_message (WindowID, black, true)…

多个微信这样高效管理

随着微信成为企业商务沟通的主要平台,一些业务咨询量较大的行业,如教育培训、旅游、美容及医疗等,通过微信开展营销活动和客户服务过程中,经常面临多微信管理难题。 在这种情况下,采用微信线上业务模式,需…

Spring-IoC-属性注入的注解实现

1、创建对象的注解 Component 用于声明Bean对象的注解,在类上添加该注解后,表示将该类创建对象的权限交给Spring容器。可以直接将这些类直接创建,使用的时候可以直接用。 注解的value属性用于指定bean的id值,value可以省略&…

牛客JZ21-调整数组顺序使奇数位于偶数前面

目录 问题描述示例具体思路思路一 代码实现 问题描述 输入一个长度为 n 整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,并保证奇数和奇数,偶数和偶数…

12.Java语言的发展

JAVA语言的诞生是具有一定戏剧性的,可以说是命运多舛,差点凉凉,差点GG,差点嗝屁。 在1990年的时候Sun(Stanford University Network:斯坦福大学网络)公司成立了一个由 James Gosling 领导的Gree…

【unity】unity安装及路线图

学习路线图 二、有关unity的下载 由于unity公司是在国外,所以.com版(https://developer.unity.cn/)不一定稳定,学习时推荐从.cn国内版(https://developer.unity.cn/)前往下载,但是后期仍需回…

通过dockerfile制作代码编译maven3.8.8+jdk17 基础镜像

一、背景: paas平台维护过程中有一个流水线的工作需要支持运维,最近有研发提出新的需求要制作一个代码编译的基础镜像出来,代码编译的基础镜像需求如下: maven版本:3.8.8版本 jdk版本:17版本,小…

C++中的STL简介与string类

目录 STL简介 STL的版本 STL的六大组件 string类 标准库中的string类 string类的常用接口 string类对象对容量的操作 size()函数与length()函数 capacity()函数 capacity的扩容方式 reserve()函数 resize()函数 string类对象的操作 push_back()函数 append()函数 operator()函数…

Redis与数据库的一致性

Redis与数据库的数据一致性 在使用Redis作为应用缓存来提高数据的读性能时,经常会遇到Redis与数据库的数据一致性问题。简单来说,就是同一份数据同时存在于Redis和数据库,如何在数据更新的时候,保证两边数据的一致性。首先&#…