BEV-YOLO 论文学习
1. 解决了什么问题?
出于安全和导航的目的,自驾感知系统需要全面而迅速地理解周围的环境。目前主流的研究方向有两个:第一种传感器融合方案整合激光雷达、相机和毫米波雷达,和第二种纯视觉方案。传感器融合方案的感知表现鲁棒,但是成本高,所要面临的环境挑战不少,因此大规模部署不太现实。纯视觉方案只依赖于相机传感器做感知,成本低廉,可以持续迭代。因此,纯视觉方案可能是自动驾驶行业的终极方向。

目前,纯视觉领域的研究焦点就是如何生成环境 BEV 图,赋能车载感知系统。传统的方法受限于相机的角度,生成的感知范围有限,制约了实时决策所需的空间感知能力。BEV 方法通过提供丰富的环境信息,提升自动驾驶,从而在复杂场景中做到实时决策。人们通常用高精地图来得到道路布局、车道线和其它静态元素。在这些静态信息之上是各种动态元素(车辆、行人和其它物体),为实时导航提供了必要的信息。本文试图在车辆各相机画面的坐标和 BEV 图之间构造直接的空间对应关系。BEV 图的各画面取决于它是哪个相机采集的,如上图所示,车辆前视相机采集的画面肯定落入 BEV 的上半部分,后视相机的画面肯定落入 BEV 的下半部分。

2. 提出了什么方法?
本文提出了 YOLO-BEV,通过环视相机的画面生成出一个 2D BEV 的车辆环境。通过设置八个相机,每个相机负责 4 5 ∘ 45^\circ 45∘,该系统将获取的图像整合成一个 3 × 3 3\times 3 3×3 的网格形式,中间是空白的,提供一个丰富的空间表征。本文采用了 YOLO 检测机制,YOLO 具有速度快和模型简洁的优点。作者对检测头做了特殊的设计,将全景数据转换为自车的统一的 BEV 图。
概览
YOLO-BEV 使用相机矩阵来采集数据,利用 YOLO 的主干网络做特征提取。针对 BEV 输出设计了一个检测层和相应的损失函数。本文关键创新点就是相机布局的设计,无缝地匹配生成的 BEV。该布局包括八个相机的安装,每个负责 4 5 ∘ 45^\circ 45∘角,从而得到 36 0 ∘ 360^\circ 360∘的视角。然后用一个 3 × 3 3\times 3 3×3矩阵的布局做图像预处理,根据 YOLO 特征图产生相应的 BEV。
下图展示了这个想法,相机在 BEV 视角下和各个区域对齐。输出的合成图像与车辆自上而下的视角保持对齐,目的是提高目标检测和空间识别的准确性。此外,作者将画面矩阵最底下的一列图像做了 18 0 ∘ 180^\circ 180∘ 的旋转,认为这样做更能匹配 BEV 的空间位置。

