林靜怡,史曉穎
(杭州電子科技大學計算機學院,浙江 杭州 310018)
近年來以電動車和摩托車為代表的雙輪車數量激增,由此引發的各種嚴重交通違法行為日益凸顯,無頭盔駕駛、闖紅燈、逆行等違法行為不斷發生。據國家統計局統計,僅2019年全國雙輪車交通事故量就占32%,這些交通違法行為造成了交通事故數量長期居高不下,給人民群眾的生命財產安全造成了極大損失。雙輪車數量龐大,管理需耗費大量的人力,因此,高效無人化的科學管理工作迫在眉睫。
本系統在YOLOv4-tiny上做了改進,使檢測的精度更高。對輸入的道路監控視頻,首先運用目標檢測技術對目標(雙輪車、是否佩戴頭盔的人頭)進行識別與定位,計算人頭與雙輪車之間的IOU 矩陣(目標之間的距離指標),以此為依據進行人頭和雙輪車的匹配。若判定為未戴頭盔,則進行車牌識別和人臉識別,雙重保險讓違法人員無所遁形。針對闖紅燈和逆行行為則利用多目標跟蹤技術對其運行軌跡進行判斷。最后將數據傳入數據庫,并將結果反饋給用戶,實現無人監督下的雙輪車管控。
系統兩大模塊如圖1 所示,分別為檢測模塊和管理模塊。其中,檢測模塊分為四大核心組件,均采用先進的計算機視覺算法模型,包括:基于YOLOv4-tiny 的目標檢測;利用高效的JDE 框架的多目標跟蹤;利用現有的PaddleOCR 實現車牌識別;利用成熟的Retinaface和Facenet 實現人臉識別。管理模塊利用數據可視化技術,繪制坐標熱力圖和統計圖表,搭建交警輔助管理平臺,分為PC 端和移動端,交管部門可輕松獲取違法人員信息,查看時間地點與車型并通知相關違規人員,用戶可快速接收并處理違規事件。大數據統計出危險駕駛人員出現次數較多的時間地點,為交警執法提供強有力直觀的參考。

圖1 系統架構圖
本系統使用私有數據集訓練模型。共采集并標注了6000 張圖片,約40000 個目標,以電動車、摩托車為代表的雙輪車為主,并且對駕乘人員是否佩戴頭盔進行標注。該數據集圖片由網絡爬蟲、城市道路多攝像頭抓拍采集而成。
經實驗得,在測試集上取得的識別與定位精度為82.8%mAP。其中具體類別:摩托車motor、帶頭盔的人頭helmet、沒戴頭盔的人頭without_helmet、行人pedestrian、自行車cyclist的識別與定位精度AP見圖2。

圖2 目標檢測模型在測試集上的表現
最終檢測識別結果以json 格式傳輸至后臺,由后臺傳至數據庫存儲。
2.1.1 目標檢測
YOLOv4-tiny 網絡則是經過了特殊的模型縮放方法對YOLOv4 修改得到的輕量級目標檢測網絡。在COCO 數據集上保持22.0%mAP 的同時達到了443FPS(使用RTX 2080Ti)。本文在yolov4-tiny 的基礎上增加了多尺度空洞卷積,以獲得不同大小的感受野,取得了更好的精度。具體結構如下,受ICCV 2019 上的三叉戟網絡的啟發,本文將多尺度空洞卷積應用在FPN(feature)中,進一步提高了感受野。原YOLOv4-tiny的Neck部分使用FPN(Feature Pyramid Networks)來融合不同尺寸特征圖的特征信息。本項目設計的多尺度空洞卷積網絡,在FPN Neck 層上增加了三叉戟模塊(Trident Block),采用三個不同空洞率的分支網絡。結構如圖3所示。

