特斯拉 FSD 背后的技术(1)—从 BEV 到占用网络

news2024/11/22 1:29:26

在今年 tesla 的 AI Day 给我这个业余自动驾驶爱好者给留下了深刻印象,在看过之后,通过收集资料对其中阐述的技术进行简单的了解,在这里拿出来跟大家分享一下,有点长,所以划分了一下 3 个部分。

  • 从 BEV 到占用网络

  • 激进无保护安全左转

  • 有着一双手的擎天柱

先说一下我们能够从 AI Day 学到什么?

有了想写 ANet 的冲动

每一次在特斯拉的 AI Day 上,特斯拉的自动驾驶团队给出他们关于自动驾驶的解决方案,总会成为业界的风向标,随后也是大家研究的方向。那么这些方案到底有多新奇呢?其实这些解决方案所采用的技术,可以说是情理之中,意料之外,为什么这么说呢?

我们就拿去年的 AI Day 上,特斯拉关于自动驾驶的解决方案来说吧。大家都知道,想要实现自动驾驶,车辆至少要对其所在环境有一个清晰的,准确的了解。这就是少不了需要对周围环境进行 3D 重建。大多数公司借助于激光雷达来构建 3D 环境,或者直接使用高精度地图。

好,我们回过头来,看看卡帕西当时给出的解决方案是什么,就是我们熟悉 regNet、BiFPN、transformer 等这些技术,绕过传统的图像拼接技术,用 8 个摄像头采集的图像构建出了一个对周围环境映射的向量空间来实现对周围环境 3D 重建。

如果这时,大家认为这不就是一些熟知的技术堆叠吗?那你又想多了,即使现在知道了答案,也很难复现他们的效果,这也就是特斯拉厉害之处。所以对于一些技术,一定是将其原理吃透,才能将他们运用的得心应手。我想这是特斯拉技术团队成功的一点原因吧,也是我们缺乏的,需要提升的,也就是对于关键技术需要深入理解,不能仅停留在表面上。

在如何将各种技术整合和落地上,这点真的要佩服特斯拉,说特斯拉是最好的基于视觉自动驾驶公司,并非言过其词,好了这期就说到这里。

从 BEV 到占用网络

无论去年的 BEV 也好,还是今年的 occupancy network 占用网络,都是弥补特斯拉因没有安装激光雷达无法准确地还原其行驶周围 3D 场景的不足。有了激光雷达就可以比容易地,较准确地重建 3D 空间。上一集已经说环境 3D 重建对于自动驾驶的重要性。

除了激光雷达以外,还有就是通过高精度地图,自动驾驶来了解其所处环境。不过高精度地图维护成本比较高,需要频繁更新,而且即便有了高精度地图,也需要对周围动态目标进行感知。所以特斯拉更推崇实时建图方式来帮助车辆熟知周围的环境。那么今天我们来看一看特斯拉是如何做到的呢?

大家可能还记得去年的亮点,如何对 8 个摄像头采集图像进行有效融合。也就是跨过传统图像缝合技术,直接通过将所有摄像头采集图像通过矫正后,一并输入到神经网络来提取特征,然后利用基于自注意力机制的 transformer 将这些特征进行关联从而投影到一个向量空间,最终拿到一张反应周围环境的鸟瞰图。

不过这里要说一句,虽然鸟瞰图可以很好还原周围环境,提供自动驾驶所需的信息,但是毕竟还是一个 2D 图像,类似一张平面的地图。既然是 2D 的图像那么相比 3D 空间就少了一个维度,也就是说明一定会缺失一些空间高度上信息,无法真实地反应物体在 3D 空间实际占用的体积是多少。

所以 BEV 中,特斯拉更关心的是那些静止物体,例如路沿、车道线和栅栏等。所以在介绍占用网络之前,特斯拉技术团队先抛出一些现在 BEV 层面上很难解决的问题。例如一些空间目标,例如空中悬挂的交通标识牌、周围物体的一些 3D 结构,和因为遮挡而无法识别,而这些被遮挡运动物体会对随后规范有影响等等。

针对这些问题,在接下来介绍中我们将一一找到答案。在解释特斯拉如何使用占用网络前,我们简单介绍一下什么是占用网络,不会特别深入,只是为了大家更好理解接下来的内容。

占用网络

