本文来自贺文通、何彧衡、何志强的课程设计。

系统实现

硬件实现

  将树莓派的第29号引脚接到L298N电机驱动的IN1端,树莓派的第31号引脚接到L298N电机驱动的IN2端,树莓派的第33号引脚接到L298N电机驱动的IN3端,树莓派的第35号引脚接到L298N电机驱动的IN4端,树莓派的第38号引脚接到L298N电机驱动的ENA端,树莓派的第40号引脚接到L298N电机驱动的ENB端,树莓派的第36号引脚接到蜂鸣器模块的IO口,树莓派的第11号引脚接到LED灯模块的R_COLOR_IO口,树莓派的第13号引脚接到LED灯模块的Y_COLOR_IO口,树莓派的第15号引脚接到LED灯模块的G_COLOR_IO口,树莓派的第16号引脚接到左侧红外避障模块的IO口,树莓派的第18号引脚接到右侧红外避障模块的IO口,树莓派的第22号引脚接到前侧红外避障模块的IO口,树莓派的第32号引脚接到后侧红外避障模块的IO口。 实际外观如下图所示(实际情况以代码为准)。

软件实现

  训练样本获取源码解析:

  在zth_process_img.py中主要对小车接口进行定义、对接口输入输出模式进行设置,对接口使能方式进行设置。

  将接口控制和逻辑设计组合成动作函数。部分动作函数如下图所示。

  在zth_collect_data.py中主要对摄像头运行方式、图像像素大小、取样帧数进行了设置,同时并行地操纵小车运行和摄像头获取图片。部分程序如下图所示。

  图像处理源码解析:

  在zth_process_img.py中主要对图片:依据图片名加上对应的标签,并将处理后的图像存入training_data_npz文件夹中。

  在zth_train程序中主要建立神经网络模型,神经网络模型框架用kera搭建神经网络,采用卷积,池化,全连接。输入为图像,输出为五个神经元,分别对应左转(0号动作)、右转(1号动作)、前进(2号动作)、后退(3号动作)、停之(4号动作)。
第一步:加载数据集存入内存中,并将其划分为训练集和测试集。源代码如下所示:

  第二步:建立卷积神经网络模型,其代码如下所示:

  第三步:训练神经网络模型,并将其保存,其保存模型,TensorBoard存模型结构以及准确率和Loss曲线的代码如下图所示:

  在TensorBoard中查看其网络结构图如下图所示:

系统测试

  我们将软件实现,并操作小车,获取了一系列打上动作标签的图片信息。将一系列图像信息送入神经网络,进行训练。其训练完成之后的Loss曲线和准确率曲线如下图所示:

  从其训练结果中显示,其准确率达到接近百分之九十,准确率和Loss都趋于收敛。

不足与展望

  虽然,如第四章提到的,我们完成卷积神经网络的调试和残差检测,初步地得到了一个可用的神经网络,然而,这个神经网络的实际表现并不如预期般乐观,我们分析,可能的原因如下:

  一、样本量的规模太小,在数量上并没有满足训练一个良好的神经网络所需的数量级。

  二、样本的代表性不足,由于我们在实验过程中并未对样本进行清洗,同时,并没有在具备理论上和实践经验上的支撑的条件下设计道路,并且,光照、杂物的放置也对神经网络的识别产生了一定的影响,这些因素导致了神经网络的表现不如理论上良好。

  三、样本的多样性不足,由于实验条件和人员时间分配的限制,我们并没有设计多种光照、多种地板纹路、不同道路类型等因素变换的实验,没有获取到相应的样本,直接影响到了神经网络的泛化性不足。

  同时,虽然硬件上,我们安装了红外避障模块、LED灯模块、蜂鸣器模块,但是,受限于实验时间,我们仅仅完成了初步的硬件安装和初步的程序调试,并没有将其和神经网络程序较好的结合起来,故并没有在报告中写出相应的程序和硬件调试。

  并且,我们虽然使用了树莓派3B+作为逻辑处理的核心,但由于时间限制,仍然缺乏对操作系统理论的认识和实践的经验,并没有对操作系统做出恰当的调整。

  虽然课程将要结束,但是我们的学习远远没有结束。在未来的时间中,我们期望更多地学习操作系统、神经网络算法等相关的知识,累积更多的实践经验,尽可能地锻炼自己,能真正参与实现无人驾驶技术,造福人民,提供人们的生活水平。

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