圖3 多尺度空洞卷積網絡結構
目前檢測未戴頭盔的主流方法是,先檢測雙輪車,再檢測人頭,兩步檢測的策略無法達到實時的要求。憑借項目組私有數據集,本系統同時檢測雙輪車與人頭,再計算人頭與雙輪車之間的IOU 矩陣(目標之間的距離指標),以此為依據進行人頭和雙輪車的匹配。只需一步檢測即可完成未戴頭盔的違法人員識別。
2.1.2 多目標跟蹤
目前的多目標跟蹤技術以SDE(Separate Detection tracking)為主,其中Deep SORT為SDE 的代表技術,也是目前工業界的主流。但SDE 類型的多目標跟蹤技術的缺點就是目標檢測與嵌入學習相互獨立,造成了重復計算。
2020 年發表在ECCV 上的一篇論文提出了JDE(Joint Detection tracking)框架,將目標檢測和嵌入學習融合在同一個網絡中,避免了重復計算,相較于SDE 框架,精度相同且有著速度上的顯著提升,實現了實時多目標跟蹤,經實驗得,在MOT-16 challenge上的跟蹤精度可達64.4%MOTA,且速度在18~22FPS之間波動。顯然JDE 框架更適合本項目高速,低成本的需求。
本系統將JDE 框架移植到YOLOv4-tiny,圖4 是本系統采用的多目標跟蹤技術框架圖。

圖4 多目標跟蹤實現思路
針對闖紅燈行為的檢測,根據我國現行車輛違章標準,需采集抓拍三張圖像:停止線之前的圖像信息;紅燈亮起時,整體車輛穿過停止線的圖像信息;越過停止線后的車輛圖像信息。因此,我們預先設置兩層虛擬線圈來抓拍三張圖像信息,如圖5 所示。當紅燈亮時,首先判斷車輛運動軌跡是否與虛擬線圈層1相交,其次看車輛運動軌跡是否與虛擬線圈層2相交,經過對虛擬線圈層2的判斷,即可認定為闖紅燈行為。并由路口攝像機抓拍與記錄的三張圖像,作為違章罰款證據。

圖5 左圖為闖紅燈檢測設置的虛線線圈示意圖,右圖為逆行檢測示意圖
針對逆行行為的檢測,預先設置路段的正方向,提取目標的運動軌跡,用X[i],Y[i]分別存儲第i 幀的邊界框中心的橫縱坐標。假設以X軸正方向為正確行駛方向,若一旦出現X[i+1]-X[i]<0,則判定為逆行。顯然,這種檢測方法過于簡單,容易造成誤檢。因此本項目采用連續N 幀的橫坐標變化,若橫坐標減小的比例大于設定的閾值,則判定為逆行。公式為:

count為計數函數,P為設定的閾值。
管理模塊由PC 端和微信小程序端構成,PC 端主要供管理人員查看處理違法違規事件分布情況和具體事件信息。微信小程序作為輔助手段,其即用即走方便快捷的優點,大大便利了用戶的使用,讓用戶能隨時隨地查看處理,不受內存、手機性能、手機系統等限制。管理模塊的功能模塊如圖6所示。

