基于圖像處理的智能交通信號系統(tǒng)設(shè)計*
*基金項目:遼寧省大學(xué)生創(chuàng)新項目,項目編號:X202210143043
本文引用地址:http://www.ex-cimer.com/article/202304/445977.htm社會經(jīng)濟(jì)逐步發(fā)展,汽車制造行業(yè)興起,使我國汽車保有量大幅增加,但城市道路因各種原因無法進(jìn)行擴(kuò)建,易導(dǎo)致交通擁堵。在早高峰時間可能出現(xiàn)大量車在等紅燈,而另一方向路口卻很少有車輛通行。這種固定信號周期控制造成的交通擁堵,大大限制了交叉路口的通行能力。若信號燈綠燈時間可以隨著車況進(jìn)行調(diào)整,那這種情況將得以改善。由于人工統(tǒng)計車流量易造成遺漏且過于耗費人力,地下線圈統(tǒng)計則安裝成本高且維護(hù)困難。
由此可見,一個能隨著車流變化的智能交通信號系統(tǒng)尤為重要。在車流密集的道路上增長綠燈時間,在車流稀少的路口相應(yīng)減少。利用視覺處理的方式避免安裝傳感器帶來的高成本、高維護(hù),減少對人力的投入。
1 系統(tǒng)總體方案設(shè)計
針對上述背景,設(shè)計了基于圖像處理的智能交通信號燈控制系統(tǒng),該系統(tǒng)在OpenCV 平臺的基礎(chǔ)上,利用Python語言編寫,并以樹莓派為主控。在使用過程中連接高清攝像頭實時捕捉路上車輛行駛的視頻圖像,經(jīng)過OpenCV 計算機(jī)視覺庫對圖像的處理,獲取車流輛、車輛排隊長度,通過智能算法對下一刻汽車的數(shù)量進(jìn)行預(yù)測。根據(jù)此計算結(jié)果,調(diào)整交通信號燈的時間,以此實現(xiàn)智能交通信號,改善交通狀況,使十字路口通行更加順暢。
2 硬件控制核心選擇
本設(shè)計需要對路面進(jìn)行抓拍、圖像處理以及計算等任務(wù)??梢允褂肙penMV 硬件或樹莓派+OpenCV+ 攝像頭。OpenCV 是一個跨平臺的計算機(jī)視覺庫,有著多種計算機(jī)視覺的算法。而OpenMV 是視覺模塊硬件,本質(zhì)是一個STM32 單片機(jī)。在圖像處理方面,OpenCV更占優(yōu)勢;在性能方面,OpenMV 在處理大量數(shù)據(jù),運行實時性系統(tǒng)會比較吃力,樹莓派性能較高可以搭載OpenCV 運行庫,對圖像數(shù)據(jù)進(jìn)行處理,可以運行更多算法。同時,在公路上一般都裝載攝像頭,可以直接接入樹莓派進(jìn)行使用,更為方便。故采用樹莓派+OpenCV+ 攝像頭進(jìn)行開發(fā)較為妥當(dāng)。
3 系統(tǒng)程序設(shè)計
首先利用OpenCV 庫對視頻流進(jìn)行獲取,對路面的車流的每一幀進(jìn)行處理,調(diào)節(jié)合適的參數(shù)使車輛凸顯出來,并使用幀差法實現(xiàn)目標(biāo)跟蹤,用虛擬線圈法進(jìn)行統(tǒng)計車流量。把得到的平均車流量、車輛排隊長度輸入到模糊控制器中得到一個更加合理的綠燈時間。程序設(shè)計流程如圖1 所示:
圖1 程序設(shè)計流程圖
3.1 圖像預(yù)處理
在圖像預(yù)處理中,需要對形態(tài)學(xué)進(jìn)行了解。這是對圖像處理和描述的有力工具,其在計算機(jī)視覺、數(shù)據(jù)處理方面有著廣泛的應(yīng)用。
視覺圖像處理就是運用數(shù)學(xué)形態(tài)學(xué),它可分為二值形態(tài)學(xué)和灰度形態(tài)學(xué)。其主要的運算就是腐蝕( 式1)、膨脹( 式2)。腐蝕會縮小白色部分,使輪廓更加的細(xì)化,一般處理用于處理離散點,將兩個不同物體的連接斷開。膨脹會增大白色部分,使輪廓更加粗壯,一般處理一個物體內(nèi)部像素點不全的問題。
在此過程中,設(shè)置腐蝕、膨脹內(nèi)核,使用Numpy 庫進(jìn)行進(jìn)行卷積核的設(shè)定kernel = np.ones((6, 6), np.uint8)更改數(shù)值可以對核的形狀和尺寸進(jìn)行設(shè)定。即可得到一個尺寸相同的矩陣。這時就可以對矩陣中選定的形態(tài),進(jìn)行腐蝕、膨脹將形狀提取出來。二值化圖像如圖2 所示、腐蝕膨脹結(jié)果如圖3 所示:
3.2 車流量檢測設(shè)計
1)車輛目標(biāo)跟蹤
車輛目標(biāo)跟蹤采用幀差分法進(jìn)行目標(biāo)跟隨通過cv2.cvtColor()函數(shù)對這這一幀與上一幀圖像轉(zhuǎn)為灰度圖像,并通過高斯濾波消除噪音,以減小光線變化或攝像頭輕微晃動引起的噪聲,而后使用cv2.absdiff() 對這附近兩幀進(jìn)行差分,得到兩張圖的差異之處。采用二值化處理,將車輛從圖中提取出來。最后將兩幀圖片變化的地方進(jìn)行腐蝕、膨脹處理,獲得更加明顯的差異。并不斷迭代形成一個連續(xù)的圖像。但這種方式精度略低,可以使用改進(jìn)方法:多幀間差分法[1],將當(dāng)前幀、前后相鄰兩幀像素的灰度值進(jìn)行運算,通過3 幀圖像差分得到完整目標(biāo)輪廓。
通過上述方法獲得差異,利用cv2.findContours 進(jìn)行對所有輪廓點的儲存,并將輪廓添加到原始幀中,從而持續(xù)跟蹤目標(biāo)。目標(biāo)跟蹤算法如圖4 所示:
圖4 目標(biāo)跟蹤算法
2)虛擬線圈計數(shù)法
這種方法與傳統(tǒng)的在路面下方安置物理線圈類似,但物理線圈有著維護(hù)費用高,易造成道路損壞等問題。使用虛擬線圈計數(shù)成本低,檢測也更為方便。運用視覺處理,以道路單一方向的車流為基礎(chǔ),在視頻的中央處垂直與車道線畫一條虛擬檢測線。每當(dāng)車輛穿過這條檢測線時,車流量計數(shù)加一,并在這輛車離開攝像頭的范圍將其計數(shù)減一。通過這種方式實時記錄車流量。
在判斷車輛是否穿過這條虛擬檢測線,利用數(shù)學(xué)幾何中的叉乘。以下為正方向時,車輛1 在線圈上方AC×AD 即為正、車輛2 在線圈下方BC×BD 為負(fù)??傻弥诰€圈上方時結(jié)果為正,下方為負(fù)。所以當(dāng)觀察到的目標(biāo)計算值由正變?yōu)樨?fù)時,就可以確定有車穿過了虛擬線圈,進(jìn)而實現(xiàn)計數(shù)功能。虛擬線圈理論示意圖如圖5 所示、車流量計數(shù)測試圖如圖6 所示:
3.3 車輛排隊長度獲取
要完成對車隊長度的測量,需將圖像二值化處理將背景與車輛進(jìn)行分離。利用基于模板的快速單車道提取[5], 這是一種模板化的方法,由于車道線在任意一幀圖像中的位置是不變的,因此可以利用模板圖像對任意一幀圖像進(jìn)行模板化處理,以直接完成該幀圖像的單車道提取。由于圖片的橫向缺失故需進(jìn)行膨脹處理,使白色圖像更加豐滿,最后對像素長度進(jìn)行獲取,得到圖片中車輛的排隊長度。車輛排隊長度程序設(shè)計流程圖如圖7所示:
圖7 車輛排隊長度程序設(shè)計流程圖
3.4 模糊控制器設(shè)計
一般十字路口變化基本為:①南北直行綠燈、東西直行紅燈50 s。②南北路口黃燈閃爍3 s、東西路口繼續(xù)紅燈。③南北直行路口紅燈、東西直行路口綠燈50 s。④南北直行紅燈、東西路口黃燈閃爍。這4 個反復(fù)循環(huán)是十字路口的基本規(guī)則,南北或東西路口的左轉(zhuǎn)、右轉(zhuǎn)都穿插在這直行信號之間,使各個車輛能夠安全地通過。但車流量會隨著交通情況實時改變,很難建立一個完美的信號周期。由于模糊控制是一種基于特定規(guī)則和專家經(jīng)驗的控制思路,于人們的認(rèn)知誕生的算法,它不需要特別精確的數(shù)學(xué)模型也可以得到想要的效果。故采用模糊控制策略得出相對合理的、符合當(dāng)時道路的交通信號周期。
1)參數(shù)設(shè)置
模糊化處理是將獲取到的南北通行平均車流量Rsn 、東西通行平均車流量Rew 、南北車輛排隊長度Lsn、東西車輛排隊長度Lew 這4 個參數(shù)進(jìn)行模糊評級。將車流量密集程度分為4 個等級擁堵、稠密、正常、基本沒有車輛通行并對其分別賦值9、6、3、0。給車輛排隊長度也分為4 個等級極長、長、一般、基本沒有車輛停止,也分別賦值為4、3、2、1。在進(jìn)行模糊化后開始模糊推理,由于模糊推理的輸出結(jié)果是模糊量,需要使用式(3)(4)得出清晰化結(jié)果。模糊控制器算法設(shè)計圖如圖8 所示:
圖8 模糊控制器算法設(shè)計圖
2)參數(shù)獲取與優(yōu)化算法
當(dāng)處于①信號狀態(tài)時,獲取南北通行平均車流量Rsn 處于②狀態(tài)時獲取東西車輛排隊長度Lew 、處于③狀態(tài)時獲取東西通行平均車流量Rew 、處于④狀態(tài)時獲取南北車輛排隊長度Lsn 。
在進(jìn)行①②③狀態(tài)后于④狀態(tài)的黃燈時間,整理獲取到交通情況的各個參數(shù)后,開始對新一輪的南北綠燈時間Tsn和東西綠燈時間Tew進(jìn)行評估(K 默認(rèn)為1)。
通過這樣的方式不改變信號周期的總時長 ,當(dāng)哪個方位車流量增多,并以排隊時間之比進(jìn)行倍增,對于不同情況可以調(diào)節(jié)K 值,減小或增大ΔT 的范圍,提高了本優(yōu)化算法的適應(yīng)性,使其更加適合交通情況。
4 結(jié)束語
本文主要介紹了基于圖像處理的智能交通信號系統(tǒng),利用目標(biāo)跟蹤與虛擬線圈法得到路口車流量的稠密程度,并設(shè)計了模糊控制器,它可以根據(jù)車流量、車輛排隊長度對路口的綠燈時間進(jìn)行適當(dāng)調(diào)整,這種能夠按照交通路口擁堵程度自行更改綠信比的智能交通信號系統(tǒng)可以大大提升十字路口的通行效率,使社會資源分配的更加合理,有效解決交通擁堵的現(xiàn)象。
參考文獻(xiàn):
[1] 宮金良,陳濤,張彥斐,等.一種基于多區(qū)域信息融合約束的改進(jìn)幀間差分目標(biāo)檢測與跟蹤算法[J].江蘇大學(xué)學(xué)報(自然科學(xué)版),2022,43(3):302-309.
[2] 文豐,王樂群,張凱華.基于ZYNQ加速的幀差法運動目標(biāo)檢測[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2022,22(6):74-78.
[3] 李春明,楊姍,遠(yuǎn)松靈.結(jié)合幀差法與窗口搜索的車道線跟蹤方法[J].太赫茲科學(xué)與電子信息學(xué)報,2022,20(4):372-377.
[4] 黃大君,吳昊.基于虛擬線圈的車速檢測算法研究[J].蘭州文理學(xué)院學(xué)報(自然科學(xué)版),2020,34(1):76-81.
[5] 林彬.基于圖像處理的智能交通信號燈控制系統(tǒng)的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2011.
(本文來源于《電子產(chǎn)品世界》雜志2023年4月期)
評論