George Hotz:请收下我的智驾系统代码(附论文)

简介:
桀骜不逊的自动驾驶破局者


智驾深谈的第一期,就是关于这位老兄George Hotz,江湖人称GeoHot,“声名狼藉的”iPhone和PlayStation破解者,做过多家IT帝国的被告。几个月前研究上了自动驾驶技术,紧接着就公然挑战Tesla、Google和Mobileye,自嘲是个“智痴(I'm an Idiot.)”,而其他家的水平,只能算是智障。Musk发邮件邀请他去Tesla,被他拒了,声称自己年底就要出不到一万人民币的产品,而且效果绝对秒杀。四月初拿到了310万美元融资,并在拉斯维加斯正常车流中,GeoHot演示了目前的技术进展,完成度颇高,只用了一个前置摄像头,以及一个草草贴在前保险杠上的毫米波雷达。


深度学习端到端:开源概况


此前我提过,目前的自动驾驶技术可以划分为两类,一种是感知-决策-控制然后不断闭环,每个模块用不同的方法力争最好,很多情况下需要专家提供基于经验的规则。另一种则是GeoHot正在采用的办法,叫做End-to-End,端到端方法,指以摄像头的原始图像作为输入,直接输出车辆的速度和方向,中间用某种数学模型来拟合逼近最优驾驶策略,目前常用的就是深度学习模型。


本次GeoHot开源的东西非常丰富,包括下面几个内容:


  • 七小时十五分的高速公路图像数据

  • 两种使用该数据的机器学习实验方法

  • 一篇利用深度学习RNN网络进行自动驾驶的论文(在新智元公众平台回复0806下载)

  • 整套试验代码包括tensorflow,anaconda,keras等常用工具的用法


这些材料,足够读者复现GeoHot为Bloomberg演示的效果,比起此前Mobileye或者Nvidia光发布论文前进了一大步。

 

深度学习端到端:数据准备

                       

驾驶数据是本次开源的重要组成部分,不但包括前视摄像头裁剪的数据,共计7.25小时,分为11个视频,160*320大小,并且还包括了GeoHot那辆讴歌采集的转向、制动、速度以及惯导数据,以及图像输入和控制输出的同步时间戳数据。本次发布的论文主要聚焦在通过图像输入来学习控制转向和速度,GeoHot将图像缩小为80*160并将像素值归一化。


深度学习端到端:模型介绍



目前深度学习用于自动驾驶可以大概分为两类,一类是收集驾驶数据,离线训练模型,不断逼近人类驾驶员;另一类是在模拟器中,利用Q函数,不断自我决策和试错来提高驾驶技术。由于真正图片的复杂以及输出命令的连续性,使得现实世界中能够得到好结果比较困难,所以我们目前见到的很多都是在模拟器中尝试。



本次GeoHot开源的是第一种方法,且是在真实道路上经过实测的。其基本原理是,将摄像头获得的图像数据,利用Autoencoder编码(如上图锁匙,期间还用到最近很火的GAN),然后用一个RNN深度网络来从人类驾驶数据中学习,最终预测下一步操作。


深度学习端到端:代码概要



从代码结构上来看,大概可以分为数据、模型和训练框架三部分,其中模型部分包括了autoencoder和RNN,训练框架则以server.py文件作为入口。


结语


我非常惊讶于GeoHot做出这次开源的决定,看过论文和代码之后,相信复现他们演示结果并不是一件很难的事情,算是让大部分想要尝试深度智驾模型而又无从下手的人得到了福利。那么开源是否会对整个智驾产业带来影响呢?如果你觉得GeoHot还不够强的话,Google未来开源了会不会有影响呢?谁也很难说智驾不会像智能手机一样,成为下一个兵家必争之地。


文章转自新智元公众号,原文链接

相关文章
|
存储 Kubernetes 容器
第十章 集群安装NFS以及NFS卸载客户端和服务端
第十章 集群安装NFS以及NFS卸载客户端和服务端
380 1
|
存储 安全 算法
使用jotp实现双因子验证
扫盲使用totp增强身份安全性指南,原理看懂也不用自己造轮子呀,最讨厌哪些啥也不懂的搬运工,我这里给大家解惑吧
1305 0
|
9月前
|
JavaScript 前端开发 物联网
全面解析鸿蒙相关概念:鸿蒙、开源鸿蒙、鸿蒙 Next 有何区别
程序员晚枫近期研究了鸿蒙系统相关概念,主要包括 OpenHarmony、HarmonyOS 和 HarmonyOS NEXT。OpenHarmony 是开源项目,适用于物联网设备;HarmonyOS 由华为开发,兼容安卓应用,用于手机和平板等;HarmonyOS NEXT 剔除安卓生态,采用纯鸿蒙技术,专注原生应用开发。三者在技术架构、应用场景和开发工具上各有特点,共同推动鸿蒙生态系统的发展。
2283 5
全面解析鸿蒙相关概念:鸿蒙、开源鸿蒙、鸿蒙 Next 有何区别
|
前端开发
css的渐变属性linear-gradient
css的渐变属性linear-gradient
|
8月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
482 0
|
8月前
|
API 开发者
鸿蒙5开发宝藏案例分享---折叠屏开发实践
这篇内容揭示了鸿蒙开发者文档中隐藏的宝藏——官方提供的数十个超实用开发案例。涵盖折叠屏适配、性能优化、UI设计与跨设备协同等核心场景,每个案例均附带可复用代码和避坑指南。例如,折叠屏悬停态开发通过`FolderStack`组件分割上下屏并动态避让折痕;响应式字体适配利用断点系统和rem单位实现多设备兼容;横竖屏切换方案解决方屏设备全屏播放时的旋转问题。这些案例直接解决业务痛点,内置UX规范,大幅节省开发和试错成本,堪称鸿蒙开发的“瑞士军刀”。建议开发者前往官网搜索“最佳实践”,快速提升效率!
|
Java 数据库
JAVA并发编程-一文看懂全部锁机制
曾几何时,面试官问:java都有哪些锁?小白,一脸无辜:用过的有synchronized,其他不清楚。面试官:回去等通知! 今天我们庖丁解牛说说,各种锁有什么区别、什么场景可以用,通俗直白的分析,让小白再也不怕面试官八股文拷打。
|
存储 人工智能 缓存
计算机架构:漫游CPU的奥秘世界(一)
计算机架构:漫游CPU的奥秘世界
631 0
|
C语言
C语言数组练习以及场景练习题
C语言数组练习以及场景练习题
410 0
|
网络协议 NoSQL 算法
TCP协议:超时重传、流量控制、keep-alive和端口号,你真的了解吗?
【6月更文挑战第2天】本文探讨了TCP协议的关键机制,包括超时重传计算(基于SRTT和RTT),流量控制(使用滑动窗口适应接收方处理能力),TCP keep-alive(通过定期探测保持连接活性),以及端口号的作用(区分不同服务和应用)。这些内容对于理解TCP的工作原理和面试准备至关重要。
683 1