【实物】端到端自动驾驶搭建教程(四)附完整资料相关推荐

  1. 在线客服系统源码 自适应手机移动端 支持多商家 带搭建教程

     下载链接: 在线客服系统源码自适应手机移动端支持多商家支持微信公众号/微信小程序带搭建教程-PHP文档类资源-CSDN下载 PHP轻量级人工在线客服系统源码 自适应手机移动端 支持多商家 带搭建教程 ...

  2. 救世之树服务端开服架设服务器搭建教程

    救世之树服务端开服架设服务器搭建教程 救世之树架设教程 准备好服务端(版本).服务器.域名开始实操:我是艾西 需要给服务器开启虚拟内存,设置好后服务器需要重启下 第一步:解压服务端到D盘 右键[000 ...

  3. 魔域服务端架设开服服务器搭建教程

    魔域服务端架设开服服务器搭建教程 想要魔域开服,需要先了解搭建魔域需要哪些程序和整个开服的一个流程: 游戏服务端(包含了版本.引擎.登入器) 服务器 域名 支付平台 服务端:怀旧.麒麟.众神之巅.复古 ...

  4. 大话西游服务端开服架设服务器搭建教程

    大话西游服务端开服架设服务器搭建教程 大话西游一款回合制角色扮演手游,游戏内包含人族.仙族.魔族.鬼族四大种族,每个种族各有4个角色可供玩家选择.相信很多玩这款游戏的玩家也有不少想知道自己怎么可以开一 ...

  5. python代码手机壁纸_Python制作微信好友背景墙教程(附完整代码)

    引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这里作了模糊处理. 是不是很炫,而且这还是独一无二的,毕竟 ...

  6. vb.net label 不要自动换行_自动驾驶小车——(四)数据采集

    又鸽了好几个月,因为要准备考研,不过这个系列肯定会完成,现在也仅仅是一个初稿,以后还要整体完善一下的.这个小项目的设计思路大致分为三部分,数据采集.神经网络训练和加载模型三部分,本篇文章就讲一下怎样采 ...

  7. 2020最新版影评小程序搭建教程(附源码获取渠道)

    废话不多说现在进入搭建教程! 首先就是 环境要求: 这里我推荐使用宝塔安装LNMP服务器环境 使用宝塔的前提是你的服务器是刚购置的,或者重新安装的没有任何东西的 安装好后直接选择 linux ngin ...

  8. 自动驾驶(十四)---------车道线检测

    目前车道线检测主要有两种方法:传统方法,深度学习,本文主要从传统方法出发来介绍车道线检测,毕竟Mobileye也没有用到太多的深度学习(以前和Moblieye有交流). 再者,一直以来我们传统汽车行业 ...

  9. 【搜题公众号】全网最详细搜题公众号搭建教程(附赠题库)

    上个文章反响很好,哈哈哈哈我来写一个搜题公众号搭建教程,这个适用于各位大学生创业引流使用,效果显著. 废话不多说开始我们的教程! 第一步: 注册公众号,这个百度搜索微信公众平台:微信公众平台 (qq. ...

  10. 简单实用的笑话段子小程序详细搭建教程(附源码),包含了视频、图片、段子三个模块

    首先上个图,看下线上效果 扫码查看线上案例 线上服务器搭建这类的,这里就不多说了,有需要的可以看我之前的文章   >> 最新版短视频去水印小程序安装详细教程(附免费源码和去水印解析接口), ...

最新文章

  1. Pass算子python 函数
  2. ZooKeeper客户端ZKClient使用
  3. python推荐系统-python 简易推荐系统实现
  4. c 语言贪心钓鱼思路,2020届九年级中考语文复习教案:第4讲现代文阅读之概括(27页)-原创力文档...
  5. n76e885_新唐N76E003,N76E616烧录,调试各种问题集【坑集】
  6. P7909 [CSP-J 2021] 分糖果 方法二
  7. 通过Server 2019中的组策略部署桌面墙纸 详解组策略环回处理
  8. python中高阶函数map怎么用_python六十课——高阶函数之map
  9. jni 从c传递map到java_java_jni 本地调用接口DLL的编写样本,涉及数组传递,相关的 和C程序均已包括。 Develop 256万源代码下载- www.pudn.com...
  10. php事务和回滚,php – Mysql事务:提交和回滚
  11. 面试疑点:几道题答了一个小时,应该是等答案
  12. 通信电子电路实验(三)——高频电容反馈型LC振荡器的设计与仿真
  13. java上传zip_JAVA 上传ZIP,RAR文件并解压
  14. 关于BD文件的一些操作
  15. ios写python_iOS开发之 使用python自动化打包
  16. ChatGPT与文心一言对比思考
  17. java并发编程艺术——基础篇
  18. 【0】开始学习安卓了
  19. 面经1.小米前端实习
  20. 三段式与四段式耳机插头的区别

热门文章

  1. 【ASP.NET Web API教程】2.3.4 创建Admin视图
  2. PHP实现今天是星期几的几种写法
  3. Cocos2d-x中常用的类
  4. Security+ 学习笔记34 硬件安全
  5. PIM SSM技术原理与实验
  6. 防火墙虚拟系统资源分配配置实例
  7. Python3 循环删除列表中的指定变量
  8. HDOJ--1863--畅通工程
  9. C语言qsort和C++sort的用法小结和区别比较
  10. 互联网介入对安防行业的影响