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

智能驾驶感知算法任务简介

智能驾驶感知模块可以根据目标的属性和环境信息,分为三类关键任务:动态感知任务、静态结构感知任务和可通行区域(Freespace)感知任务。本文将结合 BEVFormer、MapTR 和 Occupancy Prediction 三个算法,简单介绍一下他们,如果有不正确的地方,欢迎评论。

一、动态感知任务:BEVFormer

1.1 任务简介

动态任务关注的是 检测和跟踪场景中运动物体 ,如行人、车辆、自行车等。核心目标是预测这些目标的 三维空间位置、尺寸、速度和朝向 ,为路径规划与决策系统提供实时支持。

1.2 核心算法

BEVFormer 是近年来领先的 3D 感知框架之一,提出了一种融合 Bird’s Eye View(BEV)视角和 Transformer 架构 的感知方式。它利用多摄像头输入构建 BEV 表征,并结合时序特征做运动物体感知。

BEV 是什么?

BEV(Bird’s Eye View,俯视图) 是一种以“从天而降”的视角查看场景的表示方式。相较于图像原始视角(front-view),BEV 将感知信息映射到地面平面,使得空间关系更直观:

  • 每个像素表示地面上一个固定区域(如 0.5m × 0.5m);
  • BEV 具有固定分辨率和尺度,便于与规划、控制模块对接;
  • 动态物体不会因远近发生比例变化,便于稳定检测和跟踪。

BEVFormer 架构简介

  1. 图像编码:使用 ResNet+FPN 的 backbone+neck 结构提取多视角图像特征;
  2. Lift 操作:将图像特征结合深度预测“抬升”(lift)到三维空间中;
  3. Splat 投影:将三维点投影到 BEV 平面网格,聚合形成 BEV 特征图;
  4. 时序建模:引入前几帧 BEV 特征,使用 temporal attention 模块进行时序对齐;
  5. 目标检测解码器:采用 learnable query,预测 3D 物体框及其类别。

Lift(抬升)

在感知任务中,模型经常需要将图像信息“映射”到三维空间中。这一过程称为 Lift(抬升),可以实现实现 2D → 3D 映射,统一多个视角的感知结果。具体来说:

  • 每个像素在原始图像中只提供 2D 信息(x, y),没有深度;
  • 利用深度估计(或相机投影矩阵)推测该像素在 3D 空间中的位置;
  • 所有 3D 点再“划分”为离散的三维网格(Voxel Grid),以统一尺度处理。

3D 物体框表示形式

BEVFormer 输出的 3D BBox 通常以 [x, y, z, dx, dy, dz, θ] 表示:

  • (x, y, z):中心坐标;
  • (dx, dy, dz):尺寸;
  • θ:朝向角。

二、静态建图任务:MapTR

2.1 任务简介

静态感知任务主要关注场景中静态结构物体,包括车道线、道路边界、停止线等。这类信息对地图构建、定位、行为规划等很重要。

2.2 核心算法

MapTR 是一种矢量建图方法,首次在 Transformer 框架中实现了 Polyline 格式的地图元素生成。与传统的栅格输出不同,MapTR 直接输出点序列形式的几何结构,精度更高。

Polyline 是什么?

Polyline 是一条折线,由一系列顺序连接的点组成,常用于表示线型元素:车道线、道路边界、路沿、箭头、停止线等。

通常每条 polyline 表示为点集 [p1, p2, …, pn],每个点为 (x, y) 或 (x, y, attr)(带语义)。

MapTR 架构简介

  1. 图像特征提取:使用 CNN + Transformer 提取多摄像头图像特征;
  2. BEV 表征生成:将图像 lift 到 3D 后,splat 投影为 BEV 特征;(前两步和动态感知任务那儿一样)
  3. 结构化 Query 解码:
    • 每个 query 对应一条 polyline;
    • 生成起点后,通过自回归方式生成后续点序列;
  4. 多类别建图:支持同时预测多类地图元素,如 divider(车道之间的分隔线)、boundary(道路边界)、arrow(导向箭头)、stopline(停止线) 等。

三、Freespace 感知任务:Occupancy Prediction

3.1 任务简介

