2022年Tesla技术分享

news2025/1/13 10:19:47

Autopilot:允许车辆保持车道,跟随前车,弯道减速,等等,处理从停车场到城市街道,再到高速公路的所有驾驶过程。

一、硬件:

8个120W像素的摄像头,每秒36帧,360度空间,内置144 Tops(每秒万亿次操作)算力的计算平台,用于运行这些神经网络。

不需要激光雷达、毫米波、超声波、高精地图,基于实时的摄像头。

 

图1  硬件示意图

二、障碍物检测

2.1 障碍物表示

图2 图像空间效果图

图像空间分割:pixel-wise segmentation (可驾驶or不可驾驶),存在问题:1>感知结果在图像中,转三维空间会产生不必要的噪声。2>不能提供完整的3D结构,很难推理出所有悬空的障碍物,或者墙壁,或者其他可以遮挡场景的物体。

图3 深度建模效果图

深度建模:每个像素都有深度,利用相机射线反转到3D空间,密集的深度图。存下问题:1>近距离很好,远距离变得不一致,很难被后续流程使用。e.g.,墙不直了,弯弯扭扭;  2>靠近地面,点很少,很难针对障碍避让编写合理的逻辑;  3>2D深度到3D空间转化问题,每个相机都会生成一个深度图,很难生成一个汽车周围统一的三维空间。

图4 占有网络效果图

解决方案->占用网络(Occupancy Network):

接受8个相机流作为输入,并生成一个汽车周围空间的体积化的占用值。每一个体素(或汽车周围的每一个位置),网络都会生成该体素是否被占用的结果。事实上,它生成了一个该体素(或三维位置)被占用或不被占用的概率值。网络完成所有内部传感器的融合,并产生单一的输出空间。生成静态物体的占用值,比如墙壁和树木之类的东西,也可以生成动态物体:如车,有时。也包括其他移动的障碍物,如道路上的碎片。输出在3D空格,可以预测一条曲线的存在。虽然它生成了密集的三维占有值,看起来体积庞大,但计算十分高效,因为他把分辨率分配到了关键的地方。图像存在距离远近的问题,但是在占用网络中,在与驾驶有关的所有体积中,分辨率几乎都一致。

速度:小于10ms,100HZ,比摄像机产生图像的速度快得多。

图5 几个摄像流,鱼眼摄像头,朝向正面的广角。左立柱摄像头,面向左边的摄像头。

图6 占有网络结构图

2.2 占有网络技术方案

占有网络的总体网络结构:

  • 输入:多个相机(鱼眼、正常相机),首先进行归一化,消除传感器本身的限制(e.g.,内部校准、图像畸变、类似因素),
  • 特征提取:采用RegNets和BIFPNs来提取图像特征。
  • 生成3D的占有体素:通过Query的查询方案,与几年前的《Occupancy networks》类似。查询一系列3D点,判断3D点是否可用。接受3D位置编码,将其映射为固定的查询,这些固定的查询参与每一个图像空间的特征。在图像空间中也嵌入了位置信息。3D Query参与所有图像流的图像空间查询,然后生成3D占用特征。
  • 上采样:这些都是高维特征,很难直接计算,所以在较低的分辨率下生成这些高维特征。使用上采样技术,生成更密集的高分辨率占用值。

图7 动态VS静态?一些bad case没有明确的边界,区分物体类别会受到影响。行人看起来像"垃圾",塑料看起来像行人。

动态物体VS静态物体:最初采用占用网络的目的是处理静态的障碍物,如:树、墙,因为有不同的神经网络在车内运行,处理不同类型的障碍物,但是很难定义显式的树。动态网络采用其他的框架,但会出现了类似图5 的动静问题。

解决方案是,在通同一个框架中同时生成移动和静止的障碍物,防止有什么东西在移动和静止之间的缝隙中逃脱或转变。不存在绝对静止的物体,受到力后就会发生改变。

图8 添加动态网络检测的占有网络

占用值流(occupancy flow):在原来的静态物体检测框架中,添加了动态物体检测,如图8所示,但并不通过占用值来区分这些物体。可以有额外的语义分类,帮助后续的控制策略。就纯粹的占用值所言,并不区分某个空间被占用的原因是什么,只是给出瞬间占用值。但是这并不足够,瞬时占用值和速度有关,和障碍物类型有关。在不同的未来时间点,占用值会发生什么变化?比如:跟车场景。因此,除了预测占用值,还预测占用值流(occupancy flow)。这个流可以是占用值相对时间的一阶导数,也可以是高阶导数,预测更准确的时间流。为生成占用值流,接收多个时间步骤作为输入。从一段时间缓冲区中提取所有不同的占用值特征,将这些占用值特征对齐到一致的统一坐标系下,使用相同的上次样技术,来生成占用值和占用值流。  