数据采集和预处理
nuPlan 数据集是自动驾驶领域非常重要的基准,包含了 1200 小时精心采集的高质量驾驶数据,场景涵盖了波士顿、匹兹堡、新加坡和拉斯维加斯的城区道路。它提供了多样化的驾驶场景和详尽的传感器数据,包括激光雷达、不同视角的相机、IMU 和高精度的 GPS 坐标。本文重点关注并优化自驾方案的计算效率,基于 nuPlan 数据集的八个相机的画面。
这些图像可以构建出一个 3 × 3 3\times 3 3×3画面矩阵,和 BEV 位置场景具有空间对应关系。为了生成可靠、准确的 ground-truth 数据,作者使用了一个直接的提取方法。nuPlan 数据集里的 tokens 是独一无二的,于是作者在输入图像和表示车辆位置的 BEV 坐标之间构建了一一对应的关系。本文的分析不包括行人和交通信号灯等信息,只考虑了车辆。这样,该方法可以加速计算过程,大幅度缩短获取有价值的结果的时间。
模型结构
本文模型基于 YOLO 架构构建,特征提取能力强、效率高。借鉴了主干和检测头的结构,模型将初始的 3 × 3 3\times 3 3×3 图像矩阵转换成一组丰富的多尺度特征图。这些特征图然后通过 CustomDetect 层做处理,实现准确的 BEV 目标定位。下图展示了该架构,它包括初始的 3 × 3 3\times 3 3×3 输入矩阵、主干网络和检测头,以及特殊设计的 CustomDetect 层。
CustomDetect 层包括 n l n_l nl层, n l n_l nl 与通道维度数组 c h = [ c h a n n e l 1 , c h a n n e l 2 , c h a n n e l 3 ] ch = [channel_1, channel_2, channel_3] ch=[channel1,channel2,channel3] 对齐。每一层 i i i都有一组卷积层。该序列卷积操作的数学表示如下:
Conv i , j = ReLU ( Conv2D ( X i , j − 1 , W i , j , b i , j ) ) , ∀ j ∈ { 1 , 2 , 3 } \text{Conv}_{i,j}=\text{ReLU}(\text{Conv2D}(X_{i,j-1}, W_{i,j}, b_{i,j})), \forall j\in \{1,2,3\} Convi,j=ReLU(Conv2D(Xi,j−1,Wi,j,bi,j)),∀j∈{1,2,3}
其中 X i , j − 1 X_{i,j-1} Xi,j−1表示第 i i i个检测层里第 j j j个卷积层的输入, W i , j , b i , j W_{i,j}, b_{i,j} Wi,j,bi,j表示相应的权重和偏置参数。使用了 ReLU 激活,为模型引入非线性。
前向计算时,将一组特征图输入 CustomDetect 层,每个特征图的维度都是 BatchSize × Channels × Height × W i d t h \text{BatchSize}\times \text{Channels}\times \text{Height}\times {Width} BatchSize×Channels×Height×Width。随后,将这些特征图变换为一组坐标和置信度得分张量。对于每个特征图 X i X_i Xi,
Y i = Conv i , 3 ( Conv i , 2 ( Conv i , 1 ( X i ) ) ) Y_i = \text{Conv}_{i,3}(\text{Conv}_{i,2}(\text{Conv}_{i,1}(X_i))) Yi=Convi,3(Convi,2(Convi,1(Xi)))
Y i Y_i Yi包含了 BEV 下目标定位的关键信息,目标位置和置信度得分。这些数据会用生成的网格进一步做优化,与输入特征图 X i X_i Xi的空间维度对应。该模型不仅利用了 YOLO 的特征提取机制,也扩展了边框回归方法,更准确地定位目标。CustomDetect 层输出关键的参数,如 物体的 x , y x,y x,y 坐标、朝向角、置信度。然后会用一个动态构建的网格来进一步优化这些参数,与输入特征图的空间维度对齐。

网格补偿机制
CustomDetect 模块加入了一个网格补偿机制,用于优化预测的目标位置。该机制将相对坐标变换成一组富含全局信息、上下文相关的坐标,即相对于特征图的整体空间范围。
网格创建
对于每个检测层,记作 i i i,会初始化一个精心构建的网格 G i G_i Gi。该网格与 i i i层输出的特征图 F i F_i Fi维度一致。 G i G_i Gi的每个格子都有一个中心坐标 ( x c e n t e r , y c e n t e r ) (x_{center},y_{center}) (xcenter,ycenter)。这个格子在网格 G i G_i Gi里的笛卡尔坐标是 ( m , n ) (m,n) (m,n),
x c e n t e r = m + 0.5 width of F i x_{center}=\frac{m+0.5}{\text{width of }F_i} xcenter=width of Fim+0.5
y c e n t e r = n + 0.5 height of F i y_{center}=\frac{n+0.5}{\text{height of }F_i} ycenter=height of Fin+0.5
精度驱动的坐标修正
( x p r e d , y p r e d ) (x_{pred}, y_{pred}) (xpred,ypred) 表示网络预测的特征图 F i F_i Fi上某一格子的坐标。该预测坐标需经过一个复杂的修正过程,利用到 G i G_i Gi对应的格子的中心坐标,
x a d j u s t e d = ( x p r e d 2 × width of F i ) + x c e n t e r x_{adjusted}=(\frac{x_{pred}}{2\times \text{width of }F_i}) + x_{center} xadjusted=(2×width of Fixpred)+xcenter
y a d j u s t e d = ( y p r e d 2 × height of F i ) + y c e n t e r y_{adjusted}=(\frac{y_{pred}}{2\times \text{height of }F_i}) + y_{center} yadjusted=(2×height of Fiypred)+ycenter
该修正机制不仅极大地提升了模型的定位能力,也提升了算法的效率和稳定性。如下图所示,假设有一个 3 × 3 3\times 3 3×3特征图 F i F_i Fi,格子的索引从左上角的 ( 0 , 0 ) (0,0) (0,0)到右下角的 ( 2 , 2 ) (2,2) (2,2)。用特征图 F i F_i Fi的宽度和高度来计算每个格子的中心坐标。例如, ( 0 , 0 ) (0,0) (0,0)格子的中心坐标是 ( 1 2 × width of F i , 1 2 × height of F i ) (\frac{1}{2\times \text{width of }F_i}, \frac{1}{2\times \text{height of }F_i}) (2×width of Fi1,2×height of Fi1)。我们假设网络预测该格子的坐标是 ( x p r e d , y p r e d ) (x_{pred}, y_{pred}) (xpred,ypred),其可以通过下面的方式做修正:
x a d j u s t e d = ( x p r e d 2 × width of F i ) + 1 2 × width of F i x_{adjusted}=(\frac{x_{pred}}{2\times \text{width of }F_i}) + \frac{1}{2\times \text{width of }F_i} xadjusted=(2×width of Fixpred)+2×width of Fi1
y a d j u s t e d = ( y p r e d 2 × height of F i ) + 1 2 × height of F i y_{adjusted}=(\frac{y_{pred}}{2\times \text{height of }F_i}) + \frac{1}{2\times \text{height of }F_i} yadjusted=(2×height of Fiypred)+2×height of Fi1