Freespace 任务旨在预测环境中可通行区域与障碍物位置。通过对周围三维空间进行体素划分,输出每个 voxel(体素)的占用状态。

3.2 核心算法

Occupancy 模型通常采用图像或点云输入,结合深度估计和 3D 重建,生成 Occupancy Grid,即空间占用网格。

什么是 Occupancy Grid?

Occupancy Grid 是将三维空间离散为等间距的体素格(voxel),每个 voxel 包含一个数值表示其被占用的概率:

  • 值为 0:free 空间;
  • 值为 1:确定被障碍物占据;
  • 值介于两者之间:存在不确定性。

典型输出维度为 [B, C, X, Y, Z],其中 B 为 batch size,C 为类别数或 occupancy 状态数,X、Y、Z 表示 3D 空间上的 voxel 网格。

对这里的 C 再展开聊一下:

C = 1(单通道概率)

  • 表示每个 voxel 的被占概率,即该 voxel 被物体占据的概率;
  • 输出经过 sigmoid 激活函数,将值映射到 0,1;
  • 值越接近 1 → 越确定被物体占据;接近 0 → 自由空间。
# 示例:输出为 [B, 1, X, Y, Z],经过 sigmoid 得到概率
occupancy_logits = model(input)
occupancy_probs = torch.sigmoid(occupancy_logits)

C > 1(多通道分类概率)

  • 每个 voxel 是一个多分类问题,比如:
    • 通道 0:free
    • 通道 1:occupied
    • 通道 2:unknown 或 uncertain
  • 输出经过 softmax,每个 voxel 的 3 个类别概率和为 1:
# 示例:输出为 [B, 3, X, Y, Z],对 C=3 维度做 softmax
occupancy_logits = model(input)
occupancy_probs = torch.softmax(occupancy_logits, dim=1)# occupied 概率提取
occupied_prob = occupancy_probs[:, 1, ...]

也可以引入语义标签,将空间分为:

  • drivable(可通行区域);
  • static obstacle(建筑物、护栏);
  • dynamic obstacle(行人、车);
  • unknown(不确定区域)。

四、总结

看下图有个感觉即可:

签,将空间分为:

  • drivable(可通行区域);
  • static obstacle(建筑物、护栏);
  • dynamic obstacle(行人、车);
  • unknown(不确定区域)。

四、总结

看下图有个感觉即可:

在这里插入图片描述

相关文章:

  • 2025年渗透测试面试题总结-匿名[校招]安全工程师(甲方)(题目+回答)
  • Vim 中设置插入模式下输入中文
  • 【烧脑算法】定长滑动窗口:算法题中的“窗口”智慧
  • 大模型在先天性肌性斜颈诊疗全流程中的应用研究报告
  • 【25-cv-00656】Whitewood律所代理Olga Drozdova 蝴蝶版权图维权案
  • 深入详解(0020,0052) Frame of Reference UID在序列空间定位中的定义与作用
  • 系统赛数据库的一些记录
  • 文件上传之图片马文件头绕过(upload-labs通关笔记-第14关)
  • 使用 find 遍历软链接目录时,为什么必须加 -L
  • 怎样将win11+ubuntu双系统的ubuntu从机械硬盘迁移至固态硬盘(1)
  • Vue.js教学第十七章:Vue 与后端交互(一),Axios 基础
  • 图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
  • 关于Web安全:7. WebShell 管理与持久化后门
  • 彰显国产力量|暴雨亮相2025 C3安全峰会
  • ipv6与p2p的关系
  • RuoYi前后端分离框架将前端dist资源集成到Jar包中独立部署
  • 【HALCON】 深入解析 select_gray 算子
  • 紫光闪芯发布企业级E5200PCIe 5.0 企业级固态硬盘
  • 如何在python3.8环境中安装pytorch
  • 数据库-算法学习C++(入门)
  • 汽车网站模板下载/广告制作公司
  • 秦皇岛黄金海岸收费吗/青岛百度关键词优化
  • 娄底网站seo/电商培训班一般多少钱一个月
  • 网站开发好公司/长春网站建设 4435
  • 测速网站怎么做/专业软文平台
  • 哪里有网站开发公司/网站关键词优化办法