图9 占用值和占用值流的效果,添加占用值流的模型效果,红色行车方向相同,绿色行车方向相反,地面上有个垃圾桶。

图10 出现未知类别的障碍物

图11  出现未知的形状

占用流优点:1>直接避免由于障碍物分类而带来的问题,存在一些不知道类型的车(只露出一半),但这对控制不重要,如图10。通常,人们通过立方体或者多边形来表示运动的物体,但一些物体存在未知的突起(任意形态),通过占有网络,可以获得这些形态,不需要复杂的网络拓扑,如图11       2>改善控制技术栈,使用几何信息来推理遮挡情况,汽车知道被树或者路进行了遮挡,然后采用不同的控制策略来处理这个问题,并消除这种遮挡关系。因为有三维空间信息,明白多少速度/距离会撞上。控制车辆前挪,寻找遮挡物体。这个占用网络在很多不同的方面都有助于改善控制技术栈。

图12 NeRFs from the fleet

图13 真实世界运行NeFR的问题

图14 添加语义保护的RGB示意图

Neural radiance field:占用网络是神经辐射场(neural radiance field)方法的扩展,神经辐射场尝试从多视角图像中重构场景。通常从单个点的多个图像中重建场景。从车队选取任意行程,有着不错的校准和轨迹估算技术栈,用这些生成精确的跨越时间的多条相机路线,然后运行最新的NeFR模型,通过三维状态生成可差分的渲染图像,生成高质量的三维重建。原始NeRF使用一个单一的神经网络来表示整个三维场景,最近作品Plenoxels,使用体素进行表示,还可以使用体素(微小的mlps体素)或其他的连续表示,对概率进行插值来生成可差分的渲染图像。真实世界运行NeFR有一些问题,主要是光的折射、反射、雾天、雨天等。解决方案是使用更高级别的描述符,在某种程度上不受局部光照瑕疵的影响。rgb本身包含大量噪点,在rgb上添加描述符,可以提供一种语义上的保护,防止rgb值变化。

图15 添加NeRFs监督的占用网络

NeRFs优化占用网络:将可差分渲染架构NeRFs作为一个损失函数作用于占用网络的输出,因为这些占用网络需要若干个镜头来生成占用值,无法运行完整的NeRFs优化。Tesla 提出了精简优化版本,确保它所生成的占用值,能解释汽车在运行时接受到的所有传感器观测数据。当然,训练阶段使用这种监督也有帮助。除此之外,还可以通过对不同传感器数据的留出图像进行可差分渲染,来实现监督。通过运动的某种时间约束,这类监督可以对占用值,也可以对占用值进行监督。

2.3 避免碰撞

图16  autopilot避免行车危险

油门和刹车混淆:autopilot 可以避免

Self-driving:安全、舒适、合理的快

图10 汽车状态和碰撞概率预测

提前进行减速,需要在碰撞发生前很多秒就预测这个碰撞是可以避免还是不可以避免,以稳稳的踩下刹车,安全平稳地避免碰撞。

基于搜索的方法,搜索空间大,速度慢,汽车实时运行时,没有足够的时间来完成这样的计算。

Tesla采用神经网络做近似计算,采用最近出现的隐式场(implicit fields) 对障碍避让进行编码。从之前的网络中获取占用值,编码成一个极度压缩的多层感知器(MLP)。这个MLP用于隐式表示,在任何特定的查询状态下,某个碰撞是否可以避免。这里显式的是汽车的位置、方向、速度、侧向和纵向加速度。基于当前的汽车状态,给出发生碰撞的概率。比如,2s、5s或者某个时间范围内,碰撞是否可以避免?网络可以在几微妙内,快速查询出是否会发生碰撞的大概概率。

图11 汽车碰撞概率,绿色安全,黑色是障碍物,灰色是道路表面,红色是碰撞区域。 跟汽车的当前方向和车速有关。

汽车本身存在一定的尺寸,当汽车进行旋转,与周围的障碍物结合起来,碰撞场正在发生变化。