占用网络是并不什么新的随着深度神经网络的到来,基于学习的三维重建方法逐渐变得流行。不过到现在为止关于如何表示 3维空间还没有达成一致,不想我们用一个 3 维矩阵就可以很好表示图像,虽然这种方式表达 2D 图像,缺少了很多语义信息。但是这种方式已经被大家认可,并且已经证实其有效性。

但是和图像不同的是,在3D中没有规范的表示,既能高效地进行计算,又能有效地存储,同时还能表示任意拓扑的高分辨率几何图形。

现存的表示方法能够大概分成三类:体素、网格、点云,这些 3 维表示方法在储存、结构和是否利于学习等方面。各有一些优点和不足,并不理想直到占用网络出现

作者提出了占用网格,一种新的基于学习的三维重建方法。占位网络隐式地将三维曲面表示为深度神经网络分类器的连续决策边界。

在占用网络出现之前,因为没有激光雷达提供点云数据,很难对周围环境进行 3D 重建。那么占用网络的出现就很好得解决了这个问题。

  • 上图中浅蓝色区域为 tesla 的可视区域

  • 蓝色小块堆叠形成物体为运动物体,在画面里不难看出这些是道路上运动的车辆和周围静止物体在占用网络中是明显区别

通过占用网络,特斯拉可以把一些当前场景下遮挡静止物体和动态物体也用体块来表示出来,这样就增加 tesla 的视野域,让特斯拉可以对接下来路径规划有了更多信息。

而且占用网络相比激光雷达的优势在于可以更好地将感知到的3D几何信息与语义信息融合,这是因为占用网络相对于激光雷达产生稀疏点云可以得到更准确 3维场景。

另外一个问题是,在计算机视觉领域,我们输出的检测模型都是使用一个标准的方方正正的矩形来表示,无论是汽车,人物,信号灯等,当计算机视觉系统检测完成后,总是按照一个矩形框来实时显示画面。但是当汽车顶上有杂物,或者卡车旁边有挂钩等,计算机视觉系统一般会屏蔽掉此部分的特性,但是在道路上面,这样的物体确实存在,若被忽略,肯定会出现车祸等问题。

关于占用网络看到这里,自己对于占用网络提取也有点感触,就是我们平时看问题和解决问题方式,大多时候总是惯性思考,有时候所谓开阔思路,也是沿着主线跳来跳去,而不是像特斯拉这样换一个角度来看问题,思考问题。

其实对于深度学习,为了让模型见多识广,不断扩张他感知领域,就需要不断将路面上可能出现目标类别添加数据集来重新训练模型,这样一来可能会带来数据不均衡很多问题,假设即便我们能够让训练收敛拿到一个比较理想模型,那么我们就能把所有类别都标注出来吗?显然是不现实的。例如从车辆上滑落不规则几何体,这样是无法标注的,可能这具体是啥,无人驾驶并不关心,自动驾驶可能只关心他位置所占空间,是静止还是运动就够了。恰恰这些占用网络给出这些答案。

Image Input

1.最左侧基于原始光子计数(Photon Count)的传感器图像作为模型输入,而没有经过ISP等常见的图像预处理方法,根据Tesla之前的分享可以强化系统在低光照可见度低的条件下提供超越人眼的感知能力。

  • 光子计数,所谓光子技术也就是对于输入图像不要做过多预处理

  • 这里要说的一下是在特斯拉采用12位深度 RGB 图像,包含更多丰富颜色信息

电荷耦合器件(CCD)是一种高灵敏度的光子探测器。CCD分为许多光敏小区域(称为像素),可用于构建感兴趣场景的图像。落在由一个像素定义的区域内的光子将转换为一个(或多个)电子,并且收集的电子数量将与每个像素处的场景强度成正比。CCD移出时,可以测量每个像素中的电子数量,并且可以重建场景。

相比之前进行预处理,光子计数可以提升 16 倍效率,其实这是非常非常大幅度提升

Image Featurizers

接受这些图像后,特斯拉用 RegNet 在模型空间内搜索到一个最好模型的子空间,然后再从模型子空间内拿到一个适合模型来提取特征。特征重要性不用多说,接下来一切工作都是以特征作为基础的。组合这些特征才能够准确地描述特斯拉所处环境。

这里要说的是 RegNet 在模型搜索方式上,与之前 NAS 有着本质区别,NAS 是先确定好了一个模型子空间,然后是在这个子空间内来搜索到最好一个模型,也就是说在没有开始搜索前,搜索范围就限定到了一个范围。而 RegNet