损失函数
采用了 multi-faceted 方法来设计损失函数,优化模型的性能,在该目标函数中融合了空间和置信度的信息。
空间部分引入了边框损失,使用 MSE。给定预测边框坐标和朝向角,转化成轴对齐边框(AABB)来计算与 ground-truth 框的 IOU。下图展示了该轴对齐边框 AABB 以及 IOU。AABB 简化了 IOU 的计算,与更准确的带朝向角的边框方法相比,它的 IOU 值可能会大一些。这是因为与轴对齐的边框可能会覆盖一些非重叠的区域。实验表明该误差是可以接受的,它仍能有效地帮助损失的下降。边框损失定义为:
L b o x = MSE ( I O U p r e d , I O U g t ) L_{box}=\text{MSE}(IOU_{pred}, IOU_{gt}) Lbox=MSE(IOUpred,IOUgt)
选用 MSE 作为 IOU 损失,能保证梯度流比较平滑。
置信度部分是用一个二值交叉熵损失实现的。对正负类别的样本计算损失。预测框如果与 ground-truth 框的 IOU 超过一定阈值,则判定正样本。对于正样本,损失为:
L p o s = B C E ( C p r e d , 1 ) + L b b o x L_{pos}=BCE(C_{pred}, 1) + L_{bbox} Lpos=BCE(Cpred,1)+Lbbox
若预测框和任意一个 ground-truth 框的 IOU 都很低,则判定为负样本,损失如下:
L n e g = B C E ( C p r e d , 0 ) L_{neg}=BCE(C_{pred}, 0) Lneg=BCE(Cpred,0)
最终的损失是这些损失的加权和,
L t o t a l + α L b b o x + β ( L p o s + L n e g ) L_{total}+\alpha L_{bbox} + \beta(L_{pos}+L_{neg}) Ltotal+αLbbox+β(Lpos+Lneg)
α , β \alpha,\beta α,β 平衡空间和置信度部分的权重,微调模型时提供一定的灵活性。该损失受到 YOLO 启发,构建了一个灵活且鲁棒的损失函数,能够解决自动驾驶任务内在的挑战,如实时目标跟踪和高精定位。