当车辆的方向改变,与道路方向对齐,通道会打开,变绿,这意味着汽车不会处于碰撞状态。

当车速或者刹车时间进行改变,碰撞场也会发生改变

汽车会在必要时介入,进行转向或者刹车,避免碰撞。

总结:

1.展示了如何使用多摄像机喝图像帧,来产生密集的占有值或者占有值流。

2.简要地展示了采用视觉自动标注以外,如何使用车队大量的多视角约束来进行监督。

3.一旦得到占用值,就可以把他应用于其他神经网络,以生成一个高校的碰撞避免场。

4.汽车永不碰撞。

相关Paper:

1.《Occupancy Networks: Learning 3D Reconstruction in Function Space》 CVPR2019

Github:https://github.com/autonomousvision/occupancy_networks

2.NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

3. Plenoxels: Radiance Fields without Neural Networks

关注两个方面:

  • 输入,输出,标注
  • 网络结构

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

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

相关文章

牛客竞赛每日俩题 - 动态规划4

目录 经典dp1(最长公共序列) 经典dp2(最长上升子序列 ) 经典dp(最长公共序列) 最长公共子序列__牛客网 解析: 有两个字符串T和S,S的长度为n T的长度为m 状态:f[i][j…

C# LINQ查询

一、什么是LINQ LINQ是Language-Integrated Query的缩写&#xff0c;它可以视为一组语言和框架特性的集合。LINQ可以对本地对象集合或远程数据源进行结构化的类型安全的查询操作。LINQ支持查询任何实现了IEnumerable<T>接口的集合类型&#xff0c;无论是数组、列表还是X…

oracle12c数据库安装(静默安装

写在前面 本教程是在Linux下安装oracle12c数据库&#xff0c;由于在有些情况下并没有图形化安装界面&#xff0c;所以这里介绍在linux下通用的安装方式&#xff1a;静默安装&#xff0c;通俗的说就是在linux的命令行窗口安装。 关闭防火墙 systemctl disable firewalld sy…

LeetCode 300. 最长递增子序列

&#x1f308;&#x1f308;&#x1f604;&#x1f604; 欢迎来到茶色岛独家岛屿&#xff0c;本期将为大家揭晓LeetCode 300. 最长递增子序列&#xff0c;做好准备了么&#xff0c;那么开始吧。 &#x1f332;&#x1f332;&#x1f434;&#x1f434; 一、题目名称 LeetCo…

Spring之AOP简单讲解

目录 一&#xff1a;基本概念 二&#xff1a;案例&#xff1a;模拟AOP的基础代码 三&#xff1a;AOP相关概念 四&#xff1a;AOP入门案例思路分析 五&#xff1a;AOP工作流程 六&#xff1a;AOP核心概念 七&#xff1a;AOP切入点表达式 八&#xff1a;xml方式AOP快速入门…

动态内存分配/管理

目录 1、为什么要有动态内存分配 2、动态内存函数介绍 1、malloc 2、free 3、calloc ​编辑 4、realloc 3、动态内存常见的错误 4、动态内存开辟相关好题 5、c/c程序内存开辟示意图 int a, int arr[10] 是固定地向内存申请连续的一块空间&#xff0c;但不能变长或变…

快速理解机器学习、深度学习与自然语言处理

这篇文章对机器学习、深度学习、自然语言处理进行了简单的介绍&#xff0c;适合快速学习NLP与AI、ML和DL的关系。 机器学习、深度学习、自然语言处理的关系 机器学习、深度学习、自然语言处理的关系如图所示 1 机器学习&#xff08;Machine Learning&#xff09; 机器学习…

python中的设计模式:单例模式、工厂模式

目录 一.设计模式 二.单例模式 二.工厂模式 优点: 总结 一.设计模式 设计模式是一种编程套路&#xff0c;可以极大的方便程序的开发。 最常见、最经典的设计模式,就是我们所学习的面向对象了。 除了面向对象外,在编程中也有很多既定的套路可以方便开发&#xff0c;我们称…

《Linux Shell脚本攻略》学习笔记-第三章

3.1 简介 Unix为所有的设备和系统功能提供了文件形式的借口。可以通过这些特殊文件直接访问设备以及系统功能。 3.2 生成任意大小的文件 创建特定大小的文件最简单的方法就是利用dd命令。dd命令会克隆给定的输出内容&#xff0c;然后将一模一样的一份副本写入输出。 if表示输入…

个人总结:Mysql知识图谱

使用思维导图工具对mysql使用&#xff0c;进行知识总结。着重说下explanid SELECT识别符。这是SELECT查询序列号。这个不重要,查询序号即为sql语句执行的顺序select_type select类型table 输出的行所用的表&#xff0c;这个参数显而易见&#xff0c;容易理解partitions type 连…

Android系统启动(四) — Launcher 启动过程

1 Launcher 概述 系统启动的最后一步是启动一个应用程序来显示系统中已经安装的应用程序&#xff0c;这个应用程序就叫做 Launcher。Launcher 在启动过程中会请求 PackageManagerService 返回系统中已经安装的应用程序信息&#xff0c;并将这些信息封装成一个快捷图标列表显示…

阿里系-淘宝接口抓取及相关问题

阿里系-淘宝接口抓取 一、安装charlse抓包工具 官方下载地址 安装证书 二、安装xposed hook框架 Xponsed简介 具体安装步骤 三、安装模块 关闭阿里系ssl验证 开启http模式 支持支付宝、淘宝、淘宝直播各个接口抓取 四、效果如下 接下去一段时间更新阿里系相关接口 文章目录 一、…

搞技术的要不要学习财务知识

越是大型的集团或者企业&#xff0c;公司里面设立的部门就越多&#xff0c;也越细化&#xff0c;各部门之间既相互独立管理&#xff0c;又是相互的辅助支持&#xff0c;所以在工作中经常遇到这样的一个问题&#xff0c;就是做技术的要不要学习财务知识。这个问题其实就是把技术…

折半查找算法[二分查找法]算法的实现和解决整数溢出问题~

算法实现的要求&#xff1a; 折半查找法又称为二分查找法&#xff0c;这种方法对待查找的列表有两个要求&#xff1a; 1&#xff1a;必须采用顺序存储结构 2&#xff1a;必须按关键字大小有序排列算法思想&#xff1a; 将表中间位置记录的关键字与查找关键字进行比较&#x…

synchronized实现原理

0. 前言 造成线程安全问题的主要诱因有两点&#xff0c;一是存在共享数据(也称临界资源)&#xff0c;二是存在多个线程共同操作共享数据。因此为了解决线程安全问题&#xff0c;我们可能需要这样一个方案&#xff0c;当存在多个线程操作共享数据时&#xff0c;需要保证同一时刻…

ICV:2022年稀释制冷机全球市场规模达2.11亿美元,2028年有望出现突破点

全球前沿科技咨询机构ICV于2023年初发布了稀释制冷机&#xff08;DR&#xff09;的市场分析报告&#xff0c;ICV在报告中表示&#xff0c;2019-2015稀释制冷机的年均增长率达到8.59%以上&#xff0c;且增长率逐年上升。2022年全球稀释制冷机市场规模将达到2.11亿美元&#xff0…

从Deepmind最新成果DreamerV3启发的通用AI技术分析

一、背景 本文系个人观点&#xff1a;错漏在所难免&#xff0c;仅供参考 北京时间 1 月 12 日&#xff0c;DeepMind 官方推特发文&#xff0c;正式官宣 DreamerV3&#xff0c;这是首个能在游戏「我的世界」(Minecraft) 中不参考人类数据&#xff0c;就能从头开始收集钻石的通…

1.16中断实验

一.异常处理流程 1.异常处理流程 &#xff08;1&#xff09;保存现场&#xff08;CPU自动完成&#xff09; 将CPSR中状态保存到SPSR_<MODE>中 将CPSR寄存器的状态位T&#xff0c;改为ARM状态 根据需要&#xff0c;进制IRQ,FIQ中断&#xff0c;修改C…

java springboot 项目构建报错解决办法

这里总结了一些常见的springboot 项目构建报错及解决办法 错误: 无效的源发行版:17 错误原因 build.gradle 文件中可以通过下面两项来指定项目运行所需的jdk版本 sourceCompatibility:指定编译编译.java文件的jdk版本 targetCompatibility&#xff1a;确保class文件与target…

ARM 看门狗定时器

一、什么是看门狗、有什么用 (1) 看门狗定时器和普通的定时器并无本质区别。定时器可以设定一个时间&#xff0c;在这个时间完成之前定时器不断计时&#xff0c;时间到的时候&#xff0c;定时器会复位 CPU&#xff08;重启系统&#xff09;。 (2 )系统正常工作的时候当然不希望…