自动驾驶---Perception之Occupancy

news2024/9/21 2:33:44

1 背景

        在阐述Occupancy之前,先理解为什么要使用Occupancy?

        如果自动驾驶车辆在行驶过程中看到的物体不是数据集的一部分,这个时候容易出现误判。
而在基于激光雷达的系统中,由于检测到点云,可以确定障碍物的存在,但是在相机系统中,必须首先使用神经网络检测物体,仅凭这一点就可能会造成不少事故。

f1bc8621485d43baaa795fc82f4a4755.png

        注意上图中列出的几个问题:

  • 对水平线上的深度非常敏感,只有2个左右的像素决定了一个大区域的深度。
  • 不可能透过遮挡物进行检测,也不可能驶过车辆。
  • 所提供的结构是二维的,但世界是三维的。
  • 对于悬挂的障碍物,通常会进行分类,然后设置成固定的矩形障碍物。
  • 可能存在裂缝、坑等非标注的场景,无法检测。

2 Occupancy Network介绍

2.1 概念及特点

        自动驾驶感知的OCC技术,即Occupancy Network(占用网络)技术,是自动驾驶领域中的一项重要技术,尤其在“纯视觉”自动驾驶方案中占据核心地位。以下是对OCC技术的详细介绍:

(1)定义与原理

  • 定义:OCC技术是一种基于深度学习的三维重建方法,它以多视角相机为核心,生成Bird's Eye View(BEV,鸟瞰图)特征,并通过级联结构和时间体素解码器重建,生成3D占用特征。
  • 原理:OCC技术通过产生3D体素,并与3D重建体素(通常由Nerf离线训练得到)进行比较,实现感知识别。这种技术能够精确地识别和定位道路上的各种障碍物,为驾驶者提供精准的驾驶辅助信息。

(2)技术特点

  • 高精度:OCC技术能够对障碍物进行3D精细刻画,模型精度可达厘米级。
  • 高速度识别精度:对于运动障碍物的速度识别精度能达到0.1米/秒误差范围,提升了车辆对动态环境的适应能力。
  • 多模态融合:OCC感知模型可以实现摄像头数据和其它传感器数据(毫米波雷达或者机关雷达)的融合,提取道路环境中的各种特征,实现更全面的环境感知。
  • 实时性与鲁棒性:基于Transformer架构和多模态融合技术,OCC感知模型具有强大的实时性和鲁棒性,能够应对复杂道路环境和各种天气条件。

(3)应用场景

  • 城市道路:识别道路上的车辆、行人、交通标志牌等障碍物,并制定合理的避让策略。
  • 高速公路:识别道路上的车辆、障碍物以及道路施工区域,保证车辆的安全行驶。
  • 复杂环境:应对雨雪天气、隧道、夜间等复杂环境,确保车辆的安全行驶。

(4)竞争与优势

  • 与激光雷达的竞争:与激光雷达相比,OCC技术依赖的摄像头成本更低,易于安装和维护。同时,摄像头可以实现更高的分辨率和更广的视野,对于特殊路况的处理也更加准确。
  • 作为激光雷达的迭代方案:纯视觉方案可以在行驶过程中不断学习和优化,提高其自动驾驶的性能,成为激光雷达的有力迭代方案。

2.2 详细介绍

(1)基本原理

        占用网络是一种不同的算法,基于机器人的思想命名为占用网格映射;它包括将世界划分为一个网格单元,然后定义哪个单元被占用,哪个单元是安全的(有点像三维的grid map)。

        首先,Occupancy Network的工作原理是将来自多视图图像的输入数据转换为一个三维特征空间。然后,它使用深度神经网络来学习这个特征空间中的占用概率。最后,Occupancy Network将这些占用概率转换为一个三维占用网格,这个网格可以精确地表示车辆周围环境中的障碍物和其它元素。

165f08a549c1408c950b8dbb246422a3.png

        参照下图所示,整个Occupancy的过程如下描述(参考特斯拉公布的方案):

  • 首先,摄像头数据被发送到由Regnets和BiFPN组成的主干网。
  • 然后,注意力机制模块进行位置图像编码(这里起始就是Transformer神经网络),并使用关键字、值和固定查询(汽车与非汽车、公共汽车与非公共汽车、交通标志与非交通标志)来生成占用特征量。
  • 接着产生了一个占用特征体,然后将其与之前的占用体(t-1、t-2等)融合,以获得4D占用网格。
  • 最后,使用去卷积来检索原始大小,并获得两个输出:占用体和占用流。

