首页 > 其他分享 >OccNet 栅格占据网络:重建智能驾驶场景表征

OccNet 栅格占据网络:重建智能驾驶场景表征

时间:2024-04-06 14:34:05浏览次数:29  
标签:检测 Occupancy 栅格 驾驶 点云 表征 OccNet 3D

随着高阶智能驾驶的发展,长尾障碍物感知成为智驾发力的关键点。驾驶场景中常见的行人、车、障碍物,能够通过 3D 物体检测等方式实现其位置、大小的估计。而现实世界城区的交通路况中,还存在海量长尾场景问题:如异形车辆、路上的石子、掉落的树叶等障碍物,以 3D 检测框、点云等传统表征方式已经难以实现精准、细致的检测和识别。我们希望能够找到一种更好的表征方式以描述长尾障碍物:

3D Occupancy 表征形式,以占用的方式重建了周围的 3D 场景,可用于通用物体检测,精准实现 3D 空间中物体的占位情况、语义识别、运动情况等,在表征上更具优势

基于此,我们提出基于 Occupancy 的通用框架,通过预测 3D 空间的占据(occupany)及运动(motion)信息,从而提升智能驾驶感知任务性能。

商汤绝影 x 上海人工智能实验室:多模态通用 Occupancy 网络结构 OccNet

商汤绝影联合上海人工智能实验室提出的多模态通用 Occpancy 网络结构 OccNet。

图片

该网络结构能够支持环视相机和 LiDAR 的单模态输入或联合输入:

1.)OccNet 从输入模态中提取特征,重建 3D 空间表征,从而输出 3D 空间的 occupancy 语义及运动信息。

2.)OccNet 还可直接用于多项智能驾驶任务,如 3D 目标检测、BEV 分割、运动规划等任务。

  • OccNet 效果呈现

栅格占据网络(Occupancy Network)将世界划分为 3D 网络单元,OccNet 通过体素(Voxel)体现单元的占据情况,并预测了每个占据单元包含的语义类别、速度、方向信息。

例如,以右下角 Colorbar 指示障碍物的行驶速度、行驶方向。其十字指针方向代表运动方向,上、下方向分别表示前向、对向行驶,左、右方向为向左、向右行驶。

图片

十字中心的白色体素(占据单元)即表示障碍物状态为静止。随着障碍物的运动速度、运动方向改变,其颜色也随之发生变化。如图中所示,对向行驶的车辆,行驶方向由右转到直行时,其颜色逐渐从黄色变为绿色。

占据单元本身所涵盖的信息较为丰富,因此能够帮助更精细地检测和预测各类障碍物。

  • OccNet 网络结构框架

OccNet 网络结构分为两个阶段,分别是基于 Occupancy Descriptor 的 3D 空间表征,和 Occupancy Descriptor 的下游任务应用。

图片

在第一阶段中,我们使用编码解码的结构来重建 Occupancy Descriptor。

1.)LiDAR 输入处理:首先进行 3D 点云的体素化(voxelize),然后通过 Voxel Encoder 编码点云的特征。

2.)环视相机输入处理:在 BEV 下提取图像特征,再使用级联式的 Voxel 解码器逐渐恢复特征的高度信息。在 Encoder-Decoder 模块中,我们会使用时序和空间注意力机制学习特征结构,从而构建鲁棒的 3D 特征表示,用于下游任务。

在第二阶段,Occupancy Descriptor 可以接多个轻量级的 head 用于不同的智驾任务:根据 Occupancy 的场景补全任务,用 MLP 结构直接预测 3D 空间每个占用栅格(Grid)的语义,及运动信息(motion)。

图片

  • Occupancy 数据集构建

我们基于 LiDAR segmentation 和 3D box occupancy 数据生成方案,构建了高质量、稠密的 Occupancy 数据集。除此以外,我们还引入自动驾驶公开数据集 nuScenes,搭建 OpenOcc Benchmark 数据集,并结合商汤绝影的智能驾驶业务场景,搭建了业务 Occupancy Benchmark。

