当前位置: 首页 > news >正文

觉非科技数据闭环系列 | BEV感知研发实践

随着自动驾驶迈向量产场景,“BEV感知+数据闭环”已成为新一代自动驾驶量产系统的核心架构。数据成为了至关重要的技术驱动力,发挥数据闭环的飞轮效应或将成为下半场从1到N的胜负关键。

觉非科技在此方面已进行了大量的研究工作,并在实际量产项目中开始了部分技术的应用。结合这些实践的经验,觉非科技感知算法专家戚玉涵博士近期在「生成式AI热潮下的自动驾驶」技术论坛中进行了分享,系统介绍了觉非科技“BEV感知+数据闭环”技术架构与研发进展。

一.觉非科技的数据闭环

Fig.1觉非基于BEV感知的量产架构图

  • 觉非科技利用离线高精地图生成静态要素真值数据,用于训练基于BEV的静态要素感知模型;将模型部署于车端,实时推理时产生静态要素的栅格图结果并上传云端,在云端对栅格图进行SLAM拼接以及矢量化等后处理,通过量产化制图能力产生大规模的高精度地图数据库,进而实现静态要素的数据闭环。
  • 觉非构建的大数据中心可实现快速不断的迭代,供给生成BEV感知算法的训练数据。觉非BEV感知任务包括三个部分:动态目标的3D检测与跟踪、静态要素的分割、以及静态要素的拓扑结构矢量图。

觉非的采集车配备7V相机(其中,采集车前向安装一台长焦相机,主要用于感知远距离目标),以及一台128线束的激光雷达。目前依赖点云检测来生成视觉BEV 3D动态目标感知的真值数据,其高度依赖于高精度的传感器标定和时空同步。

Fig.2相机软件触发与硬件触发数采方式下,训练模型BEV 3D感知效果对比图

上图:相机软件触发方式采集训练数据的BEV 3D模型推理结果

下图:相机根据LiDAR相位角触发方式采集训练数据的BEV 3D模型推理结果

为此,觉非科技自研了基于高精地图的点云与相机的外参标定技术,同时依靠自研GNSS授时和根据LiDAR相位角硬件触发相机采集的同步板卡,对激光雷达和相机进行硬件同步,保证了BEV动态目标3D感知结果的位置精度。

二.觉非科技对BEV感知算法的优化方式

觉非BEV多任务联合感知算法的框架中,先将车周环视相机的图像接入BEV编码器,其结构包括backbone与neck,用于较好地提取图像特征;经视角变换模块得到稠密的BEV特征,与缓存的历史帧BEV特征一起送入时序融合模块,进行时序BEV特征聚合,时序融合能够提高被遮挡的动态目标的召回率,且提高视觉感知方式下目标速度的检测精度。

针对不同的感知任务,由BEV feature sampler设定不同的感知范围和BEV网格的粒度,对采样后的BEV特征进行解码和task head,得到最终动态目标3D检测和静态要素栅格图语义分割结果。

Fig.3觉非BEV多任务联合感知模型框架图

在算法持续迭代的进程中,觉非的主要优化方向包含几个方面:

1.视角转化(view transform)

目前学界在视角转换上存在很多范式,主流的方法主要包括LSS、MLP、Transformer

等。在考虑部署的便利性以及硬件平台对算子的支持等因素后,觉非选用的是LSS范式。

LSS范式下,视角变换模块利用depthnet网络输出两组信息,一是每一个像素点对应的图像上下文语义特征,其次是每个像素点上预测的深度分布,两路信息进行外积后可得出各个相机的视锥体(frustum)中每个像素点的上下文特征信息,从而实现2D到3D的提升。视角变换模块在工程化部署的方式上有两种方式:

Fig.4觉非视角转化模块

  • 对于Nvidia的芯片,对每个像素点的上下文语义特征与估计得到的深度分布权重和进行外积实现Lifting,得到描述各个相机视锥体特征的到五维向量(B*N,c,d,h,w),而后根据相机参数将各个相机视锥体的特征splat到BEV视角下,可调用英伟达CUDA Kernal的多线程做并行加速来实现BEV的Pooling,得到聚合后的稠密BEV特征。
  • 对于地平线J5芯片,根据车机视觉模组内外参数可预先计算出视锥体中每一个像素点与BEV网格唯一的哈希映射关系,而后在BEV网格进行特征聚合时,根据预设好的映射关系通过视锥体中像素点的索引值分别提取上下文特征和深度值进行相乘,所有BEV网格内的特征进行张量的求和,从而实现特征聚合。

BEV pooling过程中的预先计算视锥点与BEV网格,可以在节约推理耗时,保证了模型在车端部署的实时性。例如,在实际落地实践中,觉非的BEV 3D感知可实现自车前后80米、左右40米范围,哈希映射计算前置与BEV pooling的并行加速节约耗时可达到16毫秒。

2.相机视椎体切割(Camera Frustum Cutting)

在BEV pooling环节中,可以根据预设的感知范围对参与BEV特征聚合的各个相机的视锥体进行裁剪,仅保留BEV感知范围内的视锥点参与特征聚合,可以节约参与BEV pooling的计算量。

