DeepPiCa1:如何建立一个深度学习,自动驾驶机器人汽车的预算

介绍

如今,特斯拉,谷歌,优步和通用汽车都在努力创造自己的自动驾驶汽车,可以在现实世界的道路上行驶。许多分析师预测,在未来5年内,我们将开始在我们的城市中运行全自动驾驶汽车,并且在30年内,几乎所有汽车都将完全自主。使用大家伙使用的一些相同技术来制造你自己的自动驾驶汽车不是很酷吗?在本文和接下来的几篇文章中,我将指导您如何从头开始构建自己的物理,深度学习,自动驾驶机器人汽车。您将能够在一周内检测并跟踪车道,识别并响应交通标志和路上的人。以下是您最终产品的预览。


来自DeepPiCar的DashCam的车道跟随(左)和交通标志和人员检测(右)

我们的路线图

第2部分:我将列出要购买的硬件以及如何设置它们。简而言之,您将需要一个Raspberry Pi板(50美元),SunFounder PiCar套件(115美元),Google的Edge TPU(75美元)以及一些配件,以及每个部件在后续文章中的重要性。这些材料的总成本约为250-300美元。我们还将安装Raspberry Pi和PiCar所需的所有软件驱动程序。

Raspberry Pi 3 B +(左),SunFounder PiCar-V(中),Google Edge TPU(右)

第3部分:我们将设置所需的所有计算机视觉和深度学习软件。我们使用的主要软件工具是Python(用于机器学习/ AI任务的事实上的编程语言),OpenCV(一个功能强大的计算机视觉包)和Tensorflow(谷歌流行的深度学习框架)。注意我们在这里使用的所有软件都是免费的开源软件

第4部分:通过(繁琐的)硬件和软件设置,我们将直接进入FUN部分!我们的第一个项目是使用python和OpenCV教DeepPiCar通过检测车道线并相应地转向,在绕行的单车道道路上自主导航。

第5部分:我们将训练DeepPiCar自动导航,而不必像我们在第一个项目中那样明确地编写逻辑来控制它。这是通过使用“行为克隆”来实现的,我们只使用道路视频和每个视频帧的正确转向角来训练DeepPiCar自行驾驶。该实施的灵感来自NVIDIA的DAVE-2全尺寸自动驾驶汽车,它使用深度卷积神经网络来检测道路特征并做出正确的转向决策。

最后,在第6部分:我们将使用深度学习技术,如单镜头多盒物体检测转移学习,教DeepPiCar检测道路上的各种(微型)交通标志和行人。然后我们将教它停在红灯和停车标志,继续绿灯,停下来等待行人过马路,并根据张贴的速度标志等改变其速度限制。

条件

以下是这些文章的先决条件:

  • 首要的是愿意修补和破坏事物。与汽车模拟器不同,汽车模拟器中的一切都是确定性且完全可重复的,真实世界的模型汽车可能无法预测,您必须愿意亲自动手并开始修补硬件和软件。
  • 基本的Python编程技巧。我假设您知道如何在python中读取python代码和编写函数,if语句和循环。我的大部分代码都有详细记录,特别是难以理解的部分。
  • 基本的Linux操作系统知识。我将假设您知道如何在Linux中的Bash shell中运行命令,这是Raspberry Pi的操作系统。我的文章将告诉您确切的运行命令,运行它们的原因以及输出结果。
  • 最后,购买所有硬件和工作PC(Windows / Mac或Linux)需要大约250到300美元。同样,所有使用的软件都是免费的。

进一步思考[可选]

这是可选的阅读,因为我试图涵盖我在文章中需要知道的所有内容。但是,如果你想深入学习深度学习(双关语),除了我在整篇文章中提供的链接之外,还有一些资源需要检查。

Andrew Ng关于Coursera的机器学习和深度学习课程。正是这些课程点燃了我对机器学习和人工智能的热情,并给了我创建DeepPiCar的灵感。

  • 机器学习(免费):本课程涵盖传统的机器学习技术,如线性回归,逻辑回归和支持向量机等,以及神经网络。它创建于2012年,所以它使用的一些工具,即Matlab / Octave,已经过时了,并没有谈论深度学习。但它教给你的概念非常宝贵。你只需要高中水平的数学和一些基本的编程技巧来完成课程,而Ng博士非常好地解释了像反向传播这样的困难概念。完成本课程大约需要3个月。
  • 深度学习5门课程专业(如果你想获得证书,免费或50美元/月):该课程于2018年初推出。因此它涵盖了迄今为止所有最新的人工智能研究,如完全连接的神经网络,卷积神经网络(CNN)和序列模型(RNN / LSTM)。这个课程对我来说是一种享受。作为一名工程师,我总是想知道一些很酷的小工具是如何工作的,比如Siri如何回答你的问题,以及汽车如何识别路上的物品等等。现在我知道了。完成这个5门课程专业需要大约3-4个月。

