一.BEVFusion

1.简要介绍

BEV是一个俯视空间,Fusion做的就是融合,这里指的就是图像和点云的融合。那如何把图像和点云融合在一起?认为融合方法有三种:

  • a.point level fusion:点集的融合,从点云中采样一些点,再根据相机的内外参讲这些点投影到图像上,采样出图像特征,然后再拼接到点位上,利用这个融合后的特征去做3D目标检测
  • b.feature level:将两种模态的中间特征通过内外参矩阵拼接投影,融合出完整特征去做的。具体啦说就是,对于输入点云,通过点云网络得到初始位置,初始位置去图像上采样特征,这是一个从点云到图像的过程,采样玩特征之后,再拿回到原始的点云空间中,拼接到原始的特征之上(蓝色部分是从图像上采样过来的特征,橙色部分是原始的初始点云特征),两种类型特征拼接到一起,去做3D检测任务

从流程上来看,a和b的方式都离不开一个映射的过程,也就是利用相机内外参,将3D点换算到2D图像上。但是如果外参计算不好,这也许会导致最终出现问题,同时,如何采样出来的点对应到图像上的特定像素,这个像素是模糊的,这都会导致最终效果不好。

因此,以前的方式,无论是a还是b,都存在一个主次依赖的关系,都从点云出发,但如果点云不准、外参不准,那么后续的检测也就不会准。因此BEVFusion就希望尽可能降低这个主次依赖关系,对点云和图像做一个分别处理,然后再在BEV空间去做融合,

2.主体结构

图像经过编码器得到图像特征,再通过一个转换器将2D变换到3D,再投影到BEV空间上,就得到了图像特征在BEV空间上的表征(Camera BEV Features)。而雷达点云通过一个3D Backbone 得到点云的BEV特征。接下来就需要去做融合了(Fusion Model),利用得到的混合特征去做预测。

Camera Stream

图像流的输入是多视角图像,相同一个2D Backbone提取基础的图像特征,再经过FPN+ADP模块(ADP模块包括上采样、池化、卷积)对多尺度特征做一个融合,得到多尺度图像特征;再通过一个2D->3D转换模块做一个转换,这个转换的过程其实就是对每一个像素位置做一个 深度分布的预测,会预测一系列的离散的深度概率,这个概率会作为一个权重去乘上像素的图像特征,然后每个像素点按照射线去进行特征投影,组成了所谓的3D空间;然后再投影,就可以得到Camera BEV Features了。

Lidar Stream

雷达流的输入是3D雷达点云,经过一个3D Backobone提取点云特征,这里主要使用Point pillar进行点云特征提取,由于点云本身就是3D的,所以只需要做投影或者直接拍扁,就可以将其转换到BEV空间了。

Fusion Model

融合模块输入前面两个得到的BEV空间的图像特征和点云特征,接着按通道级联点云和图像BEV特征,再通过卷积网络提取级联后的特征,之后引入一个Adaptive Feature Selection模块,这其实一种通道注意力,去对通道维度进行了加权,考虑的是哪个通道更重要,是点云上的通道呢还是图象上的通道呢,通过这样一个权重的预测,对通道维度进行一个重新的加权;之后就得到了一个融合后的特征,自然也就可以用来做预测。

二.BEVFusio4D

三.BEVFormer

1.简要介绍

BEV是一个俯视空间,Former做的就是Transformer,这里指的就是使用transformer去做BEV的图像处理,完成后续检测目标。

2.主体结构

首先,输入的图像经过Backbone得到图像特征,将图像特征、History BEV、BEV Queries一起输入到一个结构当中,会得到Current BEV,就可以作为检测头的输入完成后续的检测分割任务。

Temporal Self-attention

时序注意力是考虑到前一帧和当前帧的一个关联,那如何将前一帧的特征引入到当前帧的EBV空间中呢。这里使用的就是一个Deformable Attention,History BEV可以自适应选择哪一个BEV Queries对当前点是有增益的。有了History BEV的引导之后,BEV Queries查询的先验也就会更好。后续,再结合当前提取到的空间特征和已经有很强的BEV先验的Queries,就可以生成更好的BEV Feature。

Spatial Attention

那已经有了提取好的multi-camera feature之后,怎么样生成想要的当前的BEV feature呢。使用空间注意力,利用BEV Queries对multi-camera feature做一个查询,去问一问“你有我这个位置的特征吗”;具体就是将XY先映射到他这个视角下所对应的位置上,通过去找这个位置临近的相邻点的一个特征,去进行一个融合,然后生成他当前视角下需要被融合的特征。后续他把这个多视角全都查询完之后,会生成X'Y'位置上通过multi-camera feature融合好的特征

