英伟达开放BEVFusion部署源代码,边缘端实时运行(高达25FPS)

news2024/11/24 4:53:40

以下文章来源于微信公众号:集智书童
链接:https://mp.weixin.qq.com/s/6BWohe2FxRN8E-yyp_32fg
本文仅用于学术分享,如有侵权,请联系后台作删文处理

引言:

众所周知,雷达与相机的融合方案由于稀疏卷积的原因导致一直难以落地推广。而没有使用稀疏卷积的方案精度通常会差10-30%左右,并且目前的融合方案在Orin上的性能非常差(例如BEVFusion在3090Ti上只有8.6FPS),这严重地制约了自动驾驶的落地表现。英伟达刚刚发布了部署BEVFusion的方案,以惊人的25FPS同时保持67.66的高精度mAP运行在Orin上,这对于雷达相机融合的感知落地来说,这是一项十分令人兴奋的工作!这意味着雷达感知精度和速度将会得到大幅度的提升,并且轻易的部署

代码发布在 https://github.com/NVIDIA-AI-IOT/Lidar_AI_Solution

1. 仓库介绍

在这里插入图片描述

  • 该仓库主要提供了3个模型(BEVFusionCenterPointPointPillars)和5个libraries(sparse conv, quantization solution, cuPCL, cuOSD, YUVToRGB)
    在这里插入图片描述
  • 这些模块,通过下面的方式组织起来
    在这里插入图片描述
  • 下面是一个BEVFusion的执行效果
  • 模型的精度和速度如下表(nuScenes验证集的平均速度)
    在这里插入图片描述
  • 可以看到,模型在PTQ量化后只有0.3%mAP的损失,是相当不错的
  • 在保持高精度的同时还保持了高的推理速度,这对自动驾驶来说非常友好
  • 仓库提供了模块化的实现,对于按照要求修改会比较友好
    在这里插入图片描述

2. 稀疏卷积(Sparse Convolution)

  • 仓库还提供了稀疏卷积的解决方案,他的实现是独立于tensorRT之外的,纯cuda核函数调用TensorCore实现的一个库

  • 它通过onnx文件加载模型并进行推理加速,轻量且高效

  • 提供了FP16和INT8推理的支持。支持子流形和空间稀疏卷积

  • 同时还提供了CenterPoint和BEVFusion的lidar导出以及PTQ/QAT保证速度和精度的解决方案
    在这里插入图片描述

  • 详细的精度指标如下
    在这里插入图片描述

  • 下面是在nuScenes上的耗时统计,稳定性非常好
    在这里插入图片描述

3. BEVfusion介绍

在这里插入图片描述
BEVFusion是一种用于自动驾驶系统的先进技术。它代表着鸟瞰融合(Bird’s Eye View Fusion),是一个多任务、多传感器融合框架,极大地提高了自动驾驶汽车的性能[2]。

4. 落地部署的挑战

4.1. ONNX导出复杂

BEVFusion是一种涉及到SparseConv(稀疏卷积)层和自定义CUDA操作(如BEV池化)等复杂特性的模型[4]。这些特性对于转换到 ONNX,以及后续在TensorRT上部署都构成了难题。

我们简单地总结了一下难以转ONNX的主要原因:

(1)自定义CUDA操作:BEVFusion使用的自定义CUDA操作在ONNX模型导出中并不被原生支持[5]。这意味着这些操作需要手动在ONNX中注册为自定义操作,这是一项具有挑战性的任务。

(2)SparseConv层:在BEVFusion中使用的SparseConv层不被ONNX原生支持[6]。这使得转换过程变得复杂,因为需要手动处理这些层。

4.2.Plugin和BEVpooling效率低下

制约BEVfusion广泛落地的另一个原因就是其PluginBEVpooling效率不够高。BEVFusion中的BEVPool使用CUDA来加速,但它仍然需要计算、存储和预处理视锥特征(frustum feature),这在内存和计算上都十分密集[7]。

尽管BEVfusion在框架设计上已经进行了优化,相比于以前的研究,以更高的精度和降低1.9倍[8]的计算成本在nuscenes上设立了新的基准。但是,对于自动驾驶这种高速场景来说,我们应该追求更高的性能,以确保安全驾驶。因此,对某些操作的计算强度进行进一步优化是非常有价值的。