图片

为了生成稠密的场景表示,并处理场景中的运动物体,需采用多帧点云累积前景-背景解耦的方式来生成 Occupancy 数据:

1.)单帧点云处理:以 LiDAR Segmentation3D box 将点云分解为静态的背景点云物体点云

2.)点云累积及标签生成:在世界坐标系中,对静态的背景点云进行累积。在物体坐标系中,累积物体点云,以生成稠密的背景点云和物体点云。将稠密点云进行体素化处理,以投票法确定每个体素的点云类别,随后对其进一步优化:通过填充孔洞等方式,生成高质量的 Occupancy 数据。

3.)前景 Occupancy 处理:赋予每个体素(voxel) 速度信息,用于后续的 occupancy motion 任务。

OccNet :全面的任务处理能力,不规则障碍物检测效果亮眼

  • Occupancy 预测任务

Occupancy 可直接应用于 3D 语义场景补全,实现 3D 空间的重建。在该任务中,我们将 OccNet 与 BEVDet、BEVDepth、TPVFormer 等方案进行了对比,在 mIoU、几何 IoU 等各类指标上均大幅领先其他方案

图片

OccNet 与 BEVDet、BEVDepth、TPVFormer 等方案对比

图片

OccNet 与 TPVFormer 的检测效果对比

  • 基于 Occupancy 的 3D 检测

在 Occupancy 预测任务中,我们可以定位前景物体以及背景元素的空间位置,重建出周围的 3D 场景,也意味着 Occupancy 可以用来提升 3D 检测任务的性能。

我们在 nuScenes 数据集上分别研究了 Occupancy 在多任务训练预训练任务中的作用。联合训练 3D 检测和 Occupancy 预测可以将 3D 检测 mAP 和 DNS 提升 10%-20% 。相比于基于 FCOS3D 的预训练,基于 Occupancy 的预训练模型可以大幅提升检测性能。

图片

基于Occupancy与基于FCOS3D的预训练对检测任务的影响

  • 不规则障碍物检测能力

智能驾驶场景中的不规则前景物体难以用传统的 3D 框来表示,如:工程车和背景物体、交通灯等。通过 Occupancy 占位,能够更加精确的描述这些不规则物体,从而实现通用障碍物的检测。

图片

如下图,如果以 3D 检测框对图中非常规姿态的行人(抱着方形木板行走)进行检测,会导致检测失效。而 Occupancy 因其占位的特征表达形式,也能够精准地检测出其行进方向和速度

图片

多模态 Occupancy 自动驾驶大模型探索之路

过去几年来,我们深入探索了 Occupancy 在智能驾驶任务中的应用潜力,基于学术数据集和业务数据集搭建了Occupancy benchmark 来系统研究 occupancy,并验证了 OccNet 网络结构框架的有效性:Occupancy 通过通用的表征形式来重建自动驾驶场景,能够实现感知和运动规划等自动驾驶下游任务。

相比于 BEV 感知的方案,Occupancy 显示了更加优越的性能,但 3D 的表征形式需要更大的算力成本,同时其数据集应用依赖于标注。

未来,我们希望能够基于大模型进一步探索开集检测问题,挖掘 Occupancy 在未知物体检测上的潜力,以应对自动驾驶的开放式场景。

同时,我们将深度结合 Occupancy 和大语言模型,探索基于多模态 Occupancy 的自动驾驶大模型,来提供更加通用的智能驾驶解决方案。

 

论文及相关代码链接见:

[1] https://arxiv.org/abs/2306.02851

[2] https://github.com/OpenDriveLab/OccNet

[3] https://github.com/OpenDriveLab/OpenScene

标签:检测,Occupancy,栅格,驾驶,点云,表征,OccNet,3D
From: https://blog.csdn.net/Evelynnzhao/article/details/137427941