四.PETR

从名字可以知道,主要就是Position Emebedding Transformer。那么核心设计思路就是位置编码(position emebedding)的设计上。

DETR3D

PETR是一个根据DETR3D改进的一个工作,因此先回顾一下DETR3D。对于输入的多视角图像,采用ResNet+FPN来提取图像特征,得到多尺度图像融合特征;再初始化一系列的Object query,query的主要作用就是随机初始化一些查询向量,用于查询空间中哪里有物体,query通过transformer结构来预测生成3D reference point,有了参考点之后就可以根据相机内外参,将参考点逆投影回图像空间,找到参考点在图象上的位置,进而找到该像素位置对应的特征。通过3种尺度的融合,得到最终的图像特征,进而可以进行预测;而这个过程其实是一个迭代预测的过程,是多次refine的过程,可以不断地得到新的object query,不断地更新预测。DETR3D通过这样一个过程去做3D目标检测任务。

PETR

动机

PETR认为DETR3D中的利用3D参考点来索引图像特征是不合理的,因为如果参考点位置出错了,那么图像特征也就错了,从而导致采样到的图像特征是无效的,同时认为,如果只采用参考点的投影位置得到图像特征来更新query是不够充分的,可能导致模型对于全局特征学习的不够充分。

因此PETR使用3D PE(position emebedding)将多视角的2D图像特征转化为3D感知特征,也就是将2D feature和3D PE结合得到3D感知特征,这也使得query可以在3D语义环境下进行更新,从而省略了来回投影的过程,简化了DETR3D的流程。

主体结构

对于输入的多视角图像,经过Backbone可以得到图像特征,同时3D坐标生成器(3D Coordinates Generator)经过一系列的坐标变换将图像坐标转化为3D空间中的坐标,然后2D图像特征和3D位置坐标同时送到3D位置编码(3D Position Encoder),将3D位置信息融入到2D特征里面,生成一系列的object query,与得到的特征一起去得到预测结果。

3D Coordinates Generator:

3D Position Encoder:

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 HAL库驱动W25QXX Flash

STM32 HAL库驱动W25QXX Flash 1. 概述 W25QXX系列是一种SPI接口的Flash存储器,广泛应用于嵌入式系统中作为数据存储设备。本文档详细介绍了基于STM32 HAL库的W25QXX Flash驱动实现,包括硬件连接、驱动函数实现以及使用示例。 项目源码仓库&#xff1a…

Vivado自定义IP核学习笔记

文章目录【1】创建一个新的IP核【2】实现功能【3】编辑IP核【4】IP封装【5】创建Vivado工程【1】创建一个新的IP核 1.1 打开Vivado->点击【Tasks->Manage IP->New IP Location】->弹出窗口1.2 【Next】->设置IP属性->【Finish】->【OK】 【IP Location】…

【面试】高级开发面试场景题

1、如何保证MySql到ES的数据一致性? 答:ES是一个开元分布式搜索和分析引擎、它提供了全文搜索、结构化搜索分析以及这些组合的能力。 全文搜索能力:ES支持复杂的搜索能力,包括模糊匹配、短语查询、布尔查询等,并且可以快速的返回结果 实时数据分析:实时数据分析,支持对…

《 慢 SQL 分析与 SQL 优化实战指南》

🔍 慢 SQL 分析与 SQL 优化实战指南、 🧠前言 在数据库性能调优中,慢 SQL 是性能瓶颈的常见元凶。 一次慢查询可能会拖垮整个业务线程池,甚至引发锁等待、雪崩效应。 对后端开发与 DBA 而言,快速定位并优化慢 SQL&am…

C#中如何运用JWT用户认证

一、JWT概述JSON Web Token(JWT)是一种轻量级的身份认证机制,广泛应用于分布式系统中的用户认证。它通过紧凑的JSON格式存储用户身份信息,并使用数字签名确保信息的完整性和真实性。与传统的基于Session的认证相比,JWT…

Hibernate 使用详解

在现代的Java开发中,数据持久化是一个至关重要的环节。而在众多持久化框架中,Hibernate以其强大的功能和灵活性,成为了开发者们的首选工具。本文将详细介绍Hibernate的原理、实现过程以及其使用方法,希望能为广大开发者提供一些有…

【图像算法 - 13】基于 YOLO12 与 OpenCV 的实时目标点击跟踪系统(系统介绍 + 源码详细)

基于 YOLO12 与 OpenCV 的实时点击目标跟踪系统 在计算机视觉领域,目标检测与跟踪是两个核心任务。本文将介绍一个结合 YOLO 目标检测模型与 OpenCV 跟踪算法的实时目标跟踪系统,该系统允许用户通过鼠标交互选择特定目标进行持续跟踪,支持多…