4.3.项目工程相对复杂

比起普通的单传感器感知,BEVfusion工程也相对复杂,主要体现在下面几个方面:

(1)多任务多传感器融合框架:BEVFusion被设计为一个高效且通用的多任务多传感器融合框架。它在共享的鸟瞰视图(BEV)表示空间中统一多模态特征,这既保留了几何信息也保留了语义信息[9]。这种任务和方法的复杂性直接反映在仓库的结构和内容上。

(2)坐标系统的修改和体素化(Coordinate system modification and voxelization):BEVFusion项目对其实现进行了重大更改,例如从zyx体素化切换到xyz体素化。在一些头部,xy BEV坐标与先前的实现相比进行了转置。这可能会增加仓库的复杂性,尤其是对熟悉先前版本的人来说[10]。

5. 总结

尽管BEVFusion确实提供了一种新颖且有效的方式来处理多传感器融合任务,但是在实际部署过程中仍存在以上的挑战。包括ONNX导出复杂、插件和BEVpooling效率低下以及项目工程相对复杂等问题。这些问题需要我们在实践中寻找解决方案。而这,正是英伟达提供的方案致力于解决的,新的部署方案在保持67.66的高精度mAP的同时,实现了在Orin上以惊人的25FPS运行,这对雷达和相机的融合感知落地来说无疑是一次重大突破。这项工作不仅证明了BEVFusion的实用性,还展示了其潜力,即在高精度和高效率之间找到平衡,以满足自动驾驶等高速场景的需求。

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

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

相关文章

STM32F4_PWM DAC

