毕业论文
您现在的位置: 语言识别 >> 语言识别优势 >> 正文 >> 正文

解读特斯拉Autopilot的技术路线

来源:语言识别 时间:2023/2/25
点状白癜风会自逾吗 http://baidianfeng.39.net/a_yyxw/170126/5212241.html

特斯拉是一家很开放的车企。

所谓开放,指的是马斯克年初那一句「特斯拉愿意开放并共享自己的所有专利」,还有在GitHub上公开了自家车机操作系统的底层代码,以及在全球最大的软件BUG讨论社区Bugcrowd里面发下英雄帖,广邀全球黑客黑自家系统。

近日,特斯拉再一次将自家Autopilot的秘密向世界公开。特斯拉AI部门高级主管AndrejKarpathy近日出席了一个有关深度学习的会议——PyTorchDeveloperConference,并且进行了一段时长11分钟的演讲,主题就是Autopilot如何在计算机视觉深度学习中应用PyTorch。

众所周知,特斯拉坚决不支持汽车界普遍力撑的激光雷达方案,而是坚持走纯视觉识别路线,AndrejKarpathy这次演讲,等于用一种硬核的方式,再一次向世界宣战。

我们将这次演讲的精华部分摘录下来,并以尽量简练的语言解释,于是就有了今天的文章。

什么是PyTorch?

要讨论AndrejKarpathy在这个视频里面说了什么,我们先来搞清楚一个概念——PyTorch。

PyTorch的「祖先」叫做Torch(意思为火炬),Torch是一个基于BSDLicense的开源机器学习框架,最早的Torch版本于年发布,主要应用于图像和视频类的深度学习,目前谷歌、Facebook、Twitter都应用了Torch的分支版本。

电动星球注:BSDLicense最早在年由加州大学伯克利分校起草,是目前给予使用者最高自由的开源协议,使用者基本上可以「为所欲为」地修改源代码,并且将代码打包成专有软件。

至于PyTorch,则是Torch使用Python语言编写的版本。

Torch的底层是由C语言和Lua语言编写的,C语言作为底层,而Lua语言作为深度学习库,两种语言都非常优秀,实际上目前仍然有很多大型企业采用Torch进行深度学习,比如上文提到的几家。

年1月,PyTorch正式在GitHub上发布,号称拥有更高的编译和运行效率,而实际上它也做到了——靠的就是Python语言。

一句话总结一下年出生的Python:常被戏称为「胶水语言」,因为Python能够基于其他语言的各种模块结合到一起。根据权威数据挖掘网站KDnuggets的调查,Python已经成为最受AI从业者欢迎的语言。

基于Python语言的PyTorch框架,也同样获得了众多企业和研究者的青睐。单说自动驾驶方面,除了特斯拉,Uber也和斯坦福大学基于PyTorch研发出开源概率编程语言Pyro。除此以外,Facebook、英伟达、美国艾伦人工智能研究所也都走在了PyTorch应用的前头。

特斯拉如何利用PyTorch?

AndrejKarpathy在演讲的开场这样说:「由于我们没有采用激光雷达,也没有采用高精度地图,所以Autopilot的一切功能,都依赖于来自车身四周8个摄像头提供原始图像之后,再进行的计算机视觉运算。」

他随后给出了一张流程图,里面是Autopilot工作的所有流程,有趣的是,AndrejKarpathy将这一套流程称为「OperationVacation(操作假期)」,他说「因为现阶段我的团队已经可以在椅子上葛优瘫,然后数据就会从特斯拉的车子上传过来,在神经网络模型上自己不断循环运行」:

特斯拉AI部门令人艳羡的「假期」里面,「PyTorchDistributedTraining」占了单独的一个部分——但凭什么呢?

先上结论:特斯拉利用PyTorch框架效率更高的特点,不断将Autopilot软件的并行学习性能进一步提升。

以上图为例,在以上的典型场景内,Autopilot需要同时处理10个不同类别的任务——而道路场景是极其复杂的,也就是说,Autopilot时刻面临着数十个任务并行处理的挑战。AndrejKarpathy的原话是「almosttasks(几乎同时处理个任务)」。

为了有效处理将近个并行任务,特斯拉采用了「类ResNet-50」的骨干网络。那什么是ResNet-50?

随着深度学习研究的不断发展,深度学习神经网络也在不断加深,而随着网络深度的上升,训练准确度也会随之下降,ResNet就是因此而生,它的中文名叫做深度残差网络。ResNet有多个不同版本,包括ResNet30/50/等,主要区分度在于Layer卷积层和Block区块数量上,这里就不展开了(毕竟是个汽车

转载请注明:http://www.0431gb208.com/sjszjzl/3516.html