这个美国高中生用两年时间复现出英伟达端到端无人驾驶的论文,并在此基础上进一步改进,得到了nvidia的offer,却执意进入大学学习。
sully chen
sully chen 是南加州大学维特比工程学院的研究员,他喜欢数学、物理、人工智能以及医学,目前他正致力于如何通过大数据和机器学习来改善医疗保健和医学预防。三年前,当他还在加州帕洛斯弗迪斯高中念书的时候,就对自动驾驶汽车产生了浓厚的兴趣,准备着手制造自己的机器。
热爱的数学成为后期研究的重要基础
十岁开始编程,并参与了很多项目的 sully chen 虽然称不上是天才,但他对数学近乎痴迷。2015年初,同龄的高中生还在学习排列组合,而他在一个视频中偶然发现了遗传算法和神经网络,这个视频用计算机仿真出遗传算法的特性,虚拟生物似乎在没有人为输入的情况下神奇地演变出复杂的行为,“这像极了我在生物课上学到的交叉和随机变异,但我仍不相信这样的计算机模拟是真的。”
很自然地,他编写了自己的模型去验证了它的可行性。通过亲身实践,更让他无法自拔,他花了两个星期开完了一学期的人工智能mit公开课。与backprop(反向传播算法)斗争了好几个星期,仍不能真正的理解。查阅大量论文,指南和博客后,最终在 michael nielsen 关于《神经网络和深度学习》博客中解决了自己的困惑,并用c++编了一个神经网络库,以加深自己理解。
构造一台无人车面临无数的挑战
凭借着对机器学习“浅薄”的认知,sully chen开始了制作自己的机器。
通过视觉算法来实现无人驾驶,第一个要解决的挑战就是数据收集问题,需要协调好摄像头和方向盘角度。摄像头比较简单,他用胶带粘在了挡风玻璃上,而方向盘角度如何控制呢?
他首先尝试了一种加速度计和arduino(数据仪器)连接到方向盘上,并将时间数据与摄像头同步。这种方法并不理想,由于加速度计比较敏感,加速度数据与视频数据如何分开成了当时sully需要面对的另一个挑战。
第一种方式行不通,sully开始了新的尝试,使用现代汽车配备的obd-ii端口访问can-bus。这种方法又要面临新的挑战,但最终实现了超精确方向盘测量,证明这种方法是值得的。
挑战1:如何从 bd-ii端口读取can-bus?解码和处理can-bus信号是一个复杂的过程,需要很长时间才能编写和调试。幸运的是,前人(深圳矽递科技)已经做到了。sully使用这个代码和相对便宜的arduino屏蔽,就能够轻松地从汽车中提取和读取can-bus数据。
挑战2:如何将can-bus数据的乱码转变为方向盘读数?下图是提取的can-bus数据。
从数百个can-bus渠道的解析中,找到一个方向盘角度的信息通道,对于一个高中生而言,难度可想而知。sully 用最笨的办法做到了!他手动监控每个通道,慢慢转动方向盘,需按照接受数据的平滑变化值。经过大量的实验,终于找到了方向盘的通道,用同样的方法也找到了油门、制动器以及速度的通道。
挑战3:如何把can-bus中的数据转换成可读数据?找到通道后,通过测量实际角度与通道数值进行线性变换,就能从can中读出车辆的即时数据。
拦路虎顺利摆平之后,开始疯狂收集数据。为此,sully 旷了很多课。当数据通过机器学习训练算法时,一切变得有趣起来。
复现并优化nvidia论文,引起nvidia官方的重视
用机器学习训练模型时,第一次尝试用caffe 在 alexnet上训练分类模型。他将数据划分成每个大小为10度的黑盒子,方向盘角度在0-9度,10-19,20-29等之间得到相应的图像。采用了分类输出的线性组合获得最终预测。由于当时并不能真正理解的统计数据,一切变得非常糟糕。这让sully 几乎失掉了信心,他专门建了一个存放错误代码和实践的垃圾文件箱,用来提醒自己要从失败中总结经验,学到新东西。现在这个垃圾文件箱还存在着,而且越积越大,它的存在也证明了自己一路以来的进步。
2016年8月,nvidia发布了一篇论文《end to end learning for self-driving cars》,详细解读了英伟达在端到端无人驾驶的探索,这让sully 有了第二次尝试,他准备复现一下nvidia论文
nvidia模型使用以下架构:
这个架构输出的是前十个神经元的简单线性组合,sully认为还可以改进。他通过对线性组合应用正切函数来改变这一点,这种方法更直观从视觉数据中“恢复”曲率角度,而不必重新学习将斜率或切线转换为弧度测量的方法。
研读完nvidia论文的高中生,在tensorflow中写了大约一个晚上的代码,并用当时便宜的750ti gpu上训练了它,结合adam优化器等训练。最终,取得了不错的成果!
一个高中生花费两年时间完成了这个庞大的项目,sully感叹道“这次经历教会了我大量的信息,技术和编码实践。nvidia甚至带我去他们的自动驾驶实验室参观他们的技术!“nvidia为这位高中生提供一份不低的工资,但被他拒绝了,sully进入了大学,开始了自己本科的学习。
ROHM四大战略助力汽车电子市场
开关电源的电磁干扰防制技术和传导测试与辐射测试详细概述
SMFT-1000多功能光伏I-V曲线测试仪
爱立信携手TIM探索增强型LTE现网部署vRAN新方式
Silicon Labs参考设计帮助开发人员在5分钟内转动电机
美国高中生两年时间搭建自动驾驶汽车
电机检修的基本步骤
组合式多功能智慧杆的特点是什么
电源直流模块的电磁共模骚扰由哪些回路构成
普通空调智能节能控制-红外人联
驾驭阳光:Sunswift 赛车车队在世界太阳能车挑战赛中大放异彩
信号完整性常用的三种测试方法
北京航空航天大学OpenHarmony技术俱乐部正式揭牌成立
搭载移远通信C-V2X模组 红旗旗舰级智慧全能电动SUV E-HS9正式上市
基于VLP模型的语义对齐机制
龙芯3A4000/3B4000正式发布 通用处理性能将达到产品级的世界先进水平
STM32MP1处理器下实现RT-Thread和Linux同时运行
福特计划上市电动运输货车,会面临更多竞争者
盛情邀请 | 9月8日 我们不见不散
iPad Pro 2022计划10月发布 搭载M2处理器