【数据库】 MySQL 表的操作详解

在 MySQL 数据库的日常开发与维护中,表的操作是最基础且最常用的部分。本文将从 创建表、查看表结构、修改表 以及 删除表 等方面进行详细讲解,并附上对应的 SQL 语句示例,方便在实际项目中直接应用。一、创建表 1.1 创建表语法 CREATE TABLE…

DiT: Transformer上的扩散模型

论文(ICCV 2023):Scalable Diffusion Models with Transformers 代码和工程网页:https://www.wpeebles.com/DiT.html DiTs(Diffusion Transformers)是首个基于Transformer架构的扩散模型!它在…

MySQL 索引:索引为什么使用 B+树?(详解B树、B+树)

文章目录一、二叉查找树(BST):不平衡二、平衡二叉树(AVL):旋转耗时三、红黑树:树太高由一个例子总结索引的特点基于哈希表实现的哈希索引高效的查找方式:二分查找基于二分查找思想的二叉查找树升级版的BST树:AVL 树四、…

ESP32入门开发·VScode空白项目搭建·点亮一颗LED灯

目录 1. 环境搭建 2. 创建项目 3. 调试相关介绍 4. 代码编写 4.1 包含头文件 4.2 引脚配置 4.3 设置输出电平 4.4 延时函数 4.5 调试 1. 环境搭建 默认已经搭建好环境,如果未搭建好可参考: ESP32入门开发Windows平台下开发环境的搭建…

ONLYOFFICE AI 智能体上线!与编辑器、新的 AI 提供商等进行智能交互

ONLYOFFICE AI 插件​迎来重要更新,带来了新功能和更智能的交互体验。随着 AI 智能体(现为测试版)的上线、带来更多 AI 提供商支持以及其他新功能,AI 插件已经成为功能强大的文档智能助理。 关于 ONLYOFFICE ONLYOFFICE 文档是多…

【C++进阶学习】第十一弹——C++11(上)——右值引用和移动语义

前言: 前面我们已经将C的重点语法讲的大差不差了,但是在C11版本之后,又出来了很多新的语法,其中有一些作用还是非常大的,今天我们就先来学习其中一个很重要的点——右值引用以及它所扩展的移动定义 目录 一、左值引用和…

【IoTDB】363万点/秒写入!IoTDB凭何领跑工业时序数据库赛道?

【作者主页】Francek Chen 【专栏介绍】⌈⌈⌈大数据与数据库应用⌋⌋⌋ 大数据是规模庞大、类型多样且增长迅速的数据集合,需特殊技术处理分析以挖掘价值。数据库作为数据管理的关键工具,具备高效存储、精准查询与安全维护能力。二者紧密结合&#xff0…

IEEE 2025 | 重磅开源!SLAM框架用“法向量+LRU缓存”,将三维重建效率飙升72%!

一、前言 当前研究领域在基于扩散模型的文本到图像生成技术方面取得了显著进展,尤其在视觉条件控制方面。然而,现有方法(如ControlNet)在组合多个视觉条件时存在明显不足,主要表现为独立控制分支在去噪过程中容易引入…

无人机遥控器教练模式技术要点

一、技术要点1.控制权仲裁机制:核心功能:清晰定义主控权归属逻辑(默认为学员,但教练随时可接管)。切换方式:通常通过教练遥控器上的物理开关(瞬时或锁定型)或软件按钮触发。切换逻辑…

【跨服务器的数据自动化下载--安装公钥,免密下载】

跨服务器的数据自动化下载功能介绍:上代码:发现好久没写csdn了,说多了都是泪~~ 以后会更新一些自动化工作的脚本or 小tricks,欢迎交流。分享一个最近在业务上写的较为实用的自动化脚本,可以批量从远端服务器下载指定数…

C++-->stl: list的使用

前言list的认识list是可以在固定时间(O(1))内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中&#xff0…

本地WSL部署接入 whisper + ollama qwen3:14b 总结字幕

1. 实现功能 M4-1 接入 whisper ollama qwen3:14b 总结字幕 自动下载视频元数据如果有字幕,只下载字幕使用 ollama 的 qwen3:14b 对字幕内容进行总结 2.运行效果 source /root/anaconda3/bin/activate ytdlp 🔍 正在提取视频元数据… 📝 正在…

《Linux运维总结:Shell脚本高级特性之变量间接调用》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:Linux运维实战总结 一、变量间接调用 在Shell脚本中,变量间接调用是一种高级特性,它允许你通过另一个变量的值来动态地访问…