历史上的今天
今天是:2024年08月26日(星期一)
2021年08月26日 | AI DAY解读 — 特斯拉Autopilot的视觉架构
2021-08-26 来源:eefocus
是的,我还在跟特斯拉AI DAY缠斗。AI DAY那天最复杂、也最难懂的恐怕就是Andrej Karpathy发表的视觉架构部分,通过8个摄像头获取的图像到底是如何让车辆在道路上自动驾驶的?有步骤,有内容。
我们都知道特斯拉用8个摄像头来感知周围环境。但你不能简单地把从这8个摄像头中获取的所有信息直接输入给人工智能,让它来做判断,因为这会一次处理太多信息,而现在的计算机还没有这么强大。

为了解决这个问题,就必须压缩数据,同时保留最相关的信息,类似于我们的大脑对眼睛的信息所做的那样。为了做到这一点,特斯拉将这8个摄像头的数据转移到了一个更小的矢量空间(Vector Space)。

这是一个三维空间,包含了环境中所有的相关信息,如路标、汽车、人、车道线等。然后Vector Space就用来实现汽车必须做的许多不同的任务,如物体检测、交通信号、车道线预测等。
但如何从这8个摄像头组成的三维输入,变成一个单一的三维输出呢?这基本上是通过以下步骤实现的,并且所有8个摄像头都是并行完成的,效率非常高。

牢记这张图,下面会反复提及
第1步:Rectify
首先,图像被送入一个校正模块(Rectify),该模块接收图像,并通过将其转化为虚拟表示来校准它们。这一步极大地提高了Autopilot的性能,因为它会使图像在一般情况下(没有发生事件时)看起来更加相似,使网络能够更容易地比较图像,并聚焦于不属于典型背景的重要部分。
第2步:RegNet
然后,这些新生成的图像被送入到RegNet。 这个RegNet只是CNN的一个优化版本。基本上,RegNet会把这些新的图像,像金字塔一样反复压缩信息,网络的起点由一些神经元组成,这些神经元代表图像的一些变化集中在特定的物体上,告诉我们它在空间上的位置。越深入,这些图像就越小,但它们将代表整体图像,同时也聚焦于特定物体。因此,在这个金字塔的末端,最终会有许多神经元,每个神经元都告诉你关于整体图像的一般信息,是否包含一辆车、一个路标,等等。
为了两全其美,会在这个金字塔的多个层上提取信息,这也可以看作是不同尺度的图像表示,侧重于原始图像的特定特征。我们最终得到的是局部的和一般的信息,所有这些信息都告诉我们图像是由什么组成的,以及在哪里。

第3步:BiFPN
然后,这些信息被送入BiFPN,这个模型会迫使这些来自不同尺度的信息在一起沟通,并在其中包含的一般和特殊信息中提取最有价值的知识。BiFPN的输出将是来自8个摄像头的最有趣和有用的信息。因此,它既包含了关于图像的一般信息,也包含具体信息,如在哪里、什么尺寸等等。例如,它将使用来自金字塔顶端提取的深层特征的一般知识的context理解Karpathy所展示的情况,“因为这两个模糊的灯光是在两条车道之间的道路上,它们可能是附着在一个特定的物体上,这个物体是在网络的早期层中从一个摄像头中识别出来的。”
利用这一context,并知道它是一个单一物体的一部分,就可以成功地猜到这些模糊的灯光是一辆车上的。
第4步:Transformer
所以,现在有了来自所有8个摄像头的不同比例的最有用的信息。然后需要压缩这些信息,这样就不会有8个不同的数据输入,这是通过Transformer模块完成的。简而言之,这个模块将把8个不同图片的浓缩信息,转移到我们想要的Vector Space。它将使用这些一般的和空间信息,这里称为Key,计算Query,就是Vector Space的维度,并试图找出什么东西(what)去哪里(where)。例如,一个Query可以被看作是Vector Space的一个像素,寻找前方车辆的一个特定部分。这个值将相应地合并这两个信息,告诉我们在Vector Space中什么东西(what)在哪里(where)。Transformer可以被看作是8个摄像头和Vector Space的桥梁,了解各摄像头之间的所有的相互关系。
时间戳问题
现在,终于把数据浓缩成了一个三维表示,可以开始真正的工作了。这是他们用来标注用于训练导航网络数据的空间,因为这个空间没有8个摄像机那么复杂,更容易进行标注。现在有了一个有效的方法来表示所有的8个摄像头,但仍然有一个问题:单摄像头的输入是不智能的。如果对面的一辆车被另一辆车遮挡,就需要Autopilot知道它还在那里,那辆车并没有因为另一辆车在它前面就消失了。为了解决这个问题,就必须使用时间信息,或者,换句话说,使用多个帧。特斯拉选择使用“Feature Queue”和“Video Module”。