相关文章

  • GEE C22-23 探索矢量、栅格/矢量转换(part5)
     Part1探索矢量一、在GEE中使用几何工具创建要素 二、加载现有的特征和特征集合在地球varroi=table;//vartiger=ee.FeatureCollection('TIGER/2010/Blocks');//Addthenewfeaturecollectiontothemap,butdonotdisplay.Map.addLayer(roi,{'color'......
  • 栅格地图路径规划:基于霸王龙优化算法(Tyrannosaurus optimization,TROA)的机器人路径规划
     一、机器人路径规划介绍移动机器人(Mobilerobot,MR)的路径规划是移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大......
  • 栅格地图路径规划:基于螳螂搜索算法(Mantis Search Algorithm,MSA)的机器人路径规划(提供MA
        一、机器人路径规划介绍移动机器人(Mobilerobot,MR)的路径规划是移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人......
  • 【数据分享】2008-2022年全国范围逐日NO2栅格数据
    空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000-2022年全国范围逐日的PM2.5栅格数据、2013-2022年全国范围逐日SO2栅格数据、2000-2022年全国范围逐日PM10栅格数据、2013-2022年全国范围逐日CO栅格数据和2000-2022年全国1km分辨率的逐日O3栅格数据(可查......
  • TimesURL: 用于通用时间序列表征学习的自监督对比学习《TimesURL: Self-supervised Co
    2024年3月18日,最近有点忙,但是这周四周五都要汇报,不想往后推了,早汇报完早结束,硬着头皮先看这一篇,这篇年前就说要看,还保存了书签,但是一直没看,今天趁着中午的时间看一下。(现在14:01,开始看,我的草稿箱里躺着的18篇草稿,Sorry,以后有空再填坑.)论文:TimesURL:Self-supervisedContrasti......
  • Eplan插件 - 修改全局栅格
    前言在工作中,经常使用到窗口宏,尤其是在驱动器比较多的时候,可能一连几十页都是伺服驱动器,但是由于窗口宏是从其他地方获取而来。而窗口宏的制作者使用了过大或过小的栅格就会出现画图连接不齐的情况,那么就需要手动修改栅格的大小。在Eplan中默认修改的是当前页面的栅格。在页数很......
  • python做了一个极简的栅格地图行走机器人,到底能干啥?[第五弹]——解锁蒙特卡洛定位功能
    目录1、前言2、增加的功能3、主要算法python实现3.1定义一个地图和固定标签3.2定义一个粒子3.3定义一个粒子管理类3.4定义粒子运动模型3.5定义观测模型3.6定义权重计算3.6更新粒子重采样4总结5、python源码1、前言在现代科技的普及下,人们对于机器人的兴趣与期待日......
  • Bootstrap5(display显示、flex布局相关属性、浮动、定位、文本、栅格系统)
    类中缀的设置技巧1.当多个连续品目使用一个样式时,则给最小的设置即可。比如:大屏以上内边距都是3:p-lh-32.超小屏不设置类中缀的样式比如超小屏内边距时1,小屏内边距时2,中屏及以上内边距是3p-1p-sm-2p-md-3display显示使用display属性,可以改变元素的展示效果.d-none......
  • Mapbox实战项目(1)-栅格图片图层实现地图方位展示
    需求背景需要实现地图上展示一个类似于罗盘的标记,随着地图的缩放、切换、旋转等,能够在地图的中央指示出地图的方位。系统自带的方位控件太小,在特殊业务场景下不够醒目。技术选型Mapbox实现分析官网已经有地图上展示图片矢量图层的demo,“Addarasterimagetoamaplayer......
  • C++ GDAL用CreateCopy()新建栅格并修改波段的个数
      本文介绍基于C++语言GDAL库,为CreateCopy()函数创建的栅格图像添加更多波段的方法。  在C++语言的GDAL库中,我们可以基于CreateCopy()函数与Create()函数创建新的栅格图像文件。其中,CreateCopy()函数需要基于一个已有的栅格图像文件作为模板,将模板文件的各项属性信息(例如空间......