0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

树莓派自动驾驶:使用 Keras 与 Tensorflow 构建车道跟踪自动汽车

基于树莓派的自动驾驶 2018-10-07 17:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

无人驾驶虽然入门门槛很高,但是还是可以通过一些简化的模型迅速上手。例如比较有名的DonkeyCar,其实就是一个简单低成本的玩具车,基于树莓派Python,利用Keras深度学习框架实现自动驾驶。即使没有实车,也可以在Donkey Car官网下载模拟器,用程序控制模拟器中的小车。感兴趣的同学可以看看社区和文档

目前还有一些比赛也在使用donkey car帮助大家低门槛地进入自动驾驶领域。例如中国人工智能学会主办的2018模拟驾驶比赛,比赛提供了一些奖金,还为进入决赛的选手免费提供donkeycar实车线下比拼。此外,中国人工智能学会还会颁发证书,所以可以向想要入门自动驾驶,想保研、申请奖学金的同学推荐一下。此外,网上还有不少简单的攻略,例如下面是一篇来自github的自动驾驶相关研究,我对这篇文章进行了编译并在此发布,希望能帮助更多感兴趣的朋友上手自动驾驶。

欢迎大家相互交流,项目地址:https://biendata.com/kernel/detail/427

导入相关库

步骤1:获取驾驶数据

数据集由 ~7900 个图像和手动开车时收集的转向角组成。大约三分之二的图像与线之间的汽车。另外三分之一的车开始偏离航线,并且驶回线路之间。

路径是

数据集由 2 个 pickled 数组组成。X 是图像阵列,Y 是相应转向角度的阵列。

结果:

步骤2:拆分数据

在这里,我们将洗牌(shuffle)我们的数据,并将数据分成三部分。训练数据将用于训练我们的驾驶模型,使用验证数据避免过度拟合模型,测试数据用于测试我们的模型是否学到了什么。

输出:7892

输出:7892

步骤3:增强训练数据

为了加倍我们的训练数据并防止转向偏差,我们翻转每个图像和转向角并将其添加到数据集中。还有其他的方法来增加使用翻译和假阴影驾驶数据,但我没有使用这些自动驾驶仪。

结果:12626

步骤4:建立驾驶模式

这种驾驶模式将是一个端到端的神经网络,接受图像阵列作为输入,并输出-90(左)和90(右)之间的转向角。 要做到这一点,我们将使用一个完全连接图层的3层卷积网络。该模型基于 Otavio 的 Carputer,但不产生油门值输出,不使用过去的转向值作为模型的输入,并且使用较少的卷积层。

使用 TensorFlow 后端

输出:

步骤5:训练模型

我已经学会了很难的方法,即使这一切都是完美的,如果你没有正确地训练,你的自动驾驶仪将无法工作。我遇到的最大的问题是过度适应模型,以至于在很少的情况下都不能正常工作。 这里是 2 个 Keras回调,将节省您的时间。

警告 -如果仅使用CPU,则需要很长时间(3小时)

我在没有 CUDA 兼容 GPU 的 Dell XPS 笔记本电脑上运行,因此速度非常慢,并且冻结。为了加速训练,您可以使用带有 GPU 的 EC2 实例。Keras 和 Tensorflow 已经加载了几个实例图像。

对于这个笔记本,我只会训练模型 4 个时代(epochs)。

输出:

步骤6:评估性能

我们可以通过绘制预测值和实际值来检查我们的模型预测是否合理。第一个图表显示我们的测试数据中存在一个学习的关系(在训练期间模型没有看到)。

第二张图,使用包含训练数据的非混洗(unshuffled)数据,来显示预测角度紧跟实际转向角度。

输出:

下一步

改善模型,这个模型是纯粹(navie)的,因为它不使用过去的值来帮助预测未来。我们可以通过将过去的转向角度作为模型的输入来进行试验,添加一个递归层,或者只是改变卷积层的结构。

