郭 蓬,李秋辰,戎 輝,唐風敏,王文揚,蔡 聰,袁俊肖,王夢丹
(1.中國汽車技術研究中心有限公司,天津 300300;2.西北大學,陜西 西安 710127;3.河北工業大學,天津 300222)
世界衛生組織的數據顯示,世界每年因道路交通造成的事故約為125萬起[1]。在各種交通事故中,弱勢交通參與者的死亡率更高。在正常駕駛過程中,駕駛員及時有效地對弱勢交通參與者的行為做出決策,在一定程度上能夠提高道路交通秩序、避免安全事故。而這個過程僅僅靠人眼看到其他交通參與者后短時間做出反應是遠遠不夠的,這需要攝像頭等設備能夠檢測出弱勢交通參與者如行人、自行車等,并將檢測結果廣播給周圍的車載終端進行預警,這樣駕駛員就能在一定距離提高警惕,減少事故發生的幾率。所以攝像頭具備準確檢測弱勢交通參與者的能力頗具意義。本文提出了一套弱勢交通參與者的檢測系統,并針對不熟悉測試軟件編譯環境的工程人員導致操作流程效率低下等問題,借助虛擬儀器LabVIEW軟件,做出直觀、便于操作的交互界面,在該平臺下調用庫函數節點與OpenCV進行混合編程,最后展示該系統的運行結果并給出結論。

圖1 系統整體結構圖
本系統的整體結構如圖1所示。第1部分負責圖像采集,其中攝像頭主要用來采集圖像信息,高品質的圖像信息對檢測結果起著至關重要的作用。良好的攝像頭設備采集的圖像應當輪廓清晰,對比度和清晰度較好,另外,選取相對簡潔的背景也有利于獲得準確的檢測結果。第2部分負責圖像處理與檢測結果發送。采用的是配置Windows 10操作系統、NI LabVIEW 2017(32位)開發軟件和裝有opencv-3.4.0的Visual Studio 2017開發環境的電腦。Windows 10操作系統在性能方面有所提升,并且能夠免費升級,安全性較好。LabVIEW 2017(32位)支持中文版,并且需要下載NI Vision Acquisition軟件平臺,安裝成功后能在LabVIEW函數面板和前面板中選擇相關VI[2]。第3部分通過WiFi方式將上位機和RSU連接,傳遞檢測結果,RSU可根據收到的檢測結果廣播出去,供車載終端顯示和預警。
本系統主要有3臺硬件設備,其中圖像采集使用的是一款動態分辨率為1280×720,最大幀頻為30FPS的高清攝像頭。上位機通過網線方式連接攝像頭接收采集的圖像信息。路側設備RSU通過WiFi與上位機連接接收上位機發送的檢測結果。
2.2.1 界面設計
在完成攝像頭的初始化工作后,調用 IMAQdx Grab.vi將攝像頭采集的圖像通過Image窗口控件顯示。本系統整體的UI界面如圖2所示。

圖3 檢測程序流程圖

圖2 UI界面圖
獲取本地IP地址、設置連接端口號、設置緩沖區大小的程序部分放在LabVIEW下進行編寫,這樣有助于在UI界面直觀地對這些參數進行修改。從建立UDP通信開始,將代碼放在Visual Studio 2017開發環境進行編寫,并生成DLL文件。DLL(Dynamic-link Library)即為動態鏈接庫,是微軟實現共享函數庫的一種方式,動態鏈接方式是把一些常用的函數代碼制作成DLL文件,當LabVIEW中的部分程序調用到DLL中的某個函數的時候,windows系統才把DLL加載到內存中。動態鏈接能在當LabVIEW程序需要的時候才鏈接DLL,其優點就是使磁盤和內存的消耗減少。此外,Lab-VIEW提供了模塊化的函數庫,方便調用DLL文件,需要預留函數的接口部分。
LabVIEW中實現調用DLL方法與配置如圖4所示。在“庫與可執行程序”選板中選擇“調用庫函數節點”。在此對話框中選擇要調用的DLL文件,并指定需要使用的函數,配置當前參數。
在界面設計部分,主體部分使用了選項卡控件。參數配置:主要配置系統參數,如本地IP地址、設置連接端口號、設置緩沖區大小、輸入設備選擇、輸出文件夾路徑、圖像預處理選擇等。采集圖像:用于顯示攝像頭采集的原始圖像或經過預處理的圖像。驗證結果:原始圖像經過算法加工后結果圖像,用于顯示算法的驗證結果。歷史圖像:將一定間隔時間的圖像結果保存,方便查看之前的歷史圖像,進行分析與觀察。擴展功能:預留擴展功能選項卡,可根據驗證內容擴展功能。
2.2.2 檢測程序設計
獲得圖像信息后,需要對獲得的圖像進行弱勢交通參與者檢測,本系統利用的是Visual Studio 2017開發環境下OpengCV語言進行算法編程,檢測程序流程圖如圖3所示。

圖4 調用庫函數節點和配置界面圖
在核心算法部分,使用的是梯度方向直方圖和支持向量機來實現弱勢交通參與者的檢測。基本流程為提取正負樣本HOG(Histogram of Oriented Gradient)特征投入訓練好的行人識別SVM (Support Vector Machine)分類器訓練,建立這些特征向量的分離超平面,形成分類器,最后分類器對提取出的動態目標候選區域實現行人與非行人的分類,實現行人識別[3]。當需要修改算法,只需要根據本系統程序面板的接口,修改和制作DLL文件并重新添加即可。這樣可以依托平臺完成不同程序算法的快速驗證。
在運行該系統后,配置相關參數,以參與者行人為例,檢測結果如圖5所示。行人到達攝像頭范圍內,定義的綠色框框選圖像信息中的行人。
根據系統運行結果,可以發現本系統能成功實現行人檢測算法的驗證工作,具備一定的準確度。相比傳統的檢測平臺,本設計具有直觀、易操作的交互界面。利用NI Vision Acquisition軟件平臺和視覺軟件包中的相關數學工具和圖像預處理VI,能大大縮短開發的時間成本。另外,方便而強大的圖像數據管理和保存,使得工程人員更容易分析行人識別算法的不足,完善自身的程序內容。在之后會根據更多的算法需要添加更多功能,該系統具有良好的擴展性[4]。

圖5 行人檢測結果