第5步:Feature Queue
Feature Queue将占用一些帧并将其保存在缓存中。然后,每隔一米,或每隔27毫秒,就会把缓存的帧发送给模型。在这里,他们同时使用时间或距离测量来衡量车辆的移动和停止。然后,这些刚刚处理过的帧的三维表示与它们相应的位置和包含车辆加速度和速度的运动学数据合并,告诉我们它在每一帧是如何运动的。
第6步:Video Module
所有这些宝贵的信息随后被送入Video Module。Video Module利用这些信息来理解车辆本身和它在当前和过去几帧中的环境。这个理解过程是通过一个RNN完成的,RNN会在所有帧上反复处理所有这些信息,以更好地理解Context,并最终构建出定义明确的地图。由于使用了过去的帧,RNN现在就有更多的信息来更好地理解当前的状况,这对临时遮挡等情况来说是必要的。

这就是视觉过程的最终架构,它的输出在下图的右下,你可以看到其中一些输出被翻译回图像,以显示车辆在我们对世界的表述中看到的东西,或者说是8个摄像头的表述。Video Module的输出,会并行地发送给车辆的所有任务,如物体检测、车道预测、交通信号等。

上一篇:DM-i所代表的另外一种增程
下一篇:造车行业也有“鄙视链”?
史海拾趣
|
谁用74HC245做过s51的下载线......希望大虾们关注一下哈.......(急) 我用74HC245做的S51并行下载线, 怎么用聂忠强写的那软件烧写时,检测不到器件...... 如果有那位大侠用过,希望大虾能把邮箱留下 。。。 哈哈......小弟一点点要求........谢谢.... 希望大虾帮帮忙.....小弟....先谢了..... [ 本帖最后由 wang ...… 查看全部问答> |
|
叠拓(原迪易通)信息技术有限公司 (Tieto),成立于1968年,是一家北欧的从事软件解决方案的全外资集团公司,分别在赫尔辛基和斯德哥尔摩证券交易所挂牌。是综合实力北欧地区第一,欧洲前三的IT业务供应商。 请将简历发送到 xiaoli.yang@tieto.co ...… 查看全部问答> |
|
一:成本节约 现象一:这些拉高/拉低的电阻用多大的阻值关系不大,就选个整数5K吧 点评:市场上不存在5K的阻值,最接近的是 4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍。20%精度的电阻阻值只有1、1.5、2.2、 ...… 查看全部问答> |
|
我采用ads7843进行触摸屏数据转换,DOUT脚始终是高电平,采集的数据始终是同样的值8190,8190(12位 最大值) 郁闷中 ,不知如何解决,请用过ads7843的朋友指点一二。 下面是程序中读ads7843数据部分。 // A/D 通道选择命令字和工作寄存器 #def ...… 查看全部问答> |
|
如题 中兴通讯 西安研究所 月薪:4500-7000,面谈 如有兴趣, 请电话联系:029-88723851 邮件:bi.zehongxa@zte.com.cn 岗位要求: 嵌入式开发。 设备驱动开发。 要求:熟悉c ...… 查看全部问答> |
|
在程序中作循环 执行时间比较长 若循环次数少 则改变的数组中个数少 若多加两次循环 改变的个数就多 不知道是不是运行时ram占用过大 地址冲突? 如何看程序运行占用的ram?… 查看全部问答> |
|
基于FPGA的低功耗水下爆炸冲击波压力测试系统 水下爆炸冲击波压力测试系统在许多方面有着广泛的应用 低功耗在这里面的应用将无疑提高系统的可靠性 … 查看全部问答> |