d5bd211eb5d442aa9e257cc5453263ca.png

(2)Occupancy Flow

        占用体比较容易理解,占用流似乎不是那么容易理解,这里其实也涉及到预测的概念了,一辆车在摄像头视频数据里的移动,是如何体现到像素的变化里。

        为了做到这一点,使用了“光流”的技术。如果熟悉传统的计算机视觉,不少读者应该知道“光流”是什么意思。但其它领域的人(包括笔者)对这个概念不是很清晰,上网搜索了一番。
        光流是像素在时间上的运动。它可以通过传统方法或深度学习技术进行计算。得益于光流,可以使用该运动创建flow MAPS,描述每个像素在时间上的运动。流图的一个例子,每种颜色代表一个“方向”。

2c2d453ce23947128d60c21fa8c1abd2.png

        在分割图之后,对图像的每个像素进行分类,即深度图,它拍摄两个立体图像,并找到每个像素的深度。以两个连续的图像作为输入,可以得到运动矢量。

2221712c81b24880867491006a0ec489.png

        最终呈现的效果如下(红色:向前,蓝色:向后,灰色:静止,等等)。

2261115d654f4436991e6ef27e03d290.png

(3)NeRFs

        NeRFs,即神经辐射场(Neural Radiance Fields),是一种先进的人工智能技术,用于从一组二维图像中重建和渲染三维场景。这种技术可以学习场景的几何形状、物体和视角,并能够从新的视角生成逼真的三维视图。NeRFs在多个领域有着广泛的应用,包括但不限于计算机绘图、动画、医学成像、虚拟现实、增强现实以及城市规划等。

        NeRFs的核心是一个多层感知机(MLP),这是一种全连接的神经网络架构,它经过训练可以将空间坐标和视野方向映射到颜色和密度值上。MLP使用一系列数学结构来确定3D图像中每个点的颜色和密度值,并学习如何改变场景中光线的亮度和颜色,通过深入理解光线的传播(即辐射建模),NeRFs能够实现从不同角度的逼真渲染。

        NeRFs的类型包括PixelNeRF、Mega-NeRD、NSVF和Plenoptic Voxel等,每一种都在特定的应用场景下提供了优化和改进。例如,PixelNeRF引入了全卷积架构,简化了创建和优化NeRF的过程;而Mega-NeRD则专注于处理大型场景,提供了几何聚类算法和稀疏网络结构。

        NeRFs的渲染过程涉及到图形渲染技术和体绘制策略。在图形渲染中,技术如射线投射和光线追踪被用来模拟用户视角和光的物理行为。体绘制则确定3D空间中每个像素的颜色和体积密度,而视图合成技术则根据一系列2D图像构造3D视图。

        NeRFs的工作原理涉及复杂的物理方程,这些方程描述了光在三维空间中的传播和散射。NeRFs通过建模这些物理过程来近似求解渲染方程,实现新视角下的图像合成。

        NeRFs在渲染时需要考虑光线的传播和材质的相互作用,这涉及到体渲染技术,它将3D空间分为体素并进行颜色和密度的插值。NeRFs的训练过程需要大量的计算资源和时间,但它能够生成逼真的3D模型,具有广泛的应用前景。