,然后在这个子空间内搜索到一个最佳模型,接下来用 BiFPN 来从 RegNet 搜索到特征网络提取不同尺度特征图通过向下或者向上融合,多个这样结构来提取到包含不同尺度特征图

Spatial Attention

从每个摄像头图像经过特征提取网络拿到特征提取出 Key 和 Value。然后这里有一个固定空间(Spatial Query)也就是用提取多个摄像头特征图来融合(构成)一个空间,也就是用多个 2D 图像构建出一个 3D 空间。作为 query,提取特征图Multicam Query Embeding

Temporal Alignment

车辆行驶轨迹在时间上进行衰减对其,在时间上衰减在许多时序问题上都是对历史数据通过加权融合当前时刻

现在鸟瞰图从 2D 经过占用网络变为 3D 空间,然后再经过 Temporal Alignment 将时间维度也融入,这样就得到了

Deconvolutions

这部分内容也就是 Deconvolution,对3D特征空间通过不断 Deconvolution 操作来得到一个高分辨率的 3D 特征空间

Volume Outputs

  • 提供亚体像素也就是

Queryable Outputs

  • 这里有 2 个 MLP 多层感知机分别输出位置和类别

Surface Outputs

基于高分率的,可以感知路面高低起伏。

从趋势上来看占用网络势必取代 BEV 称为 Tesla 了解环境的工具。空间中信息RNN 做记忆模块

Temporal Alignment 也就是车辆看到东西有一个时间上衰减,也就是我们

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

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

相关文章

chrome查看网页性能

1 Performance 1.1 打开开发者工具(cmdshiftc) 1.2 打开Performance面板,点击录制按钮(开始录制) 1.3 刷新页面,再次点击录制按钮(结束录制) 录制按钮高亮,表示录制中…

算法训练营DAY47|198.打家劫舍、213.打家劫舍II 、337.打家劫舍III

这一期到了打家劫舍的专题,说是专题但实际上只有一期,而且只有三道题,我们把这三道题放在一起讲,第一道题简单一些,后两道略有不同方向上的难度。但总体来看第一次做可能有一点难想到思路,其实代码实现还是…

百度、字节终于不再相互“抄袭”

文|智能相对论作者|佘凯文“百度和字节跳动,分道扬镳”乍一看挺标题党的,这两个互联网巨头从没在一起过,又何来“分道扬镳”之说?不急,且往下看。众所周知,当前国内互联网行业,早已不是当初啥也…

【链表->环形链表】

诸如环形链表的结构有:尾节点链接向各个节点的链表,也可链向自己,称为环形链表。只要链表中带有环,均可称为环形链表。下面通过一些例题来详细讲述环形链表:1.给你一个链表的头节点 head ,判断链表中是否有…

python进阶——人工智能实时目标跟踪

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…

Apollo planning之参考线平滑算法

Apollo studio 官网:Apollo开发者社区 (baidu.com) 目录 1 参考线的作用 2 参考线的数据结构 2.1 ReferenceLine的数据结构 2.2 ReferencePoint的数据结构 3 参考线处理流程 ​4 参考线平滑算法 4.1 算法分类 4.2 参考线平滑算法流程 4.2.1 AnchorPoint …

Learning C++ No.1

引言: 北京时间 2023/2/1/20:38,三天没写博客,打字量严重下滑,这两天是看剧时间,我发现看电视剧有时候还是非常的让人无法自拔的,一天追完一部30集的电视剧,我还是很佩服我自己的,现…

我愿称之为天花板的【Python自动化测试开发文档】—自动化测试开发平台实战

我愿称之为天花板的【Python自动化测试开发文档】—自动化测试开发平台实战 目录:导读 本文以下内容均适合这类人群 包含的模块: 第一章:Python 零基础入门 第二章: Web 应用框架 第三章:自动化平台开发 第四章…

React的学习笔记-(Bilibili天禹老师)

React的特点 采用组件化模式,声明式编码,提高开发效率和组件复用率在React Native中可以使用React语法进行移动端开发(IOS和Android)使用虚拟DOM优秀的Diffing算法,尽量减少与真实DOM的交互 babel用处 es6 > es5jsx > js 1.你好,react 注意引入顺序 <!DOCTYPE h…

图扑软件 | 虚拟电厂负荷控制系统可视化

