基于FPGA和深度学习的智能交通灯系统的设计和实现

2018-08-22 07:50何梓欣
中国集体经济 2018年25期
关键词:仿真深度学习

何梓欣

摘要:文章在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、numinb和numinc、numind两组两位数组里,然后分别送到display模块,利用display模块显示输出端口numina、numinb和numinc、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)。由上面的仿真结果知道该设计满足了交通控制灯的设计要求,该设计可以实现控制模块的功能。

(二)时钟分频模块的功能及实现

本文设计的时钟分频模块要实现的功能是可对系统时钟信号(设为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(displayc和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.

(作者单位:郑州外国语学校)

猜你喜欢
仿真深度学习
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
Buck开关变换器的基本参数设计及仿真分析
试析PLC控制下的自动化立体仓库仿真情况分析
深度学习算法应用于岩石图像处理的可行性研究
基于MADYMO的航空座椅约束系统优化设计
中国体态假人模型与FAA Hybrid Ⅲ 型假人模型冲击差异性分析
基于深度卷积网络的人脸年龄分析算法与实现