相关文章:
BEV-YOLO 论文学习
1. 解决了什么问题? 出于安全和导航的目的,自驾感知系统需要全面而迅速地理解周围的环境。目前主流的研究方向有两个:第一种传感器融合方案整合激光雷达、相机和毫米波雷达,和第二种纯视觉方案。传感器融合方案的感知表现鲁棒&am…...
C++可以使用负数作为下标索引
今天碰到一个题目,写bfs写炸了,发现好像数组越界,但是却没有报错,而是被边界检查拦截了 导致死循环了??? ps:所以写边界问题,首要的就是对边界进行检查,不检查越界之后…...
react+canvas实现横跨整个页面的动态的波浪线(贝塞尔曲线)
本来写这个特效 我打算用css实现的,结果是一波三折,我太难了,最终没能用css实现,转战了canvas来实现。来吧先看效果图 当然这个图的波浪高度、频率、位置、速度都是可调的,请根据自己的需求调整,如果你讲波…...
峰回网关数采PLC
1.网络配置 例如:plc地址是192.168.1.56 1.访问网关 峰回网关默认网关地址 192.168.3.18,或者(10.10.253.354),本案例按照3.18讲解。 1和1相连,0和电脑相连 本地电脑修改ip为192.168.3.3(和3…...
Vue+element el-date-picker 时间日期选择器设置默认值,选择框不显示问题(已解决)
时间选择器默认值的问题 显示的时候如果用下面的方式赋值将不会显示出来: this.deviceFormData.time[0] that.$filterArray.formatDatehh(start);this.deviceFormData.time[1] that.$filterArray.formatDateEnd(end);实际上是有数据的,但是不会显示出…...
数据挖掘题目:根据规则模板和信息表找出R中的所有强关联规则,基于信息增益、利用判定树进行归纳分类,计算信息熵的代码
一、(30分)设最小支持度阈值为0.2500, 最小置信度为0.6500。对于下面的规则模板和信息表找出R中的所有强关联规则: S∈R,P(S,x )∧ Q(S,y )> Gpa…...
Reshape.XL 1.2 for Excel插件 Crack
特征 插件 Reshape.XL 包括 130 个基本可组合功能。使用它们,您可以快速轻松地进行非常复杂的数据转换和处理。它们的架构和基本定义受到 SQL 和 R 语言的强烈启发。 到目前为止,类似的功能只能通过脚本语言供程序员使用。借助 Reshape.XL 插件…...
开发知识点-PHP从小白到拍簧片
从小白到拍簧片 位异或运算(^ )引用符号(&)strlen() 函数base64_encode预定义 $_POST 变量session_start($array);操作符php 命令set_time_limit(7200)isset()PHP 命名空间(namespace)new 实例化类extends 继承 一个类使用另一个类方法error_reporti…...
飞书开发学习笔记(二)-云文档简单开发练习
飞书开发学习笔记(二)-云文档简单开发练习 一.云文档飞书开发环境API 首先还是进入开放平台 飞书开放平台:https://open.feishu.cn/app?langzh-CN 云文档相关API都在“云文档”目录中,之下又有"云空间",“文档”,“电子表格”&a…...
设计模式——命令模式(Command Pattern)+ Spring相关源码
文章目录 一、命令模式定义二、例子2.1 菜鸟教程例子2.1.1 定义命令类接口2.1.2 定义命令执行者2.1.3 被处理对象Stock。2.1.4 封装处理Stock的命令 2.2 JDK源码——Runnable2.2.1 命令接口2.2.2 命令处理者2.2.3 命令实现类 2.3 SpringMVC——Controller2.3.1 请求对象 handle…...
[开源]企业级在线办公系统,基于实时音视频完成在线视频会议功能
一、开源项目简介 企业级在线办公系统 本项目使用了SpringBootMybatisSpringMVC框架,技术功能点应用了WebSocket、Redis、Activiti7工作流引擎, 基于TRTC腾讯实时音视频完成在线视频会议功能。 二、开源协议 使用GPL-3.0开源协议 三、界面展示 部分…...
Scala语言用Selenium库写一个爬虫模版
首先,我将使用Scala编写一个使用Selenium库下载yuanfudao内容的下载器程序。 然后我们需要在项目的build.sbt文件中添加selenium的依赖项。以下是添加Selenium依赖项的代码: libraryDependencies "org.openqa.selenium" % "selenium-ja…...
ZZ038 物联网应用与服务赛题第I套
2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (I卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工…...
ClickHouse 学习之基础入门(一)
第 1 章 ClickHouse 入 门 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C 语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。 …...
HttpClient基本使用
十二、HttpClient 12.1 介绍 HttpClient是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。 HttpClient作用: 发送HTTP请求接收响应数据 …...
力扣:150. 逆波兰表达式求值(Python3)
题目: 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整数或者另一…...
Tomcat运行日志乱码问题/项目用tomcat启动时窗口日志乱码
文章目录 一、问题描述:二、产生原因三、解决方法 一、问题描述: 项目在idea中运行时日志是正常的,用Tomcat启动时发现一大堆看不懂的文字,如 二、产生原因 产生乱码的根本原因就是编码和解码不一致,举个例子就是翻…...
Leetcode—199.二叉树的右视图【中等】
2023每日刷题(十九) Leetcode—199.二叉树的右视图 深度优先遍历实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(…...
微信小程序如何跳转到外部小程序
要在微信小程序中跳转到外部小程序,您可以使用微信小程序提供的 wx.navigateToMiniProgram 方法。以下是实现步骤: 在需要跳转的页面或组件中,编写触发跳转的逻辑,例如点击按钮: 替换 外部小程序的AppID 和 外部小程序…...
ElasticSearch集群环境搭建
1、准备三台服务器 这里准备三台服务器如下: IP地址主机名节点名192.168.225.65linux1node-1192.168.225.66linux2node-2192.168.225.67linux3node-3 2、准备elasticsearch安装环境 (1)编辑/etc/hosts(三台服务器都执行) vim /etc/hosts 添加如下内…...
[寻找时间序列数据中异常值终极指南(第三部分)](https://towardsdatascience.com/the-ultimate-guide-to-finding-outliers-in-yo
原文:towardsdatascience.com/the-ultimate-guide-to-finding-outliers-in-your-time-series-data-part-3-0ff73ce28ca3...
IPBan服务器防护解决方案:智能拦截恶意IP的实战指南
IPBan服务器防护解决方案:智能拦截恶意IP的实战指南 【免费下载链接】IPBan Since 2011, IPBan is the worlds most trusted, free security software to block hackers and botnets. With both Windows and Linux support, IPBan has your dedicated or cloud serv…...
艾络迅 × 荣耀:联合推出Meteer AI跳舞机器人玩具,智能科技重新定义儿童陪伴
在快节奏的现代生活中,每个孩子都渴望获得专属的陪伴与关注。他们对音乐和律动有着天然的热爱,期待拥有能够与之互动、共同成长的智能伙伴。然而,传统玩具的单一功能已无法满足数字原生代儿童的多元化需求。 正是洞察到这一痛点,艾…...
2026 年 Haskell 基金会大变革:执行董事卸任、组织重组、董事会人员调整!
执行董事卸任过去几年担任执行董事的 Jos 决定在 2026 年 6 月卸任。Jos 是 Haskell 基金会任职时间最长的执行董事,他花费大量时间与社区互动并提供支持,很多工作都是在幕后默默完成的。Jos 做出了个人牺牲,让 Haskell 基金会度过了艰难时期…...
ops-rand:AI 训练中的随机数生成
AI 训练离不开随机数。权重初始化要随机、Dropout 要随机、数据打乱要随机、噪声注入要随机。每一次随机操作的背后,都有一组随机数生成器在工作。 CANN 的 ops-rand 仓库提供了 NPU 上的随机数生成算子——Dropout、随机 Shuffle、随机初始化、正态分布采样等。这…...
端到端关键词识别技术范式:WeKWS在边缘计算场景下的架构创新与实践
端到端关键词识别技术范式:WeKWS在边缘计算场景下的架构创新与实践 【免费下载链接】wekws Production First and Production Ready End-to-End Keyword Spotting Toolkit 项目地址: https://gitcode.com/gh_mirrors/we/wekws 在物联网设备普及的今天&#x…...
AI设计泳装,能颠覆今夏潮流?
AI设计泳装,能颠覆今夏潮流? 夏日临近,泳装市场硝烟再起。然而,海量款式与消费者挑剔审美的矛盾日益尖锐——设计周期长、打版成本高、爆款命中率低,让无数商家深陷库存泥潭。如何破局?北京先智先行科技有限…...
告别踩坑!手把手教你用Cobalt Strike 4.7在Kali Linux上快速搭建团队服务器并上线第一台主机
Kali Linux环境下Cobalt Strike 4.7团队服务器部署与主机上线实战指南 在渗透测试和红队演练中,Cobalt Strike作为一款成熟的商业框架,其团队协作功能和丰富的攻击模拟能力备受安全从业者青睐。本文将基于Kali Linux系统,详细解析Cobalt Stri…...
别再傻傻重启了!用JRebel插件实现Spring Boot项目秒级热更新(附2024最新激活与配置避坑指南)
解锁Spring Boot开发新姿势:JRebel热更新实战全攻略 每次修改完代码后,那个漫长的等待重启进度条的过程,是不是让你忍不住想砸键盘?作为经历过数百次Spring Boot项目重启的老司机,我完全理解这种抓狂感。直到遇见了JR…...
初次使用Taotoken模型广场进行选型与测试的直观感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初次使用Taotoken模型广场进行选型与测试的直观感受 作为一名需要接入大模型能力的开发者,面对市场上众多的模型提供商…...