圖6 管理模塊功能模塊圖
2.2.1 PC端模塊實現
PC 端主要供工作人員使用,共有違法記錄管理、監控攝像頭管理和數據可視化分析三個功能模塊。該模塊使用Vue+Echarts+flask+mysql 實現,并在騰訊云服務器上完成部署。
在違法記錄管理模塊中,包括添加、刪除、查找、修改相關違法記錄等功能。添加新記錄時,客戶端將違法記錄信息提交到服務器,服務器按照設定的規則生成新的唯一的違法事件編號與填入信息一同新增到數據庫中。本文使用HTTP 協議的POST 方法實現圖片上傳功能。采用模糊查找可以實現時間、空間、個人身份或者具體事件編號等范圍的查找。此外,工作人員可以根據用戶提交的申訴內容對該條違法記錄進行再處理,用戶收到反饋且無異后,議點擊確定,至此違法事件處理完成閉環。
監控攝像頭管理模塊是對道路上各監控攝像頭的管理,可以記錄查看攝像頭狀態等信息以及實時監控畫面。系統將監控攝像頭采集到的視頻等信息送入目標檢測模型,并將結果以json 格式反饋到服務器端,經過設定規則對json 格式數據進行處理后添加入數據庫中,實現自動監管。工作人員也可通過該模塊實時監控攝像頭狀態,以便及時維修/更換損壞的攝像頭。同時,實時監控畫面的展示借助了流媒體服務器軟件相關接口,簡潔高效穩定。
數據可視化分析模塊由當日違規人次、各市區違規事件處理率、不同時段違規事件分布、違規事件高發街道、各類型違規事件在各區發生的趨勢以及違規事件熱力圖六部分組成。其中,違規事件熱力圖主要依托百度地圖SDK 進行開發。該系統對各路段監控攝像頭所記錄的違法事件進行統計整合,使用Echarts結合監控攝像頭綁定的坐標在地圖上繪制熱力圖??紤]到數據可視化大屏的實時性,系統設置每一秒后臺向前端推送一次數據,實現數據的動態更新。在該模塊中,系統采用WebSocket 協議,取代HTTP 在雙向通信場景下的使用,能很好的節省服務器資源和帶寬并達到實時通訊的目的。系統使用了flask_socketio模塊,該模塊實現了Flask對websocket的封裝,客戶端使用js 接收flask 服務器推送來的消息,并動態更新數據元素內容。
2.2.2 微信小程序端模塊實現
微信小程序端作為輔助手段供用戶使用,由用戶信息、違法事件管理、車輛信息三部分組成,用戶能夠隨時隨地查看或處理各種消息通知和相關事件。
在微信小程序端的違法事件處理模塊中,賬號密碼與個人信息相綁定,僅可以查看篩選所屬個人的相關違法事件,篩選也可以通過模糊查找按時間、地區、違法類型劃分。除此之外,針對未處理的事件,用戶可通過小程序快速提交處理。用戶查看未處理違法事件無誤后,點擊處理即可快速提交罰款,該處調用了微信支付api,當接收到響應報文訂單支付成功后,支付狀態由0 變為1,此時數據庫觸發器啟動,該事件狀態變更為已處理;若用戶存在異議,可通過違法事件詳情頁右下方的提示進入申訴界面進行申訴,申訴提交后事件狀態由未處理變更為申訴中,工作人員處理后將處理結果(駁回或同意撤銷)反饋到用戶端。同時,用戶也可在申訴界面查看申訴進度,系統將持續跟蹤整個動態流程。
除上述功能外,系統還添加了用戶使用反饋功能,在使用過程中,若用戶有任何的意見或者建議,都可以通過這個接口及時地反饋給工作人員,不斷完善系統功能,給用戶更好的使用體驗。
微信小程序測試過程采用版本Android11 的智能手機,服務器端環境為Centos8 操作系統,開發工具為Vue2.7+ElementUI+Echarts+Flask+My SQL8.0。
系統部分操作界面和流程如下所示。
工作人員登錄成功后跳轉到違法記錄管理界面圖7(左側),在此可以執行添加、查看、刪除等操作,經過反復實驗,該界面表現操作性好,速度快,反饋及時,在一定數量的數據面前速度仍舊可觀,能夠很好的幫助工作人員對違法事件的相關操作。
攝像頭管理界面相關可執行操作如圖7(右一)所示。在此可以按分區查看攝像頭具體信息,右部連接攝像頭,展示該監控攝像頭的實時監控畫面。該監控畫面經過目標檢測模型的處理,向工作人員清楚的展示畫面內人們的行駛情況。

圖7 違法記錄和監控攝像頭管理界面
數據可視化大屏如圖8 所示,整個數據可視化平臺比較全面的展示分析了各地違法事件發生的情況。經測試,在不斷改變測試數據的情況下,每秒做一次更新,效果接近于實時。可以幫助工作人員對各地發生違規駕駛行為的情況做出全面的評估和分析,不斷改變執法規則措施,尋找到能最大程度減少違規駕駛行為事件發生的方法。

圖8 大數據分析平臺結果圖
微信小程序界面查看和申訴部分操作界面如圖9所示。在違法記錄界面圖9(左)點擊事件發生地點跳轉到事件詳情界面圖9(中)。事件詳情頁中用戶可查看事件具體信息,存在異議可點擊右下角灰色小字進入申訴界面圖9(右)。經反復實驗,該界面操作性好,流程簡潔,用戶操作方便。

圖9 微信小程序部分操作界面
本文設計和實現的基于目標檢測和多目標跟蹤的雙輪車危險駕駛行為智能管控系統,把握政策走向,將目標檢測、多目標跟蹤等技術相結合,來解決城市交通智能管控中的雙輪車危險駕駛行為監測問題,形成了一個比較完善的雙輪車智能管控系統??紤]到使用的便捷性和靈活性,該系統采用PC 端和微信小程序端相結合的方式,讓使用者以低成本和靈活的方式使用該產品。經過測試,該系統交互性強,操作簡便,續航時間久,檢測覆蓋范圍廣,有較好的使用價值。