前言 随着国家“双碳”及“构建以新能源为主体的新型电力系统”等目标的提出&#xff0c;清洁化、数字化越来越成为电力系统面临的迫切需求&#xff0c;负控系统的发展对电力营销现代化建设具有重要的意义。 负控管理系统是一个着眼于全面加强电力信息管理的&#xff0c;集负…

Query 聚类

为了提高阅读体验&#xff0c;请移步到&#xff1a;Query 聚类背景搜索系统优化长尾 query。想了解一下长尾 query 长什么样&#xff1f;大体上都有几类&#xff1f;最好能归类&#xff0c;一类一类处理。Query 数据源&#xff1a;包含“什么”&#xff0c;“怎么”&#xff0c…

儿童台灯怎么选对眼睛好?2023开学必买的儿童台灯

l 通过国家卫健委发布的数据——2020年儿童青少年总体近视率高达52.7% l 爱尔眼科视光研究所的数据——6岁儿童中45%已失去远视储备&#xff0c;6-10岁近视度数增长最快 l 孩童近视程度的发展之外&#xff0c;让人猝不及防 l 在光照环境中&#xff0c;能给孩子们提供最好的阅…

力扣468验证IP地址C++判断合法IP字符串

目录前言题目描述解题思路主功能函数分类大框架判断IPv4是否合法判断IPv6是否合法其余小边界条件(调试后得)完整代码前言 这是一道常见的笔试面试题,我找实习已经碰到两次了&#xff0c;和矩阵的乘法出现频率一样高&#xff0c;你校招要是全程没遇到可以过来打我;(这道题大厂面…

SAP IFRS 17 面向服务架构详细解析(包含分类账规则)

经过漫长的旅程,国际会计准则委员会 (IASB) 于 2017 年 5 月发布了 IFRS 17“保险合同”(IFRS 17)。IFRS 17 取代了 2004 年发布的 IFRS 4。总体目标是提供一个更加透明和全球签发保险合同的实体之间保险合同的统一会计模型。在 IFRS 17 标准发布三年后,IASB 于 2020 年 6 月…

Linux下tomcat服务器的html文件部署

本章介绍使用Xshall发布命令,远程操作Linux系统,在Linux上搭建Java程序部署环境 本文章只是简单介绍html文件的部署,不涉及连接数据库 1.安装JDK 使用yum安装openjdk与windows中的jdk虽然不同,但是功能相似,这里的yum相当与中央管理仓库,包含了各种各样的软件 列出jdk相关的…

【黄啊码】PHP结合vue导出excel乱码

在这之前我们先回顾以前用php导出excel&#xff0c;我直接写成方法在这里&#xff1a; public static function phpExcelList($field, $list, $title文件,$file_time){$spreadsheet new Spreadsheet();$sheet $spreadsheet->getActiveSheet();foreach ($list as $key >…

【靶机】vulnhub靶机clover:1

靶机下载地址&#xff1a; Clover: 1 ~ VulnHub 靶机ip&#xff1a;192.168.174.145 Kali ip&#xff1a;192.168.174.128 靶机ip发现&#xff1a;sudo arp-scan -l 靶机开放端口扫描 分析&#xff1a; 发现开放了21端口ftp服务&#xff0c;且允许匿名登录 22端口ssh服务 8…

【交换机转发工作原理【泛洪、转发、丢弃】】

新的一年 新的征程 新的课程开班 等你来学&#xff01; ​一、交换机的三张表 在讲交换机转发工作原理前&#xff0c;先介绍交换机的三张表&#xff1a; 1.ARP缓存表&#xff1a;ARP(Address Resolution Protocol)地址解析协议&#xff0c;主要作用将目的IP地址解析(映射…

Linux系统中GDB调试详细操作方法

第一&#xff1a;启动 在shell下敲gdb命令即可启动gdb&#xff0c;启动后会显示下述信息&#xff0c;出现gdb提示符。 添加编译指令&#xff1a;gcc -g a.c -o test 打开指令&#xff1a;gdb test 或者 gdb 然后输入&#xff1a;file test ➜ example gdb …

数据结构:简单排序方法(插入排序和起泡排序)

1、插入排序 插入排序(insertion sort)的基本操作是将当前无序序列区 R[i…n]中的记录 R[i]“插入”到有序序列区 R[1…i-1]中,使有序序列区的长度增 1,如图所示。 例如,对下列一组记录的关键字: (49,38,65,76,27,13 ,91,52) &#xff08;3-4&#xff09; 进行插人排序的过…