温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
基于
TensorFlow
深度
学习
自动
驾驶
小车
设计
基于TensorFlow深度学习自动驾驶小车的设计
曾啸川 邓红卫 莫岚淋 陈一楠 贺迪
:本文以自动驾驶小车为例,将深度学习技术运用于自动驾驶小车,在模拟的道路上,实现对交通标志识别的自动驾驶。本文采用TensorFlow深度学习框架,编写CNN结构模型,训练卷积神经网络,运用OpenCV图像处理技术,使用摄像头采集模拟道路与交通信号标志数据,通过处理器计算和处理,面对相应的交通信号标志,自动驾驶小车自动采取应对措施。测试结果说明,小车具有一定程度的自动驾驶与交通标志识别能力。
关键词:TensorFlow;深度学习;卷积神经网络;自动驾驶;交通标志识别
中图分类号:TP18 文献标识码:A 文章编号:1007-9416〔2023〕07-0131-04
0 引言
TensorFlow[7]是一個采用数据流图〔data flow graphs〕,用于数值计算的开源软件库。节点〔Nodes〕在图中表示数学操作,图中的线〔edges〕那么表示在节点间相互联系的多维数据数组,即张量〔tensor〕。它灵活的架构让开发者可以在多种平台上展开计算,例如计算机中的一个或多个CPU〔或GPU〕,效劳器,移动设备等等。无人驾驶技术是传感器、计算机、人工智能、通信、导航定位、模式识别、机器视觉、智能控制等多门前沿学科的综合体。无人驾驶汽车的关键技术包括环境感知、导航定位、路径规划、决策控制等。环境感知模块相当于无人驾驶汽车的眼和耳,无人驾驶汽车通过环境感知模块来区分自身周围的环境信息,为其行为决策[8]提供信息支持。无人驾驶汽车的导航模块用于确定无人驾驶汽车其自身的地理位置,是无人驾驶汽车的路径规划和任务规划的之支撑。路径规划是无人驾驶汽车信息感知和智能控制的桥梁,是实现自主驾驶的根底。决策控制模块相当于无人驾驶汽车的大脑,其主要功能是依据感知系统获取的信息来进行决策判断,进而对下一步的行为进行决策,然后对车辆进行控制。正因人工智能与无人驾驶汽车拥有好的前景需求,本文基于TensorFlow深度学习和计算机视觉[9],研究深度学习中的图像识别[10]技术的问题。并将实时视频通过图像识别之后的结果,与自动驾驶小车[11-13]的控制相结合,从而实现无人驾驶。自动驾驶小车除了能实现自动驾驶与避障外,还能实现对交通标志[1]的识别[14-16]。
1 系统构成与功能
自动驾驶小车可以分为感知和决策两个局部,树莓派发送指令给Arduino控制直流减速电机实现小车的决策局部;通过摄像头采集的道路和交通标志数据对小车进行训练,让其具有感知功能,并通过测试,实现其感知局部。
1.1 硬件系统构成
自动驾驶小车的实物图如图1所示,系统硬件框图如图2所示。本文的自动驾驶小车是组装的小车底盘,由一个伺服电机和一个直流减速电机组成。硬件系统由树莓派4B、Arduino uno r3、L293D驱动模块、L298N驱动模块、HC-05蓝牙模块与HC-SR04超声波模块构成。树莓派4B作为上位机,进行数据采集与图像预测,Arduino uno r3作为下位机,通过HC-05蓝牙模块与树莓派4B通讯,并发送指令控制自动驾驶小车的运行。L293D驱动伺服电机实现自动驾驶小车的转向,L298N驱动直流减速电机控制自动驾驶小车的速度。自动驾驶小车上方安装了一个800万像素的摄像头,用于数据采集。
1.2 系统运行流程
该系统的整体流程图如图3所示。将训练好的模拟道路模型装载到树莓派4B中,将训练好的交通标志模型装载到PC中。PC与树莓派4B通过局域网进行通讯,树莓派4B通过实时采集到的视频流数据发送到PC,PC将发送过来的实时视频拆分为一帧一帧的图片,并进行处理与预测,将预测的交通标志的对应标签,发送信号流给树莓派4B,树莓派4B再发送对应指令给Arduino,自动驾驶小车从而自动采取应对的措施。
2 系统算法设计
网络模型算法基于TensorFlow框架进行设计,图片处理算法基于OpenCV进行设计,如图4所示。模型设计方面,在不影响特征提取的情况下,参加最大池化层,还参加Dropout层防止过拟合。图片处理方面,将摄像头采集到的实时视频拆分为一帧一帧的图片,通过HSV颜色空间[2]的转换、二值化处理和目标区域的提取[3]等预处理操作,再进行交通标志的预测。
2.1 网络结构
如图5所示,为模拟道路自动驾驶的网络结构。本算法设计的卷积神经网络[4]以小车采集的图像作为输入,主要由5个卷积层以及3个全连接层所构成。使用的损失函数为交叉熵;激活函数为ReLU;分类器使用Softmax;优化器为ADAM。采集的道路的图像大小为320x160个像素,每张图片都有对应的标签值,经过OpenCV的处理变成灰度图片,再将每一张图片输入到网络结构中进行训练。每张图片经过5个卷积层的特征提取,参加了Dropout层防止过拟合,flatten层是卷积层到全连接层的过渡层,将多维的数据变成一维,最终输出为三个标签对应的值。
如图6所示,为交通标志分类识别的网络结构。本算法设计的卷积神经网络以32x32x3的彩色图像作为输入,主要由3个卷积层,3个池化层,以及3个全连接层所构成。使用的损失函数为交叉熵;激活函数为ReLU;分类器使用Softmax;优化器为ADAM。采集的交通标志的图片为大小不等的彩色图片,经过OpenCV的处理将图片统一变成32x32大小,通过python的pickle模块将图片数据序列化后转变成二进制文件保存,再将该文件输入到网络结构中进行训练,使图片数据更易于读取与处理。
2.2 HSV颜色空间的转换和二值化处理
HSV是把H〔色调〕,S〔饱和度〕,V〔明度〕当做色值来定位颜色的空间。相对于RGB空间,HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的比照。将采集到的图片进行HSV颜色空间的转换,并将红色、蓝色和绿色三种颜色阈值分割[5-6],对目标区域进行阈值化与膨胀处理,最终生成一张合并的mask图。如以下列图所示,为本系统在模拟道路上所收集到的五类模拟交通标志mask图。图7为人行横道标志mask图;图8、图9分别为红绿灯标志mask图;图10为50_kmh限速标志mask图;图11为“stop〞停车标志mask图。
2.3 滑动窗口技术
滑动窗口技术,首先固定一个卷积区域,然后将卷积核在图像上按照指定步长进行滑动,对于每一次的滑动得到区域进行预测,判断该区域中存在目标的概率。滑动窗口目标检测算法有很明显的缺点,就是计算本钱,因为如果在图片中剪切出太多小方块,卷积网络要一个个地处理。如果选用的步幅很大,显然会减少输入卷积网络的窗口个数,但是粗糙间隔尺寸可能会影响性能。反之,如果采用小粒度或小步幅,传递给卷积网络的小窗口会特别多,这意味着超高的计算本钱。为此,对这些问题做了一些改良。在生成的mask图中,白色区域代表目标区域,黑色区域那么代表非目标区域。在进行滑动窗口采用小步幅进行滑动,如果遇到黑色区域或者低像素值区域就直接跳过,遇到目标区域才进行预测。这样处理不仅不会影响其性能,也不会拥有超高的计算本钱。
3 实验与分析
数据采集结束后,通过构建的卷积神经网络来训练样本数据。将所有数据集拆分80%为训练集,其他的20%为验证集。如图12所示,自动驾驶训练,训练数据集包含8167个图片样本,输入到卷积神经网络进行训练,经过20次迭代,训练集正确率为0.9836,loss值为0.0434,验证集正确率为0.9639,loss值为0.1035。如图13所示,交通标志训练,训练数据集包含10222个图片样本,输入到卷积神经网络进行训练,经过10次迭代,训练集正确率为0.9825,loss值为0.0610,验证集正确率为0.9941,loss值为0.0543。
4 结语
本文的主要奉献和结论如下。
〔1〕本文将深度学习中的图像识别技术与无人驾驶小车相拟合,两者之间能够流畅的运行。〔2〕实验结果说明,本系统设计的基于TensorFlow深度学习的自动驾驶系统具有一定的自动驾驶与交通标志识别能力。〔3〕本实验树莓派与Arduino之间采用蓝牙模块通讯,存在一定的时间延迟,总体表现还好,应该考虑使用更好的通讯方式,以减小通讯的延迟时间。〔4〕采用提取感兴趣区域的方法,运用滑动窗口技术,并进行略微的改良,能够使图像识别能力比拟准确,处理速度更快。〔5〕由于硬件计算能力有限,导致整个系统发送指令时有一定的延迟时间,无人驾驶小车行驶过程中有一定的误差。
参考文献
[1] Saadna Y,Behloul A.An overview of traffic sign detection and classification methods[J].International Journal of Multimedia Information Retrieval,2023〔6〕:193-210.
[2] Qin Y Y,Cui W,Li Q,et al.Traffic Sign Image Enhancement in Low Light Environment[J].Procedia Computer Science,2023〔154〕:596-602.
[3] Salti S,Petrelli A,Tombari F,et al.Traffic sign detection via interest region extraction[J].Pattern Recognition,2023,48〔4〕:1039-1049.
[4] Alexander Shustanov,Pavel Yakimov.CNN Design for Real-Time Traffic Sign Recognition[J].Procedia Engineering,2023〔201〕:718-725.
[5] Cao Jingwei,Song Chuanxue,Peng Silun,Xiao Feng,Song Shixin. Improved Traffic Sign Detection and Recognition Algorithm for Intelligent Vehicles[J].Sensors〔SENSORS-BASEL〕,2023,19〔18〕:4021.
[6] Selcan Kaplan Berkaya,Huseyin Gunduz,Ozgur Ozsen,Cuneyt Akinlar,Serkan Gunal.On circular traffic sign detection and recognition[J].Expert Systems with Applications,2023〔48〕:67-75.
[7] 章敏敏,徐和平,王晓洁,等.谷歌TensorFlow机器学习框架及应用[J].微型机与应用,2023,36〔10〕:58-60.
[8] 武歷颖.无人驾驶汽车环境信息提取及运动决策方法研究[D].西安:长安大学,2023.
[9] 白辰甲.基于计算机视觉和深度学习的自动驾驶方法研究[D].哈尔滨:哈尔滨工业大学,2023.
[10] 孙洪萍.图像识别——交通标志的检测与识别[J].科技创新与应用,2023〔11〕:130-131.
[11] 吕威.电动助力转向系统稳定性和电流控制方法研究[D].长春:吉林大学,2023.
[12] 刘刚.基于智能车的后轮双电机差速的研究与应用[J].电子制作,2023〔13〕:88-89.
[13] 陈孟元,孙书诚,王虎.基于图像识别的寻迹智能车设计[J].重庆理工大学学报〔自然科学〕,2023,27〔3〕:80-84+103.
[14] 仲崇豪,宋斌,徐方明,等.基于TensorFlow的交通标志识别系统研究[J].信息与〔理论版〕,2023,31〔22〕:101-102.
[15] 王全,梁敬文.基于Tens