目录 1. 为什么需要使用PWM DAC 2. PWM DAC简介 3. 硬件设计 4. 软件设计 4.1 main.c 4.2 PWMDAC.c 4.3 PWMDAC.h 1. 为什么需要使用PWM DAC 虽然STM32F4自带DAC模块,但是在有些时候,可能出现两个DAC不够用的情况(STM32F4只有两个DAC&…

看过来!一文揭秘为什么选TikTokTikTok数据怎么分析

为什么要选择TikTok开小店?以及商家在运营TikTok之前要了解掌握哪些TikTok相关数据?要分析哪些数据、怎么看TikTok数据才能让商家更快更及时地改进优化自己的TikTok营销策略?往下看。 一、选择TikTok开小店的原因: 1. TK作为一个…

《终身成长》笔记五——随心所欲地夸奖孩子们以成长为目标的努力过程

目录 经典摘录 校园暴力:对“复仇”的思考 施暴者:欺凌与评判息息相关 父母或老师:关于成功和失败的信息 是否意味着,当我们的孩子取得了不起的成就的时候,我们不能热情地表扬他们呢? 关于失败的信息 经…

在moveit2中实现四连杆及曲柄滑块

对于一些特殊的(比如说机械构件闭环的、存在被动关节的)运动模型,该如何用urdf模型描述该模型,且在MoveIt2中进行仿真?下面提供一个思路,仅供参考。 四连杆机构 结构介绍 该机构的组成如下图所示。 粉红…

加密解密软件VMProtect入门使用教程(九)许可制度之许可系统功能

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic(本机)、Virtual Pascal和XCode编译器。 同时,VMProtect有一个内置的反汇编程序,可以与Windows和Mac OS X可执行文件一起…

前端综合项目-个人博客网页设计

个人博客前端部分设计 文章目录 前端综合项目-个人博客网页设计1. 预计效果2. 公共样式设计2.1 背景设计2.2 导航栏设计2.3 博客列表页和博客详情页的共同内容2.3.1 页面划分css设计2.3.2 左侧card内容2.3.3 右侧article内容 3. 博客列表页4. 博客详情页5. 博客登录页5.1 页面划…

赛效:怎么在99医院库平台查询科室医生坐诊的时间?

如果想要了解更多生活中常用的工具的使用方法,可进入赛效官方网站查看应用软件或者应用问答栏目查看详情。 很多人在去医院就诊时,往往会提前查询下就诊医院当天坐诊的医生有哪些,如果可以直接在网上进行预约的话,通过网络预约要…

word中图标格式的美化

目录 1. 修改行号2. 调整图表格式2.1 方法1 (不推荐)2.2 方法2 3. 参考链接 1. 修改行号 2. 调整图表格式 要达到下图的效果 2.1 方法1 (不推荐) 利用“一系列格式操作”设置表格格式。(该方法不具有可复制性&#…

网络性能测试工具

什么是网络测试 网络测试是用于定量或定性测量 IT 基础架构性能的过程。这是一个原始级别的故障识别,不需要大量的历史数据。对于更高级的监视,使用网络监视工具。 什么是网络测试工具 网络测试工具是一组工具,可帮助测量网络各个方面的性…

ASO优化之如何选择手游的行业词和竞品词

应用商店的搜索关键词转化率占应用总下载转化率的65%。这表明,用户会知道自己想要什么,更倾向于去应用商店寻找特定的应用程序。因此如果能让他们相信我们的应用正是他们所寻找的,那么关键词优化就很重要了。 那么我们该如何选择手游的行业词…

中文文献如何查找下载最高效

提到查找下载中文文献我们就会想到知网、万方、维普等中国知名数据库,很多高校都订购了这些数据库资源,但各个高校订购的资源不仅内容上不一样,而且都不是数据库的全部资源,超出订购范围的文献资源是下载不到的,如下图…

探索iOS之CoreAudio核心音频框架

iOS的CoreAudio分为三层:应用服务层、驱动层、硬件层。其中,应用服务层包括:AudioQueue Service、AudioPlayer Service、AudioSession Service、AudioFile Service、AudioUnit等。 一、CoreAudio整体架构 CoreAudio的整体架构自顶向下是Ser…

求最小生成树(Prim算法与Kruskal算法与并查集)

目录 1、案例要求2、算法设计与实现2.1 Prim算法2.1.1 构造无向图2.1.2 编写Prim算法函数2.1.3 实现代码2.1.4 运行结果截图 2.2 Kruskal算法2.2.1 构造无向图2.2.2 编写并查集UnionFind类2.2.3 编写Kruskal算法2.2.4 实现代码2.2.5 运行结果截图 3、总结 1、案例要求 利用贪心…

CameraLink 高清医学影像分析模块

FMC-XM202是一款基于FMC接口标准的1路CameraLink Full模式(或者2路CameraLink Base模式)采集、1路HDMI(DVI)视频输出的子卡模块,该模块具有2个CameraLink端口(SDR,26PIN)&#xff0c…

简单线性线性回归

文章目录 brief直线回归的一般形式参数计算y观测值和回归值的关系基本前提假定假设检验直线回归的变异来源自由度问题:假设检验 多元线性回归 brief 当研究两个有因果关系的变量时,我们希望建立一个方程式表示两者的关系,这样有一个变量得知…

公司里的5种人,建议马上开除

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 多年前,马云在某期湖畔大学开学演讲时,说了一句经典名言:“小公司的成败在于你聘请什么样的人,大公司的成败在于你开除什么样的人。”K哥觉得&#xff0…

Ocean Optics USB2000光谱仪无法在Win10/8系统运行

1、问题描述 USB2000型光谱仪,由于生产年代过于久远,虽然能被Win10系统识别,但是驱动程序安装完成后依然报错, 提示:该设备无法启动。(代码 10) 请求USB BOS 描述符失败。 运行SpectraSuite软件…

操作系统原理 —— 什么是信号量,信号量如何实现进程互斥、进程同步?(十五)

在之前的章节中,我们提到了进程互斥,以及进程互斥实现的几种方式,那么今天我们再来讲解一种,基于 信号量 来实现进程之间的同步、互斥的方式。 用户进程可以通过使用操作性提供的一对原语来对信号量进行操作,从而很方…

C语言基础知识:C语言中的指针

目录 1、为什么需要指针? 2、指针是什么? 3、指针与变量的关系 4、指针的分类 5、指针的用法 6、指针的运算 7、野指针 8、指针使用时的注意事项 同C语言中其他变量一样,把指针也可以看成是一种变量。不过,这种变量专门存储地址值。…

vscode链接远程服务器开发c++项目

因为要在linux环境下开发c应用,需要一个比较好用的远程工具。之前做深度学习的时候一直用vscode链接服务器写python,感觉用起来很舒服。 vscode下载安装这些就略过了,从插件安装和配置文件开始介绍 参考文章:https://zhuanlan.zh…