基于FPGA和深度学习的智能交通灯系统的设计和实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CHINA COLLECTIVE ECONOMY
摘要:文章在Quartus II环境下,利用VHDL语言并结合硬件电路设计了一种基于FPGA芯片和深度学习的智能交通灯控制系统。
该系统由控制模块、时钟分频模块、分位模块、显示模块和图像识别模块组成。
图像识别模块是利用深度学习的方法来实现其功能,其它模块的功能是利用VHDL 语言来实现,在Quartus II平台上进行分模块编译、仿真,并生成相应的模块元件,然后通过顶层电路图进行连接,最后进行编译和仿真。
图像识别模块的加入使得系统可对紧急情况下的交通路口进行快速有效管理,从而实现交通灯控制系统的智能化。
关键词:Quartus II;FPGA;深度学习; VHDL;仿真;智能交通灯控制系统
随着社会的发展,人们出行频率越来越高,汽车数量急剧增加,城市道路也日渐拥挤,在这样的背景下交通灯控制系统设计的合理化和智能化显得尤为重要。
如今市场上常见的交通灯控制系统虽然可以实现正常的路口交通控制和管理功能,但是其无法实现对于紧急情况下突发事件进行快速有效处理,例如当警车、救火车、消防车在交通路口出现时市场上的交通灯控制系统无法对路口交通进行快速控制和管理以便紧急车辆可以快速通过。
然而对于这些紧急情况下突发事件的处理非常重要,因为这关乎到人的生命、国家的财产损失等。
所以设计一款能够实现处理紧急情况下突发事件的智能交通灯系统非常重要。
在这个背景下,本文设计了一款基于FPGA芯片和深度学习的智能交通灯控制系统,该系统是利用FPGA芯片和深度学习模型来实现的。
文章通过电路仿真来验证交通灯系统的功能是否实现,利用FPGA设计电路从而有效降低设计成本,缩短设计周期,保证电路设计的正确性。
同时,为实现对于紧急情况下的突发事件处理,在整个电路系统中设计了一个基于深度学习的图像识别模块,利用该模块可对紧急车辆进行识别判断。
由于对于紧急
情况下的突发事件处理的重要性使得该
系统的设计具有比较广泛的应用和很强
的研究意义,同时,本文设计的智能交通
灯控制系统结构简单、稳定性好。
一、智能交通灯控制系统的结构和设
计原理
本文设计的智能交通灯控制系统可
以对十字路口的两个方向进行交通指挥,
每个方向有绿、黄和红三种指示灯,它们
的持续时间分别为20s、5s和25s。
同时,该
智能交通灯控制系统可以在任何一条路口
出现紧急情况时,如当消防车、救护车、警
车或其它需要优先放行的车辆通过时,各
方向上均是红灯亮,倒计时停止。
当紧急情
况结束后,控制系统恢复原来状态,继续正
常运行。
同时,为了实现十字路口对于紧急
情况的及时有效处理,系统设计了一个图
像识别模块,用于在几百米外提早检测到
紧急情况,并向系统传入紧急情况信号,从
而交通灯控制系统可以及早对十字路口进
行交通管控以便紧急车辆可以快速通过,
以避免生命的伤亡、国家财产的损失。
本
文设计的智能交通灯控制系统由五个模
块组成,分别为控制模块、时钟分频模块、
分位模块、显示模块和图像识别模块。
本文设计的智能交通灯控制系统有三
个输入信号,分别为系统输入信号clk20m、
置位信号reset和紧急情况信号hold。
clk20m通过分频模块可分别得到1Hz和
10Hz频率信号,分别用来向controller模块
和display模块提供时钟脉冲。
controller模
块根据时钟脉冲上升沿开始计数,将数据传
输到numa和numb两个端口,并对reda、
greena、yellowa和redb、greenb、yellowb两
组红、绿、黄灯开始控制。
分位模块时钟由系
统输入时钟clk20m控制,将controller模块
输出端口numa和numb传输过来的数据
分为十位数和个位数分别存到numina、nu⁃
minb和numinc、numind两组两位数组里,
然后分别送到display模块,利用display模
块显示输出端口numina、numinb和nu⁃
minc、numind的数据。
二、智能交通灯控制系统分模块的设
计原理及实现
本设计在Quartus II软件中采用混合
编译的方法来实现智能交通灯控制系统的
功能,故在设计智能交通灯控制系统前,需
要先进行智能交通灯控制系统电路核心模
块的设计。
在设计智能交通灯控制系统核心
模块时,首先分析了各个模块的设计原理,
然后通过VHDL语言的程序编译或输入原
理图的方法来实现各个模块的功能,最后在
Quartus II软件中编译生成元器件单元,为
之后搭建智能交通灯控制系统做好准备。
(一)控制模块的功能及实现
控制模块是通过对该模块的VHDL
程序进行编译来生成模块的功能元器件,
生成的功能元器件要实现的功能是根据计
数器的计数值和紧急情况控制发光二极管
的颜色、亮灭,以及输出倒计时数值给分位
电路模块以便在显示电路模块上进行显
示。
在Quartus II软件中对设计的控制模
块进行仿真,仿真的结果为当有紧急情况
发生时,输入信号hold=‘1’时计数器暂停
计数,输出信号reda=redb=‘1’,两个路口
的红绿灯点亮为红色。
当输入信号hold=
‘0’时计时器开始计数,开始B路口的红绿
灯亮为红色,A路口的红绿灯先亮为绿色,
亮灯时间为20s(19倒计时到0);接着A路
口的红绿灯亮为黄色,亮灯时间为5s(4倒
计时到0)。
紧接着A路口的红绿灯点亮为
红色,B路口的红绿灯先亮为绿色,亮灯时
间为20s(19倒计时到0);最后B路口的红
绿灯亮为黄色,亮灯时间为5s(4倒计时
到0)。
由上面的仿真结果知道该设计满
足了交通控制灯的设计要求,该设计可以
实现控制模块的功能。
(二)时钟分频模块的功能及实现
本文设计的时钟分频模块要实现的
基于FPGA和深度学习的
智能交通灯系统的设计和实现
姻何梓欣
69
年25期(9月)图2智能交通灯控制系统电路的仿真波形图功能是可对系统时钟信号(设为20MHz )进行分频,分频可得到10Hz 和1Hz 的时钟信号。
编写该模块的VHDL 语言,对其进行编译仿真,仿真得到的结果为当输入的时钟信号为20MHz 时,可通过更改VHDL 语言中的参数分别得到10Hz 和1Hz 的时钟信号。
由仿真结果知道该设计可以实现时钟分频模块的具体要求。
(三)分位模块的功能及实现
分位模块主要的作用是将输出的倒计时数值分成两个单独的数字。
这是因为控制模块输出的倒计时数值可能时1位或者2位十进制,而七段数码管的屏幕只能显示最大数值为9的数字,所以为了将倒计时的数值显示出来需要先进行分位处理,即将倒计时数值分为两个1位的十进制,如25分位为2和5;7分位为0和7。
对该模块的VHDL 程序进行编写,在Quartus II 软件中对该模块进行编译仿真,仿真的结果为在时钟信号clock 上升沿到来的时候电路会读取输入信号numin 的值,然后将输入信号numin 的十位数和个位数分别存到输出信号numa 和numb 里。
例如当numin=“10”时,numa=‘1’,numb=‘0’;当numin=“25”时,numa=‘2’,numb=‘5’。
由仿真结果可知该模块可以实现分位功能。
(四)显示模块的功能及实现
显示模块的作用是用于显示交通灯的倒计时数值,该显示模块采用的是七段译码器的编译码规则。
将十进制数据转化为对应的七段译码器数据。
对该模块的VHDL 程序进行编写,在Quartus II 软件中对该模块进行编译仿真,仿真的结果为当时钟信号clock 上升沿到来时输入端qin=“0”时输出端display=“0111111”,数码管显示的数字为0;当qin=“1”时x=“0000110”,数码管显示的数字为1;当qin=“2”时x=“1011011”,数码管显示的数字为2;当qin=“3”时x=“1001111”,数码管显示的数字为3;当qin=“4”时x=“1100110”,数码管显示的数字为4;当qin=“5”时x=“1101101”,数码管显示的数字为5;当qin=“6”时x=“1111101”,数码管显示的数字为6;当qin=“7”时x=“0000111”,数码管显示的数字为7;当qin=“9”时x=“1101111”,数码管显示的数字为9;当qin=“10”和“11”时x=“0000000”。
由此可知仿真图符合编程的要求,输入数据qin 和数码管的显示数据一样,该设计实现了显示电路的功能。
(五)图像识别模块的功能及实现图像识别模块的作用是在距离十字路口几百米外对紧急车辆进行识别判断,当判断是紧急车辆时,在车辆未到达时对交通路口进行快速有效管理以便紧急车辆快速通过。
该模块是基于深度学习来实现的,该模块是在caffe 平台上利用计算机视觉领域中目标检测框架Faster R-CNN 来实现对紧急车辆的识别,该目标检测框架利用了CNN 卷积网络来对图像的特征进行提取,利用RPN 网络来生成区域建议窗口。
在训练目标检测模型时,使用的训练集的大小为11368张图片,有三种图片类别,分别为警车、消防车和救护车。
测试集的大小为260张图片。
模型检测的准确度为90.6%。
该模型基本上可以满足正常的检测需求,可以在实际应用中准确检测到紧急车辆,并将信号传输给控制模块。
三、智能交通灯控制系统的实现与仿真分析(一)智能交通灯控制系统的设计与实现如图1所示。
(二)智能交通灯控制系统电路的仿真波形图分析:图2是在B 路口亮红灯时A 路口先后亮绿灯和黄灯的情况。
其中displaya 、displayb 、displayc 和displayd 分别为A 路口倒数时间的十位数、A 路口倒数时间的个位数、B 路口倒数时间的十位数、B 路口倒数时间的个位数。
由图2可以发现在时钟脉冲clk20m 的作用下当输入信号hold=‘0’且reset=‘0’时计时器开始计数,B 路口的红绿灯亮为红色,亮灯时间为25s (dis 鄄playc 和displayd 从24s 倒计时);A 路口的红绿灯先亮为绿色,亮灯时间为20s (displaya 和displayb 从19倒计时);接着A 路口的红绿灯亮为黄色,亮灯时间为5s (displaya 和displayb 从4倒计时到0)。
由图1可以发现该设计的显示功能正常实现。
接下来B 路口会重复A 路口的上一次动作,如此循环下去。
四、结语本文针对在交通路口紧急车辆需要快速通过的市场需求设计了一款基于FPGA 芯片和深度学习的智能交通灯控制系统。
该系统利用Quartus 域软件采用VHDL 语言编程实现交通灯控制系统的设计、仿真,并通过仿真的结果来验证交通控制灯的功能。
同时,为了实现对于紧急情况的快速处理,系统引入了图像识别模块,该模块是利用深度学习的模型来实现对于紧急车辆的检测,利用该模块在交通路口几百米外的地方可成功实现对紧急车辆的检测识别,这使得在紧急车辆到达前可对交通路口的车辆进行有效管理,从而使得紧急车辆在交通路口可快速通过。
可对紧急情况下的突发事件进行有效处理使得该系统具有比较好的应用前景。
参考文献:[1]杨晓慧.FPGA 系统设计与实例[M].人民邮电出版社,2009.[2]张晓荣.智能交通灯的设计及其FPGA 的实现[J].传感器世界,2013(01).[3]杜瑞雪.基于FPGA 的轮询控制智能交通灯系统的设计[J].实验科学与技术,2017(01).[4]林晓翠.基于深度学习的车辆检测研究[D].厦门大学,2016.[5]曹诗雨.基于Fast R-CNN 的车辆目标检测[D].西安交通大学,2017.[6]张飞云.基于深度学习的车辆定位及车型识别研究[D].江苏大学,2016.(作者单位:郑州外国语学校)图1智能交通灯控制系统电
路图70。