添加更多数据,随着我们添加更多驾驶数据,此模型将会得到改进。预测油门,输出目前自动驾驶仪只能转向并保持恒定的速度。一个更复杂的模型将加速在直路上,并在路缘之前放缓。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261511
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136233
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89581
  • 自动驾驶
    +关注

    关注

    791

    文章

    14669

    浏览量

    176507
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109701
  • tensorflow
    +关注

    关注

    13

    文章

    331

    浏览量

    61854
  • keras
    +关注

    关注

    2

    文章

    20

    浏览量

    6284
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    自动驾驶汽车如何确定自己的位置和所在车道

    [首发于智驾最前沿微信公众号]我们平时开车时,判断自己在哪条路、哪个车道,只需要看一眼导航、扫几眼车道线、再听听提示就够了。但对自动驾驶汽车来说,这件事既简单又复杂。简单在于
    的头像 发表于 11-18 09:03 567次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>如何确定自己的位置和所在<b class='flag-5'>车道</b>?

    不同等级的自动驾驶技术要求上有何不同?

    谈到自动驾驶,不可避免地会涉及到自动驾驶分级,美国汽车工程师学会(SAE)根据自动驾驶系统与人类驾驶员参与
    的头像 发表于 10-18 10:17 2410次阅读

    如何确保自动驾驶汽车感知的准确性?

    [首发于智驾最前沿微信公众号]自动驾驶汽车想要自动驾驶,首先要做的就是能对周边环境实现精准感知,也就是能“看”清道路,那自动驾驶汽车如何在复
    的头像 发表于 08-23 15:06 1371次阅读
    如何确保<b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>感知的准确性?

    塑造自动驾驶汽车格局的核心技术

    自动驾驶汽车长期以来一直是科幻小说中的情节,但在如今的2025年,它似乎已经离我们越来越近,智能辅助驾驶已经出现在越来越多的新能源汽车中。但距离完全的
    的头像 发表于 08-21 16:03 705次阅读

    看看那些用树莓打造的自动驾驶汽车

    在崭新的汽车时代门槛前,通往未来的道路不再仅由沥青铺就,还承载着人工智能(AI)的无限可能和突破性的创造力。在现实世界中驾驶颇具挑战,因为可能会发生各种意外事件。正因如此,打造一辆真正安全的自动驾驶
    的头像 发表于 07-27 13:24 583次阅读
    看看那些用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>打造的<b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>!

    自动驾驶汽车如何正确进行道路识别?

    [首发于智驾最前沿微信公众号]自动驾驶汽车在行驶过程中必须准确识别道路环境,以便做出安全有效的决策,不同于人类开车,可以思考,自动驾驶汽车对于道路的识别需要更多的技术辅助。对于
    的头像 发表于 06-29 09:40 1328次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>如何正确进行道路识别?

    自动驾驶汽车是如何准确定位的?

    [首发于智驾最前沿微信公众号]随着自动驾驶技术的快速发展,车辆的精准定位成为安全驾驶与路径规划的核心基础。相比于传统人类驾驶依赖路标和视觉判断,自动驾驶
    的头像 发表于 06-28 11:42 871次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>是如何准确定位的?

    如何为树莓 FPV 战斗无人机构建自动驾驶仪的“眼睛”!

    是我一年多来一直在进行的研发工作的自然延续,该研发工作专注于为FPV战斗无人机构建自动驾驶仪。当我开始探索如何向FPV操作员通知自动驾驶仪的当前状态和飞行参数时,
    的头像 发表于 06-08 08:33 953次阅读
    如何为<b class='flag-5'>树莓</b><b class='flag-5'>派</b> FPV 战斗无人机<b class='flag-5'>构建</b><b class='flag-5'>自动驾驶</b>仪的“眼睛”!

    自动驾驶安全基石:ODD

    电子发烧友网综合报道 自动驾驶ODD(Operational Design Domain)即设计运行域,是指自动驾驶系统被设计为安全、有效运行的具体条件范围。它定义了自动驾驶汽车在哪些
    的头像 发表于 05-19 03:52 5797次阅读

    新能源车软件单元测试深度解析:自动驾驶系统视角

    的潜在风险增加,尤其是在自动驾驶等安全关键系统中。根据ISO 26262标准,自动驾驶系统的安全完整性等级(ASIL-D)要求单点故障率必须低于10^-8/小时,这意味着每小时的故障概率需控制在亿
    发表于 05-12 15:59

    树莓也能实现海上自动驾驶

    全员登船,共赴树莓之旅生活中有些问题,用树莓派来解决会更有乐趣。今天,我们要与航海爱好者们分享一个由创客TommyJoad打造的巧妙项目。Joad是一位帆船船长,对现代自动驾驶系统了
    的头像 发表于 04-24 16:04 537次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>也能实现海上<b class='flag-5'>自动</b>化<b class='flag-5'>驾驶</b>?

    NVIDIA Halos自动驾驶汽车安全系统发布

    自动驾驶汽车的开发。正确的技术与框架对确保自动驾驶汽车驾驶员、乘客和行人的安全至关重要。 因此,NVIDIA 推出了NVIDIA Halos综合安全系统,将 NVIDIA 的
    的头像 发表于 03-25 14:51 966次阅读

    理想汽车推出全新自动驾驶架构

    2025年3月18日,理想汽车自动驾驶技术研发负责人贾鹏在NVIDIA GTC 2025发表主题演讲《VLA:迈向自动驾驶物理智能体的关键一步》,分享了理想汽车对于下一代
    的头像 发表于 03-19 14:12 903次阅读

    【实战】Python+OpenCV车道线检测识别项目:实现L2级别自动驾驶必备(配套课程+平台实践)

    的一个必备技能——车道线检测。本文将详细介绍一个车道线检测项目的过程,从图像采集到车道线的准确识别,看看在L2自动驾驶中,如何通过图像处理技术,让
    的头像 发表于 12-16 15:42 1461次阅读
    【实战】Python+OpenCV<b class='flag-5'>车道</b>线检测识别项目:实现L2级别<b class='flag-5'>自动驾驶</b>必备(配套课程+平台实践)