基于微處理器的車流量數據的檢測與分析
利用AVR單片機的PD口來控制選通兩片74HC244芯片中的一個,即分別選通兩個接收排中的一排,將接收到的數據用AVR的PB口接收,通過仿真,可檢測算法在運行中的正確性。另外,微處理器的PA口用于與外部進行通信,將識別結果發送到上位機。
6 識別算法的設計過程
算法的設計直接決定識別的效果,甚至系統的成本。算法中要解決的關鍵技術問題是如何確定有車進入測試區間、判斷車行進方向、并排行駛多輛車的識別、車的型號以及車流量的確認。
本系統采用C語言編程,軟件調試通過硬件測試、單排識別測試、穩定雙排識別測試和帶外部通信的測試四個階段逐步設計、修改、優化算法和程序,最終達到比較理想的識別效果。
(1)在硬件測試中,用程序檢測接收電路中所選擇的電阻以及三極管的型號是否合理,這將直接影響采集靈敏性和采集效果。
(2)完成硬件測試后,通過單排檢測測試,首先要解決確定有車進入測試區的標準,本步驟關鍵一點是測算兩個接收點的間距w,首先要保證最小的車型寬度足以擋住n個接收點,而并排行駛的汽車間最小距離也應大于一個接收間距,這樣對判斷是一輛車經過還是多輛車在算法設計上提供了可行性。可根據現場中接收點密度選定n的取值,本實驗模型中選擇n為3。因此,在判斷一排接收信號中,有連續3個以上接收點被擋,即說明有車經過。
將一排接收點編號,為r[0]到r[7],這樣首次提取到r[i]到 r[j]連續被擋,將j與i的差值賦給變量l,如果l的值不小于3,即發現車輛,同時l*w即可以確定車輛寬度,對照車寬標準,可以判斷車型。另外,提取第j位以后的各位,如果7-j不小于4,則有并行過車可能,仿照第一次判斷標準,判斷出是否有并行車輛,以及型號。
(3)雙排識別的作用是穩定的判斷出車行駛的方向,以及提取通過測試區車流量。這就需要根據車輛依次通過兩排測試排時產生的信號的先后變化,以及對車通過測試區域的分解動作建立模型,設計確定車流量的算法。在這個階段,又會出現新的干擾問題,就是車輛在連續通過兩個測試排過程中,剛要經過每個測試排時都會產生采集信號的劇烈變化,造成最終識別的嚴重錯誤,因此,在這一環節,需要加入防抖抗干擾措施,對每一排信號在一定時間內進行多次采樣,設置采樣標志變量,將多次采樣的標志變量進行綜合匹配,匹配后結果在置信區間的,則認為采集數據真實。但過多采樣,會降低系統運行速度,經過實驗,在模型中,取兩次采樣,間隔1ms,已經能達到滿意的效果。以第一排為例,設第一次采集中識別的車輛標志變量為a1(為0表示無車,為1表示有車),并行標志變量b1(為0表示無車,為1表示有并行車);同理,設第二次采集得到的相應變量為a2和b2,則第一排真實的過車情況標志變量a和b如圖4所示。
通過類似方式獲得第二排的置信狀態,綜合兩排車輛運行狀態,通過設計的判斷車輛駛入、通過、駛出和駛離動作模型,用算法將完成這一套動作作為判斷車行進方向以及車輛真正通過測試區,完成一次記數的標準。綜合,以上各步驟程序以及采集到的數據,完成雙向并排車流量的識別。
(4)系統在處理與外部通信中,根據外部所連接設備,用算法讓系統在合適時機送出數據,避免過頻通信,占用識別處理時間,影響結果。
7 結論
本文中有兩個創新點,首先是用矩陣式紅外識別解決了以往利用紅外線或激光判斷統計物體經過某區域時,只能根據物體經過時阻擋信號的次數計數,需要物體必須按順序逐個經過測試區域,不能對并行通過的物體識別的缺陷,實現了經濟高效的在雙向上識別并排通行的多輛車。
其次根據車輛通過測試區的不同狀態,設計了多樣的算法,能夠高效識別車輛通行狀況。
評論