2.3 OCC在自动驾驶中的应用

        OCC(Occupancy Networking)技术,在自动驾驶感知领域中,主要指的是利用传感器数据构建三维空间中的占用网络,以表示周围环境中的物体和空间状态。这种技术能够帮助自动驾驶系统更准确地理解和预测环境中的物体动态和潜在障碍物,从而提高决策和路径规划的准确性。

        OCC技术的核心思想是将三维空间划分为一系列的小单元(例如体素或网格单元),并通过传感器数据(如摄像头,激光雷达等)来判断这些单元是否被物体占用。具体来说,OCC技术在自动驾驶感知中的一些关键应用包括:

  • 三维建模

        OCC技术可以利用摄像头等传感器收集的数据,构建起周围环境的三维模型。这一过程中,传感器数据被用来判断每个空间单元是否被障碍物(如车辆、行人、路标等)占用,从而在三维空间中生成一个精确的占用图。

  • 动态障碍物检测

        通过实时更新的占用图,自动驾驶系统可以检测到环境中物体的运动状态,从而识别出动态障碍物,如行驶中的车辆和行人。

  • 语义分割

        除了判断单元是否被占用,OCC技术还可以进一步进行语义分割,即区分不同类型的物体。例如,它可以将不同的车辆、行人、道路标志等区分开来,为后续的决策模块提供更为丰富的信息。

  • 深度估计

        OCC技术还可以通过分析传感器数据来估计物体的深度信息,这对于理解物体在三维空间中的位置和形状至关重要。

  • 路径规划与决策

        基于生成的占用网络,自动驾驶系统可以进行更为精确的路径规划和决策。例如,系统可以通过避障算法来规避检测到的障碍物,或者通过预测算法来预测障碍物的未来运动轨迹。

  • 仿真与训练

        在自动驾驶系统的仿真和训练过程中,OCC技术可以创建出高度逼真的三维环境,帮助算法进行深度学习训练,提高其在真实世界中的表现。

        OCC技术在自动驾驶感知领域具有重要的应用价值,但其实现也面临着一些挑战,例如处理大量的传感器数据、实时计算、对不同类型物体的区分处理等。随着技术的不断进步,OCC技术有望在未来的自动驾驶系统中发挥更大的作用。

3 结论

        OCC技术是自动驾驶领域中的一项重要技术,尤其在“纯视觉”自动驾驶方案中占据核心地位。它通过高精度、高速度识别精度、多模态融合、实时性和鲁棒性等特点,为自动驾驶的安全行驶提供有力保障。随着技术的不断发展,OCC技术将在自动驾驶领域发挥越来越重要的作用。

        下一代的端到端也是基于学习算法,目前国内各大厂商都在追赶特斯拉的落地方案。追赶不是目标,顾客好用才是目标。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Windows API每日一练》8.5 listbox控件

列表框是将一批文本字符串显示在一个具有滚动功能的方框中的控件。通过发送消息到列表框的窗口过程,程序可以添加或删除列表中的字符串。当列表框中的一个项目被选中时,列表框控件便发送 WM_COMMAND消息到其父窗口。然后父窗口确定哪个项目被选中。 本节…

C# 中的Semaphore(信号量)详解与应用

文章目录 1. 信号量是什么?2. C# 中的 Semaphore 类3. 信号量的使用示例3.1 创建信号量3.2使用信号量同步线程 4. 总结 在并发编程中,同步是一种基本的需求。信号量(Semaphore)是一种常见的同步机制,它用于控制对共享资…

Jhipster实战中遇到的知识点-开发记录

利用Jhipster开发的网站天赋吉星终于上线啦,本文介绍了在开发过程中遇到的各种小的知识点和技巧,绝对干货,供你参考。大家可以直接点击天赋吉星,看到网站效果。 首先介绍一下项目技术选型,JHipster 版本:8.1.0, 项目类…

stm32 USB CDC类虚拟串口初体验

1. 目标 本文介绍CubeMX生成 USB CDC类虚拟串口工程的操作步骤。 2. 配置流程 时钟配置 usb外设需要48M时钟输入 stm32405使用外部时钟源HSE,否则配不出来48M时钟stm32h750内部有一个48M时钟 stm32f405时钟配置 stm32h750时钟配置 Connectivity ->USB_OTG_FS 和 Connect…

windows obdc配置

进入控制面板: 进入管理工具:

MAC在网络结构中的位置:深入解析

MAC在网络结构中的位置:深入解析 在网络通信的世界里,每一层都扮演着至关重要的角色。今天,我们将聚焦于一个经常被提到但可能不太被理解的概念:MAC(Media Access Control,媒体访问控制)。我们…

智慧产业应用实训实践基地-信息类专业实践实验室-嵌入式、物联网、移动互联网、云计算、大数据、人工智能、区块链实训室

智慧产业实践基地面向信息类专业群,以智慧灯杆、智慧交通、智慧设施在智慧产业中的实际实践为项目原型,软硬件开源、开放,海量的技术资料和实训课程。整个系统运用了嵌入式、物联网、移动互联网、云计算、大数据、人工智能、区块链等综合交叉…

three-tile 一个开源的轻量级三维瓦片库