3.远距离感知(Long-distance Perception Range)

学界在BEV 3D感知上一般可实现车周半径51.2m(nuScenes数据集),或是75m(waymo数据集),而在真实的量产实践中,感知范围远远不能满足下游规划控制的需求。

觉非科技的BEV感知方案中,除6v环视相机以外,在自车前视方向增加了1台长焦相机,可以感知远距离的目标;同时设计了一种非均匀粒度分布的BEV网格,在扩大BEV感知范围的同时,不额外增加过多的网格数量和模型计算量;同时引入点云数据对相机视锥点深度估计的显式监督,能保证模型对远距离动态目标的召回与较为精确的空间位置。

4.BEV坐标样本BEV Grid Sampler

觉非的BEV感知为多任务联合训练模型,感知任务包含对动态目标的3D检测与跟踪,静态要素的语义分割。其中静态要素的语义分割任务中,高分辨率的BEV特征是保证地面要素检测精度的前提。

因此在模型的设置上,觉非加入了BEV Grid Sampler模块,在对BEV特征解码前,该模块根据设定的地面要素感知的范围,对稠密BEV特征进行裁剪,并利用双线性差值方式对BEV特征上采样还原得到高精度、精细化的BEV特征。

Fig.5 BEV网格采样器示意图

在联合训练的过程中,为避免同时训练不同任务对各个子任务性能的负面影响(一般称为:负迁移),觉非的联合训练模型中对不同的感知子任务设计了独立解码器,在解码过程中,各任务不共享BN(Batch Normalization)层的参数,可提升联合训练模型的稳定性并降低负迁移的影响。

Fig.6多任务联合训练策略

5.基于MapTR的创新与优化

在车端与路端大规模数据积累的基础上,觉非基于MapTR提出了相应创新优化,其中包括:

①对车道信息的表达方式进行优化,采用车道中心线进行表征并加入道路拓扑要素的建模;

②在不额外增加解码器query数量的基础上,通过回归车道宽度的方式还原车道标线的几何位置;

③学习车道线的虚实信息,可用于变道时判断旁边车道是否可以跨越;

④加入车道方向信息的学习,用于区分自车车道与对向车道;

⑤在MapTR的基础上加入了地图先验信息,有效提升模型输出地图元素的准确度与召回率。觉非对MapTR的创新能够系统化提升单车实时建图的能力,更易于自动驾驶规控使用。

Fig.7在线矢量化地图构建

目前觉非科技正在对“BEV感知+数据闭环”进行持续的优化,通过数据与算法的自研经验,以及在数据闭环搭建过程中大量的Know-How积累,为开发和迭代提供一套高效的工具链,并提升模型的泛化能力,在自动驾驶「数据驱动」的时代,推动数据闭环在量产车不断落地。

相关文章:

觉非科技数据闭环系列 | BEV感知研发实践

随着自动驾驶迈向量产场景,“BEV感知数据闭环”已成为新一代自动驾驶量产系统的核心架构。数据成为了至关重要的技术驱动力,发挥数据闭环的飞轮效应或将成为下半场从1到N的胜负关键。 觉非科技在此方面已进行了大量的研究工作,并在实际量产项…...

程序员情绪把控

文章目录 建议情绪 建议 保持稳定的情绪在工作中非常重要,以下是一些建议: 自我意识:保持对自己情绪的觉察和理解,了解自己的情绪状态和触发情绪的因素。通过自我反省和观察,你可以更好地管理和调节情绪。 健康生活方…...

弱监督目标检测:ALWOD: Active Learning for Weakly-Supervised Object Detection

论文作者:Yuting Wang,Velibor Ilic,Jiatong Li,Branislav Kisacanin,Vladimir Pavlovic 作者单位:Rutgers University;The Institute for Artificial Intelligence Research and Development of Serbia;Nvidia Corporation 论文链接:http:…...

驱动开发 day3

总结:自动创建设备节点udev的流程 1.如何创建节点 手动创建:mknod 地址 设备文件类型 主设备号 次设备号(0 - 255) 自动创建:devfs (创建节点的逻辑在内核 ---> 2.4版本以前使用) udev (创建节点的逻辑在应用层) mdev (轻量级的udev) 2.…...

许可license分析 第一章

许可分析是指对软件许可证进行详细的分析和评估,以了解组织内部对软件许可的需求和使用情况。通过许可分析,可以帮助组织更好地管理和优化软件许可证的使用。以下是一些可能的许可分析方法和步骤: 收集许可证信息:首先&#xff0c…...

Goby 漏洞发布|管家婆订货易在线商城 SelectImage.aspx 文件上传漏洞

漏洞名称:管家婆订货易在线商城 SelectImage.aspx 文件上传漏洞 English Name: GJP SelectImage.aspx file upload vulnerability CVSS core: 9.8 影响资产数:2617 漏洞描述: 任我行率先针对中小企业推出了管家婆进销存、财务…...

Android屏幕录制

这里使用Java语言编写实现&#xff0c;完整代码如下&#xff1a; 文件 AndroidMainfest.xml 的主要配置 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"…...

