专栏首页芋道源码1024树莓派上利用 Tensorflow 实现小车的自动驾驶

树莓派上利用 Tensorflow 实现小车的自动驾驶

来源:http://t.cn/E2w8Ysr

  • 整体流程
  • 注意事项:
  • 具体制作流程:
  • 正在进行一些改进:

先抛出大家最关心的——代码地址:

github传送门:https://github.com/Timthony/self_drive

码云传送门:https://gitee.com/tiantianhang/self_drive

基于树莓派的人工智能自动驾驶小车

整体流程

电机控制 摄像头调试 道路数据采集 搭建深度学习模型,参数调试 自动驾驶真实道路模拟 参数最终调试

使用方法:

  1. 先将树莓派小车硬件组装好
  2. 使用zth_car_control.py来控制小车的前后左右移动,配合zth_collect_data.py来人工操作,使小车在自己制作的跑道进行数据采集。(该过程在树莓派进行)
  3. 数据采集完成以后使用zth_process_img.py来对采集的数据进行处理,之前当前先完成一些数据清洗的工作。(电脑上执行)
  4. 使用神经网络模型对数据进行训练zth_train.py,得到训练好的模型。(电脑上执行)
  5. 在树莓派小车上使用zth_drive和训练好的模型,载入模型,即可实现在原先跑道的自动驾驶。(树莓派上执行) 注意:只需要使用上述提到的代码即可,别的都是一些初始版本或者正在增加的一些新模块。

img

注意事项:

  1. 赛道需要自己制作,很重要,决定了数据质量。(我是在地板上,贴的有色胶带,然后贴成了跑道的形状)。
  2. 赛道的宽度大约是车身的两倍。
  3. 大约采集了五六万张图像,然后筛选出三四万张。
  4. 摄像头角度问题

具体制作流程:

  1. 小车原始模型,某宝购买玩具车即可,比如:有电机,有自带电池盒(给电机供电)
  2. 树莓派,摄像头,蓄电电池组(用于树莓派供电)
  3. 使用一些螺栓,螺柱,亚克力板将树莓派,蓄电电池固定在小车上(具体方法,看手头的工具吧)
  4. 组装好以后,树莓派通过VNC连接电脑,登陆树莓派,在树莓派安装keras环境,以便最后调用训练好的模型。
  5. 关于小车的控制(电机控制,摄像头采集数据),都在源文件,有注释,大致思路就是通过方向键AWSD来控制方向,使用了pygame的工具包。
  6. 通过电脑端的wasd方向键手动控制小车(已经VNC连接好)在制作好的赛道上进行图像采集,直线部分按w,左拐弯按a,右拐弯按d等,建议采集50000张以上。 (采集的图像命名要求为,0_xxxx,1_xxxx,其中首位字母就代表了你按下的是哪个键,比如图像是0开头,那么这张图像就是直行,按下的是w键,这些0,1,2,3,4 数字就相当于数据的标签值)
  7. 将图片从树莓派拷贝下来,进行数据清洗,使用电脑端的深度学习环境进行模型训练,使用的模型可以自行定义。
  8. 将训练好的模型文件.h5拷贝到树莓派,然后通过树莓派调用载入模型,即可处理实时的图像,并且根据图像预测出是0,1,2,3,4等数字,也就表示了树莓派该怎么移动,通过树莓派控制电机即可。

正在进行一些改进:

1.使用迁移学习进行fine-tuning是否可以提高精度 2.处理光照问题 3.处理数据类别不平衡的问题 欢迎交流讨论

本文分享自微信公众号 - 芋道源码(javayuanma),作者:Timthony

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Minor GC、Major GC 和 Full GC 之间的区别

    在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章、书籍和演讲来介绍我所做的工作。在整个过程中,经常对 Minor、Maj...

    芋道源码
  • Apache Maven 最全教程,7000 字总结!

    前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下。

    芋道源码
  • 链路追踪 SkyWalking 6.x 源码分析 —— 调试环境搭建

    从官方仓库 https://github.com/apache/incubator-skywalking Fork 出属于自己的仓库。为什么要 Fork ?既然...

    芋道源码
  • 高效搭建树莓派3b rt-thread的开发环境

    由于电子设备的普及,越来越多人拥有树莓派,不管是作为电子极客,还是作为普通普通人,很多人都会玩一下树莓派,可以学习一些c语言,也可以学习嵌入式。...

    bigmagic
  • 树莓派4正式上线!「PC级」性能,支持4K双屏,仅售241

    作为开发者最喜欢的开发板,树莓派的第四代产品带来了 3 倍以上的计算性能、新的操作系统、接口全面升级、4GB 大内存、支持 4K 双屏,35 美元(约合人民币 ...

    机器之心
  • 树莓派入手指南

    最近入手了树莓派,简单整理一些入手的注意事项,本文尤其是对于不了解树莓派并想要购买的同学有参考意义.

    技术小黑屋
  • 树莓派折腾记:纯手机+数据线连接树莓派

    美丽应用
  • 利用树莓派自制“恶意充电宝”实验

    1. 我们需要在树莓派上安装基于Linux的raspbian-jessie操作系统,安装操作系统的详细步骤可以在树莓派的官网上找到,这里就不再赘述https:/...

    C4rpeDime
  • 树莓派资源整理

    本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓派电路原理图下载、树莓派应用等等,非常值得收藏...

    py3study
  • 揭秘奸商的伎俩:利用树莓派自制“恶意充电宝”实验

    重温一遍今年的315晚会。看完只想骂一句奸商!晚会上披露了一个可以通过充电控制用户手机的内容,作为离了手机就丢了半条命的现代人,经常会遇到在外手机没电借别人充电...

    FB客服

扫码关注云+社区

领取腾讯云代金券