何梓欣

摘要:文章在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.
(作者單位:鄭州外國語學校)