three-tile 介绍 three-tile 是一个开源的轻量级三维瓦片库,它基于threejs使用typescript开发,提供一个三维地形模型,能轻松给你的应用增加三维瓦片地图。 源码:https://github.com/sxguojf/three-tile 示例:https:/…

音频demo:将PCM数据与alaw、mulaw、g711数据的相互转换

1、README 前言 (截图来源:https://blog.csdn.net/u014470361/article/details/88837776) 我的理解: 首先需要知道的是u-law/a-law是用于脉冲编码的压缩/解压缩算法。而G.711是指在8KHz采样率(单声道)中,使用的u-law或…

uni-app 封装http请求

1.引言 前面一篇文章写了使用Pinia进行全局状态管理。 这篇文章主要介绍一下封装http请求,发送数据请求到服务端进行数据的获取。 感谢: 1.yudao-mall-uniapp: 芋道商城,基于 Vue Uniapp 实现,支持分销、拼团、砍价、秒杀、优…

搞不清啊?伦敦金与上海金区别是?

进入黄金市场的朋友,有可能会被各式各样的黄金交易品种带得眼花缭乱,其实各品种虽然都以黄金作为投资标的物,但是也是各有不同的,下面我们就来比较一下相似的投资品种——伦敦金和上海金。 首先在比较之前,我们要搞清楚…

计算机毕业设计Django+Vue.js考研推荐系统 考研分数线预测 中公考研爬虫 混合神经网络推荐算法 考研可视化 机器学习 深度学习 大数据毕业设计

Python数据分析与可视化期末项目报告 项目名称: 考研推荐系统数据分析与可视化 学 号: 姓 名: …

Spire.PDF for .NET【文档操作】演示:以特在 C# 中创建 PDF/A-1a 文件

PDF/A-1 标准为 PDF 文件指定了两个符合性级别:PDF/A-1a(符合 A 级)和 PDF/A-1b(符合 B 级)。使用 Spire.PDF,您可以轻松创建 PDF/A-1a 和 PDF/A-1b 文件。本文演示了如何使用 Spire.PDF 创建 PDF/A-1a 文件…

MySQL第三次练习

作业三 一 先创建DB abc,创建table student 1、插入一条记录 2、添加多条记录 3、添加部分记录 4、加0.5 5、删除成绩为空的记录 二 1、创建一个用户test1使他只能本地登录拥有查询student表的权限。 2、查询用户test1的权限。 3、删除用户test1. 全在一张图上…

刀客网源码账号合租平台

最新租号平台系统源码,支持单独租用或合租使用 这是一款租号平台源码,采用常见的租号模式。 平台的主要功能如下: 支持单独租用或采用合租模式,采用易支付通用接口进行支付,添加邀请返利功能,以便站长更好…

ubuntu22.04搭建mysql5.7

1.1 下载mysql安装包 MySQL下载地址:MySQL :: Download MySQL Community Server (Archived Versions) #下载wget https://cdn.mysql.com/archives/mysql-5.7/mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar#解压tar -xvf ./mysql-server_5.7.29-1ubuntu18…

排序学习笔记

1.什么是排序 1.1排序的概念 概念:排序的概念其实非常简单,本质上就是将一堆记录按照从大到小(降序),从小到大(升序)来进行排序。我们日常生活中每天都有着不同的排序,比如年龄大小排序,身高的排序等等。 稳定性&am…

如何把已经上传到gitlab的代码或者文件夹从git上删掉

有小伙伴不小心把缓存文件上传到了git,跑来问我,要怎么把这些文件给删掉,这里一共有两种方式, 先说第一种,通过命令删除,终端进入存在这个缓存文件的目录,执行命令ls,可以看到确实有…

STM32学习历程(day5)

EXTI外部中断 中断 中断就是在主程序运行过程中 出现了特定的中断触发条件(中断源),CPU会暂停当前的程序,去处理中断程序 处理完会返回被暂停的位置 继续运行原来的程序。 中断优先级 当有多个中断源同时申请中断时 CPU会根据…

如何安全隐藏IP地址,防止网络攻击?

当您想在互联网上保持隐私或匿名时,您应该做的第一件事就是隐藏您的 IP 地址。您的 IP 地址很容易被追踪到您,并被用来了解您的位置。下面的文章将教您如何隐藏自己,不让任何试图跟踪您的活动的人发现。 什么是 IP 地址? 首先&am…