实在智能牵手埃林哲,“TARS-RPA-Agent+云时通”双剑合璧共推企业数字化转型

近日&#xff0c;《数字中国建设整体布局规划》进一步明确了数字化发展的方向和节奏&#xff0c;对企业数字化建设提出了新要求。回看过去几十年&#xff0c;信息化建设如火如荼&#xff0c;各类IT系统如雨后春笋般涌现&#xff0c;系统的自动化操作及系统间数据交互共享等需求…...

拥有这个中文版CustomGPT,你也能定制自己的AI问答机器人

人工智能技术的快速发展为各行各业带来了前所未有的机会&#xff0c;其中之一就是定制化的问答机器人。这些机器人可以用于客户支持、知识管理、虚拟助手等多个领域&#xff0c;帮助企业提高效率&#xff0c;提供更好的用户体验。很多人可能都知道通过CustomGPT能够设计自己的人…...

fastadmin 基本使用配置

fastadmin 版本 1.3.5 thinkphp 版本 5.0.25 配置 cache 为 redis 保存 // ---------------------------------------------------------------------- // | 缓存设置 // ---------------------------------------------------------------------- cache …...

netty 线程组

我们的bossgroup和workgroup都是使用的NioEventLoopGroup。其内部有一个EventExecutor类型的数组用来存储所有的线程组。 NioEventLoopGroup {EventExecutor[] children; }NioEventLoopGroup继承自MultithreadEventExecutorGroup&#xff0c;构造函数不指定线程数默认会根据系…...

Reactor 第十二篇 WebFlux集成PostgreSQL

1 引言 在现代的应用开发中&#xff0c;数据库是存储和管理数据的关键组件。PostgreSQL 是一种强大的开源关系型数据库&#xff0c;而 WebFlux 是 Spring 框架提供的响应式编程模型。本文将介绍如何使用 Reactor 和 WebFlux 集成 PostgreSQL&#xff0c;实现响应式的数据库访问…...

红队打靶:Me and My Girlfriend打靶思路详解(vulnhub)

目录 写在开头 第一步&#xff1a;主机发现和端口扫描 第二步&#xff1a;Web渗透&#xff08;修改XFF代理&#xff09; 第三步&#xff1a;数据库手工枚举 第四步&#xff1a;sudo php提权 总结与思考 写在开头 本篇博客在自己的理解之上根据大佬红队笔记的视频进行…...

Mysql高级——索引(2)

常见索引 索引分类 在MySQL数据库&#xff0c;将索引的具体类型主要分为以下几类&#xff1a;主键索引、唯一索引、常规索引、全文索引。 分类含义特点关键字主键索引针对于表中主键创建的索引默认自动创建, 只能有一个PRIMARY唯一索引避免同一个表中某数据列中的值重复可以…...

【史上最硬核分享】Docker+jenkinsPipeline 运行实现 python 自动化(超详细)

一、实现思路 在 Linux 服务器安装 docker创建 jenkins 容器jenkins 中创建 pipeline 项目根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)运行新的 python 容器&#xff0c;执行 jenkins 从仓库中拉下来的自动化项目执行完成之后删除容器 二、环境准备 Linu…...

leetcode 3. 无重复字符的最长子串

2023.9.15 本题我用的暴力双层for循环 unordered_set 解决的&#xff0c;外循环控制字符起始位置&#xff0c;内循环将字符放入 unordered_set&#xff0c;并查找有无重复的元素。 用了一个全局变量记录最长字串的长度&#xff0c;局部变量count记录当前层循环的最长子串长度…...

doccano 文本标注工具使用

最近在做面向大模型的文本标注工作&#xff0c;涉及到多人协同的问题&#xff0c;因此用到了doccano工具。 这个工具可以使用docker进行安装&#xff0c;安装之后的启动也都比较简单。 关于基础使用&#xff08;例如管理员登录、新建任务、上传数据集等&#xff09;&#xff…...

快速排序算法的递归和非递归

基本思路 选择一个基准值&#xff0c;将数组划分三个区域&#xff0c;小于基准值的区域位于左侧&#xff0c;等于基准值的区域位于中间&#xff0c;大于基准值的区域位于右侧。将大于和小于区域继续进行分区&#xff0c;周而复始&#xff0c;不断进行分区和交换&#xff0c;直…...

Maven无法拉取SNAPSHOT依赖的解决办法

背景 自己所在的部门主要是为其他项目组提供基础组件&#xff0c;如果需要使用新特性&#xff0c;其他项目组还会经常引用SNAPSHOT版本的组件进行开发测试。平时自己做测试的时候&#xff0c;因为手里有源码&#xff0c;所以每次都是先执行 mvn install 在本地安装后&#xff…...

day16-面向对象综合练习(上)

1. 设计游戏的目的 锻炼逻辑思维能力利用Java的图形化界面&#xff0c;写一个项目&#xff0c;知道前面学习的知识点在实际开发中的应用场景 2. 游戏的最终效果呈现 Hello&#xff0c;各位同学大家好。今天&#xff0c;我们要写一个非常有意思的小游戏 —《拼图小游戏》 我们…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...