APP下载

基于树莓派的无人驾驶车控制系统设计

2020-10-30李旭梁创烽甘亚奇郑潇伟

科学导报·学术 2020年40期
关键词:树莓派无人驾驶深度学习

李旭 梁创烽 甘亚奇 郑潇伟

摘 要:当今社会,汽车的普及率越来越高,加上人工智能与机器学习的不断发展,人工智能与汽车产业交叉形成了智能路面识别系统。本设计基于树莓派微型处理器,设计了一种无人驾驶车控制系统,通过树莓派深度学习道路的图像,从而可以辅助树莓派控制的小车在道路上顺畅的行进。道路辅助识别系统有利于人们安全出行、其后续发展对于车联网也有巨大的奠定作用。

关键词:无人驾驶;树莓派;深度学习

1 前言

近年来,非智能化汽车的发展逐渐进入一个稳定的状态,每家每户都有车的愿景已经基本实现,汽车成了每个家庭必不可少的代步工具。随着智能化社会的到来,汽车的智能化水平也在不断地提高[1],不断冲击着人们对于传统汽车的认识。此次设计的道路辅助识别系统作为无人驾驶方向的一种基本研究,随着汽车的智能化发展将更加不可或缺。

2 系统设计

2.1 整体设计

本系统以树莓派为控制核心,配合树莓派摄像头,完成道路数据采集操作以及行驶时的路况判断操作,通过深度学习过的路面,可以在行进过程中不断拍摄路面的状况,从而判断行进的操作,通过L298N电机驱动板控制电机驱动,从而可以操控小车的行进,总体结构框图如图1所示。树莓派具有工作稳定、处理速度快、轻巧等特点,保证了小车行驶时的稳定性和可靠性。

2.2 硬件设计

2.2.1 微型处理器选择

现在流行的微型处理器主要有单片机和树莓派,单片机在深度学习方面的能力基本没有,而树莓派依靠着python的支持,采用Python编写,更加使其灵活度大大增加,相比于传统面向过程的语言,面向对象的Python更加的灵活,库也更多,在实现图像识别方面也更加易用,其也可以进行深度学习。[2]树莓派基于linux开发,其系统更加成熟好用,3代有wifi模块,性能更加强大,即只要插上显示器鼠标键盘,约为一台小型电脑,所以这里选择了功能强大的树莓派微型处理器。

2.2.2电机驱动板设计

树莓派的GPIO单个引脚的最大输出电流为16mA,同一时刻全部引脚的总输出电流需要有一个限定值,即输出电流不能超过50mA的限定值,而小车直流电机的空载电流就达到了355mA,此时仅凭树莓派不能驱动电机,所以需要使用电机驱动板。本设计采用了L298N电机驱动板,此电机驱动板是一种内部含两个H桥的全桥式驱动器,并且具有高电压以及大电流,接收标准TTL逻辑电平信号,可分别驱动前轮和后轮电机。此电机驱动板能接受来自使能端的树莓派的信号,控制电机的通断以及正反转,还可以通过向使能端输入不同占空比的方波信号来调整电机转速,即通过PWM波形方式调速。L298N为12V供电,因此用两节干电池即可。

2.3 软件设计

系统软件设计主要包括小车识别道路思路设计、深度学习与卷积神经网络模块设计等软件模块。软件开发环境基于Python语言。

2.3.1小车识别道路思路设计

采集图像的过程最重要的就是其真实性、正确性和可用性。而真实性的保障就是要保证采集到的是小车最终在路面上行进时进行判断的数据,而正确性的保障就是要求小车要按照正确的道路轨迹行驶拍摄照片,从而才能使学习的数据正确,最终达到可以識别道路的结果,而数据的可用性就是要靠图像的处理分类及预处理来实现,[3]而最终要使成为可以学习的数据,就必须将其打包成数据集进行后面的学习。

2.3.2 深度学习与卷积神经网络模块设计

深度学习与卷积神经网络模块主要用到numpy、glob、sys、skleam、keras和 TensorFlow包。首先用np.zeros()语句初始化图片数组和标签数组,然后用glob.glob()语句加载训练数据,并用np.vstack()语句对图片和标签进行预处理,用np.mean()语句和np.var()语句求取均值和方差并输出。然后对模型参数进行设置,并将打乱的数据抽取80%用来训练,而用剩下的20%的数据用来测试。再用model = Sequential()语句设置模型为序贯模型,并用model.add()语句建立模型,本次设计的卷积神经网络包含1个输入层、5个卷积层、4个全连接层和1个池化层。通过model.summary()语句可以输出各层的参数状况。建立完模型之后再训练模型,在训练模型时从Keras包引入ModelCheckpoint()、EarlyStopping()和TensorBoard()来进行参数设置[4]。

在实践中,可以发现当迭代的次数超过一定数值时,模型反而出现过饱和的现象。而且短期的梯度下降可能只是得到了模型局部的最优解而并非全局最优解,所以在实验过程中往往需要多次训练调参才能满足要求。训练结束后再用model.saveo语句保存模型。

3结语

智能化的汽车无人驾驶是将来社会发展的必然趋势,将深度学习无人技术运用到多种应用领域更是有着广阔的发展空间。本文以树莓派为主控芯片对于道路识别系统的小车的硬件和软件进行了设计,采用树莓派第三代芯片控制小车,具有稳定性好,性能强大,支持机器学习等优点,由于使用Python编程,使得编程更加方便,也更加益于拓展。本设计中便捷性的采集数据方式以及树莓派摄像头的多线程工作方式使得小车可以在轨道上识别路径,运行稳定,有非常强的抗干扰能力。

参考文献

[1]方敏,张立新,于星胜.浅谈智能网联汽车的发展[J].内燃机与配件,2020(14):184-185.

[2]朱永强,石炳明.基于树莓派的车道保持小车系统设计[J].内燃机与配件,2020(02):226-227.

[3]彭育辉,郑玮鸿,张剑锋.基于深度学习的道路障碍物检测方法[J/OL].计算机应用:1-8[2020-08-03].http://kns.cnki.net/kcms/detail/51.1307.TP.20200713.1417.028.html.

[4]吕云翔等.Python程序设计入门.北京:清华大学出版社.2018.

基金项目:广西壮族自治区2020年大学生创新训练区级立项“嵌入式自动驾驶小车”项目成果,项目编号:202010595151。

作者简介:李旭,男,桂林电子科技大学计算机与信息安全学院本科2017级学生。

猜你喜欢

树莓派无人驾驶深度学习
战“疫”需求急呼无人驾驶车冲上前线
北京第一条无人驾驶地铁试运行!你敢坐吗?
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
智能安全防盗探测小车
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于嵌入式技术的农村医疗系统设计
无人驾驶飞机