下一步是什么

这是第一篇文章的全部内容。我会在第2部分见到你,我们会弄脏手,一起制造一辆机器人车!

以下是整个指南的链接:

第1部分:概述(本文)

第2部分:Raspberry Pi设置和PiCar组装

第3部分:让PiCar看到并思考

第4部分:通过OpenCV进行自主车道导航

第5部分:通过深度学习进行自主车道导航

第6部分:交通标志和行人检测和处理

AI赛车联盟的成功启动

我们为AI Racing League举办了一场令人难以置信的首场比赛。观众包括来自AI社区,研究人员,教师和学生的利益相关者。

昨天我们成功启动了新的明尼苏达州AI赛车联盟!这是一次故意的“软启动”,只有极少的宣传和营销,因为我们不想让我们的第一次活动不堪重负。优先考虑了双城区STEM领导层中有影响力的人,我们将重点放在邀请能够接触到妇女和少数民族社区的人们身上。这也是在一个工作日,所以我们意识到许多人不能休息一天,这限制了许多人的参与。

该活动在明尼苏达州国际学校的体育馆举行。特别感谢Zach Sheffert建立联系。这是一个很棒的设施,我们有足够的空间来分散和测试非常受欢迎的DonkeyCars自我注意:教人们如何在开始驾驶前限制最高速度

我们的赞助商是Optum Tech University(OTU)。无论保罗马利尼科尔·斯旺森 OTU的做了巨大的工作量,使在很短时间内量这一事件的成功。OTU为10辆DonkeyCars购买了零件,打印了轨道,完成了所有后勤工作,甚至付了咖啡和午餐!他们在两周内完成了这一切!

我们吸引了来自Optum和其他公司的志愿者。Optum Advanced Technology Collaborative的许多员工帮助组装汽车并成为我们的第一轮导师。我们的夏季实习生和Optum 技术开发计划的成员积极参与。

我们的第一个活动的目标是向人们介绍课堂上围绕AI的想法。我们希望活动有趣而灵活,即使教师和利益相关者只能在活动中停留一小时。我们与CodeSavvyMNCodes等组织合作,确保我们与有影响力的利益相关者建立联系。

当参与者进入健身房时,他们可以选择进入一组“分组表”,或者他们可以直接加入其中一个让DonkeyCar上班的团队。我们有以下突破表:

  1. 硬件 – 我们有两个表格显示样品Raspberry Pi和Nvidia Nano硬件以及样品伺服器,电机,电池和脉冲宽度调制的可视化演示。
  2. Python – 用于通过http://trinket.io教授Python的笔记本电脑的表。
  3. UNIX Shell – 包含示例UNIX shell演示的表。
  4. GPU服务器 – 用于显示我们的GPU服务器如何用于从图像进行培训的表格。
  5. Jupyter笔记本电脑 – 带有PC的桌子,向人们展示如何编写Jupyter笔记本来分析他们的图像文件。
  6. 计算机视觉 – 具有许多计算机视觉演示的表格,例如人脸识别。Nvidia Nano实时运行这些演示。
  7. 机器学习 – 包含机器学习步骤的总体图表以及如何使用TensorFlow库的表格。

虽然我们在许多表格上都有很多活动 – 其中一些表缺乏足够的训练导师和材料 – 所以我们仍然有大量的内容和培训可供使用。

我们还有一些表格,参与者在校准DonkeyCars时,将车辆用于赛道周围的试驾,试图收集训练数据并训练他们的模型。说实话,我们遇到了一些技术挑战,只有一辆车得到了充分的培训。然而,每个人似乎都玩得很开心,我想很多人都知道这些事件可以带来什么。

我们要求参与者填写“概念卡”表格,在这些表格中他们可以命名一个概念并描述学习目标和资源可能是什么。我们正在收集这些内容,以开始为其他活动构建可重用的学习组件。我们现在处于“汇报”阶段,并将整理一份任务清单,以使下一次活动更加顺利。

特别感谢所有参与的人,特别是Jon HerkeRob RossmillerParker EricksonSean LearyPaith Philemon为这次活动的辛勤工作而努力。我应该提一下Rob的团队是第一辆完成第一圈的车,所以他们在技术上是我们学习比赛的“赢家”!

我们还要向DonkeyCar 社区成员表示衷心的感谢。如果没有您的辛勤工作以及您愿意分享您的代码,文档和您的经验,这项活动将永远不可能实现!我们希望通过创建一组便携式概念资源来回馈,这些资源可以加载到现代学习管理系统(LMS)中,该系统使用AI来推荐有趣的学习AI的方法。有点像递归!

我们在这里为AI Racing League的CoderDojoTC GitHub回购发布资源。拉请求正在被接受!您可以随意将项目添加到任务列表中,以查找您希望查看的任何新概念。