林靜怡,史曉穎
(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
近年來(lái)以電動(dòng)車和摩托車為代表的雙輪車數(shù)量激增,由此引發(fā)的各種嚴(yán)重交通違法行為日益凸顯,無(wú)頭盔駕駛、闖紅燈、逆行等違法行為不斷發(fā)生。據(jù)國(guó)家統(tǒng)計(jì)局統(tǒng)計(jì),僅2019年全國(guó)雙輪車交通事故量就占32%,這些交通違法行為造成了交通事故數(shù)量長(zhǎng)期居高不下,給人民群眾的生命財(cái)產(chǎn)安全造成了極大損失。雙輪車數(shù)量龐大,管理需耗費(fèi)大量的人力,因此,高效無(wú)人化的科學(xué)管理工作迫在眉睫。
本系統(tǒng)在YOLOv4-tiny上做了改進(jìn),使檢測(cè)的精度更高。對(duì)輸入的道路監(jiān)控視頻,首先運(yùn)用目標(biāo)檢測(cè)技術(shù)對(duì)目標(biāo)(雙輪車、是否佩戴頭盔的人頭)進(jìn)行識(shí)別與定位,計(jì)算人頭與雙輪車之間的IOU 矩陣(目標(biāo)之間的距離指標(biāo)),以此為依據(jù)進(jìn)行人頭和雙輪車的匹配。若判定為未戴頭盔,則進(jìn)行車牌識(shí)別和人臉識(shí)別,雙重保險(xiǎn)讓違法人員無(wú)所遁形。針對(duì)闖紅燈和逆行行為則利用多目標(biāo)跟蹤技術(shù)對(duì)其運(yùn)行軌跡進(jìn)行判斷。最后將數(shù)據(jù)傳入數(shù)據(jù)庫(kù),并將結(jié)果反饋給用戶,實(shí)現(xiàn)無(wú)人監(jiān)督下的雙輪車管控。
系統(tǒng)兩大模塊如圖1 所示,分別為檢測(cè)模塊和管理模塊。其中,檢測(cè)模塊分為四大核心組件,均采用先進(jìn)的計(jì)算機(jī)視覺算法模型,包括:基于YOLOv4-tiny 的目標(biāo)檢測(cè);利用高效的JDE 框架的多目標(biāo)跟蹤;利用現(xiàn)有的PaddleOCR 實(shí)現(xiàn)車牌識(shí)別;利用成熟的Retinaface和Facenet 實(shí)現(xiàn)人臉識(shí)別。管理模塊利用數(shù)據(jù)可視化技術(shù),繪制坐標(biāo)熱力圖和統(tǒng)計(jì)圖表,搭建交警輔助管理平臺(tái),分為PC 端和移動(dòng)端,交管部門可輕松獲取違法人員信息,查看時(shí)間地點(diǎn)與車型并通知相關(guān)違規(guī)人員,用戶可快速接收并處理違規(guī)事件。大數(shù)據(jù)統(tǒng)計(jì)出危險(xiǎn)駕駛?cè)藛T出現(xiàn)次數(shù)較多的時(shí)間地點(diǎn),為交警執(zhí)法提供強(qiáng)有力直觀的參考。
圖1 系統(tǒng)架構(gòu)圖
本系統(tǒng)使用私有數(shù)據(jù)集訓(xùn)練模型。共采集并標(biāo)注了6000 張圖片,約40000 個(gè)目標(biāo),以電動(dòng)車、摩托車為代表的雙輪車為主,并且對(duì)駕乘人員是否佩戴頭盔進(jìn)行標(biāo)注。該數(shù)據(jù)集圖片由網(wǎng)絡(luò)爬蟲、城市道路多攝像頭抓拍采集而成。
經(jīng)實(shí)驗(yàn)得,在測(cè)試集上取得的識(shí)別與定位精度為82.8%mAP。其中具體類別:摩托車motor、帶頭盔的人頭helmet、沒戴頭盔的人頭without_helmet、行人pedestrian、自行車cyclist的識(shí)別與定位精度AP見圖2。
圖2 目標(biāo)檢測(cè)模型在測(cè)試集上的表現(xiàn)
最終檢測(cè)識(shí)別結(jié)果以json 格式傳輸至后臺(tái),由后臺(tái)傳至數(shù)據(jù)庫(kù)存儲(chǔ)。
2.1.1 目標(biāo)檢測(cè)
YOLOv4-tiny 網(wǎng)絡(luò)則是經(jīng)過(guò)了特殊的模型縮放方法對(duì)YOLOv4 修改得到的輕量級(jí)目標(biāo)檢測(cè)網(wǎng)絡(luò)。在COCO 數(shù)據(jù)集上保持22.0%mAP 的同時(shí)達(dá)到了443FPS(使用RTX 2080Ti)。本文在yolov4-tiny 的基礎(chǔ)上增加了多尺度空洞卷積,以獲得不同大小的感受野,取得了更好的精度。具體結(jié)構(gòu)如下,受ICCV 2019 上的三叉戟網(wǎng)絡(luò)的啟發(fā),本文將多尺度空洞卷積應(yīng)用在FPN(feature)中,進(jìn)一步提高了感受野。原YOLOv4-tiny的Neck部分使用FPN(Feature Pyramid Networks)來(lái)融合不同尺寸特征圖的特征信息。本項(xiàng)目設(shè)計(jì)的多尺度空洞卷積網(wǎng)絡(luò),在FPN Neck 層上增加了三叉戟模塊(Trident Block),采用三個(gè)不同空洞率的分支網(wǎng)絡(luò)。結(jié)構(gòu)如圖3所示。
圖3 多尺度空洞卷積網(wǎng)絡(luò)結(jié)構(gòu)
目前檢測(cè)未戴頭盔的主流方法是,先檢測(cè)雙輪車,再檢測(cè)人頭,兩步檢測(cè)的策略無(wú)法達(dá)到實(shí)時(shí)的要求。憑借項(xiàng)目組私有數(shù)據(jù)集,本系統(tǒng)同時(shí)檢測(cè)雙輪車與人頭,再計(jì)算人頭與雙輪車之間的IOU 矩陣(目標(biāo)之間的距離指標(biāo)),以此為依據(jù)進(jìn)行人頭和雙輪車的匹配。只需一步檢測(cè)即可完成未戴頭盔的違法人員識(shí)別。
2.1.2 多目標(biāo)跟蹤
目前的多目標(biāo)跟蹤技術(shù)以SDE(Separate Detection tracking)為主,其中Deep SORT為SDE 的代表技術(shù),也是目前工業(yè)界的主流。但SDE 類型的多目標(biāo)跟蹤技術(shù)的缺點(diǎn)就是目標(biāo)檢測(cè)與嵌入學(xué)習(xí)相互獨(dú)立,造成了重復(fù)計(jì)算。
2020 年發(fā)表在ECCV 上的一篇論文提出了JDE(Joint Detection tracking)框架,將目標(biāo)檢測(cè)和嵌入學(xué)習(xí)融合在同一個(gè)網(wǎng)絡(luò)中,避免了重復(fù)計(jì)算,相較于SDE 框架,精度相同且有著速度上的顯著提升,實(shí)現(xiàn)了實(shí)時(shí)多目標(biāo)跟蹤,經(jīng)實(shí)驗(yàn)得,在MOT-16 challenge上的跟蹤精度可達(dá)64.4%MOTA,且速度在18~22FPS之間波動(dòng)。顯然JDE 框架更適合本項(xiàng)目高速,低成本的需求。
本系統(tǒng)將JDE 框架移植到Y(jié)OLOv4-tiny,圖4 是本系統(tǒng)采用的多目標(biāo)跟蹤技術(shù)框架圖。
圖4 多目標(biāo)跟蹤實(shí)現(xiàn)思路
針對(duì)闖紅燈行為的檢測(cè),根據(jù)我國(guó)現(xiàn)行車輛違章標(biāo)準(zhǔn),需采集抓拍三張圖像:停止線之前的圖像信息;紅燈亮起時(shí),整體車輛穿過(guò)停止線的圖像信息;越過(guò)停止線后的車輛圖像信息。因此,我們預(yù)先設(shè)置兩層虛擬線圈來(lái)抓拍三張圖像信息,如圖5 所示。當(dāng)紅燈亮?xí)r,首先判斷車輛運(yùn)動(dòng)軌跡是否與虛擬線圈層1相交,其次看車輛運(yùn)動(dòng)軌跡是否與虛擬線圈層2相交,經(jīng)過(guò)對(duì)虛擬線圈層2的判斷,即可認(rèn)定為闖紅燈行為。并由路口攝像機(jī)抓拍與記錄的三張圖像,作為違章罰款證據(jù)。
圖5 左圖為闖紅燈檢測(cè)設(shè)置的虛線線圈示意圖,右圖為逆行檢測(cè)示意圖
針對(duì)逆行行為的檢測(cè),預(yù)先設(shè)置路段的正方向,提取目標(biāo)的運(yùn)動(dòng)軌跡,用X[i],Y[i]分別存儲(chǔ)第i 幀的邊界框中心的橫縱坐標(biāo)。假設(shè)以X軸正方向?yàn)檎_行駛方向,若一旦出現(xiàn)X[i+1]-X[i]<0,則判定為逆行。顯然,這種檢測(cè)方法過(guò)于簡(jiǎn)單,容易造成誤檢。因此本項(xiàng)目采用連續(xù)N 幀的橫坐標(biāo)變化,若橫坐標(biāo)減小的比例大于設(shè)定的閾值,則判定為逆行。公式為:
count為計(jì)數(shù)函數(shù),P為設(shè)定的閾值。
管理模塊由PC 端和微信小程序端構(gòu)成,PC 端主要供管理人員查看處理違法違規(guī)事件分布情況和具體事件信息。微信小程序作為輔助手段,其即用即走方便快捷的優(yōu)點(diǎn),大大便利了用戶的使用,讓用戶能隨時(shí)隨地查看處理,不受內(nèi)存、手機(jī)性能、手機(jī)系統(tǒng)等限制。管理模塊的功能模塊如圖6所示。
圖6 管理模塊功能模塊圖
2.2.1 PC端模塊實(shí)現(xiàn)
PC 端主要供工作人員使用,共有違法記錄管理、監(jiān)控?cái)z像頭管理和數(shù)據(jù)可視化分析三個(gè)功能模塊。該模塊使用Vue+Echarts+flask+mysql 實(shí)現(xiàn),并在騰訊云服務(wù)器上完成部署。
在違法記錄管理模塊中,包括添加、刪除、查找、修改相關(guān)違法記錄等功能。添加新記錄時(shí),客戶端將違法記錄信息提交到服務(wù)器,服務(wù)器按照設(shè)定的規(guī)則生成新的唯一的違法事件編號(hào)與填入信息一同新增到數(shù)據(jù)庫(kù)中。本文使用HTTP 協(xié)議的POST 方法實(shí)現(xiàn)圖片上傳功能。采用模糊查找可以實(shí)現(xiàn)時(shí)間、空間、個(gè)人身份或者具體事件編號(hào)等范圍的查找。此外,工作人員可以根據(jù)用戶提交的申訴內(nèi)容對(duì)該條違法記錄進(jìn)行再處理,用戶收到反饋且無(wú)異后,議點(diǎn)擊確定,至此違法事件處理完成閉環(huán)。
監(jiān)控?cái)z像頭管理模塊是對(duì)道路上各監(jiān)控?cái)z像頭的管理,可以記錄查看攝像頭狀態(tài)等信息以及實(shí)時(shí)監(jiān)控畫面。系統(tǒng)將監(jiān)控?cái)z像頭采集到的視頻等信息送入目標(biāo)檢測(cè)模型,并將結(jié)果以json 格式反饋到服務(wù)器端,經(jīng)過(guò)設(shè)定規(guī)則對(duì)json 格式數(shù)據(jù)進(jìn)行處理后添加入數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)自動(dòng)監(jiān)管。工作人員也可通過(guò)該模塊實(shí)時(shí)監(jiān)控?cái)z像頭狀態(tài),以便及時(shí)維修/更換損壞的攝像頭。同時(shí),實(shí)時(shí)監(jiān)控畫面的展示借助了流媒體服務(wù)器軟件相關(guān)接口,簡(jiǎn)潔高效穩(wěn)定。
數(shù)據(jù)可視化分析模塊由當(dāng)日違規(guī)人次、各市區(qū)違規(guī)事件處理率、不同時(shí)段違規(guī)事件分布、違規(guī)事件高發(fā)街道、各類型違規(guī)事件在各區(qū)發(fā)生的趨勢(shì)以及違規(guī)事件熱力圖六部分組成。其中,違規(guī)事件熱力圖主要依托百度地圖SDK 進(jìn)行開發(fā)。該系統(tǒng)對(duì)各路段監(jiān)控?cái)z像頭所記錄的違法事件進(jìn)行統(tǒng)計(jì)整合,使用Echarts結(jié)合監(jiān)控?cái)z像頭綁定的坐標(biāo)在地圖上繪制熱力圖??紤]到數(shù)據(jù)可視化大屏的實(shí)時(shí)性,系統(tǒng)設(shè)置每一秒后臺(tái)向前端推送一次數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)更新。在該模塊中,系統(tǒng)采用WebSocket 協(xié)議,取代HTTP 在雙向通信場(chǎng)景下的使用,能很好的節(jié)省服務(wù)器資源和帶寬并達(dá)到實(shí)時(shí)通訊的目的。系統(tǒng)使用了flask_socketio模塊,該模塊實(shí)現(xiàn)了Flask對(duì)websocket的封裝,客戶端使用js 接收f(shuō)lask 服務(wù)器推送來(lái)的消息,并動(dòng)態(tài)更新數(shù)據(jù)元素內(nèi)容。
2.2.2 微信小程序端模塊實(shí)現(xiàn)
微信小程序端作為輔助手段供用戶使用,由用戶信息、違法事件管理、車輛信息三部分組成,用戶能夠隨時(shí)隨地查看或處理各種消息通知和相關(guān)事件。
在微信小程序端的違法事件處理模塊中,賬號(hào)密碼與個(gè)人信息相綁定,僅可以查看篩選所屬個(gè)人的相關(guān)違法事件,篩選也可以通過(guò)模糊查找按時(shí)間、地區(qū)、違法類型劃分。除此之外,針對(duì)未處理的事件,用戶可通過(guò)小程序快速提交處理。用戶查看未處理違法事件無(wú)誤后,點(diǎn)擊處理即可快速提交罰款,該處調(diào)用了微信支付api,當(dāng)接收到響應(yīng)報(bào)文訂單支付成功后,支付狀態(tài)由0 變?yōu)?,此時(shí)數(shù)據(jù)庫(kù)觸發(fā)器啟動(dòng),該事件狀態(tài)變更為已處理;若用戶存在異議,可通過(guò)違法事件詳情頁(yè)右下方的提示進(jìn)入申訴界面進(jìn)行申訴,申訴提交后事件狀態(tài)由未處理變更為申訴中,工作人員處理后將處理結(jié)果(駁回或同意撤銷)反饋到用戶端。同時(shí),用戶也可在申訴界面查看申訴進(jìn)度,系統(tǒng)將持續(xù)跟蹤整個(gè)動(dòng)態(tài)流程。
除上述功能外,系統(tǒng)還添加了用戶使用反饋功能,在使用過(guò)程中,若用戶有任何的意見或者建議,都可以通過(guò)這個(gè)接口及時(shí)地反饋給工作人員,不斷完善系統(tǒng)功能,給用戶更好的使用體驗(yàn)。
微信小程序測(cè)試過(guò)程采用版本Android11 的智能手機(jī),服務(wù)器端環(huán)境為Centos8 操作系統(tǒng),開發(fā)工具為Vue2.7+ElementUI+Echarts+Flask+My SQL8.0。
系統(tǒng)部分操作界面和流程如下所示。
工作人員登錄成功后跳轉(zhuǎn)到違法記錄管理界面圖7(左側(cè)),在此可以執(zhí)行添加、查看、刪除等操作,經(jīng)過(guò)反復(fù)實(shí)驗(yàn),該界面表現(xiàn)操作性好,速度快,反饋及時(shí),在一定數(shù)量的數(shù)據(jù)面前速度仍舊可觀,能夠很好的幫助工作人員對(duì)違法事件的相關(guān)操作。
攝像頭管理界面相關(guān)可執(zhí)行操作如圖7(右一)所示。在此可以按分區(qū)查看攝像頭具體信息,右部連接攝像頭,展示該監(jiān)控?cái)z像頭的實(shí)時(shí)監(jiān)控畫面。該監(jiān)控畫面經(jīng)過(guò)目標(biāo)檢測(cè)模型的處理,向工作人員清楚的展示畫面內(nèi)人們的行駛情況。
圖7 違法記錄和監(jiān)控?cái)z像頭管理界面
數(shù)據(jù)可視化大屏如圖8 所示,整個(gè)數(shù)據(jù)可視化平臺(tái)比較全面的展示分析了各地違法事件發(fā)生的情況。經(jīng)測(cè)試,在不斷改變測(cè)試數(shù)據(jù)的情況下,每秒做一次更新,效果接近于實(shí)時(shí)??梢詭椭ぷ魅藛T對(duì)各地發(fā)生違規(guī)駕駛行為的情況做出全面的評(píng)估和分析,不斷改變執(zhí)法規(guī)則措施,尋找到能最大程度減少違規(guī)駕駛行為事件發(fā)生的方法。
圖8 大數(shù)據(jù)分析平臺(tái)結(jié)果圖
微信小程序界面查看和申訴部分操作界面如圖9所示。在違法記錄界面圖9(左)點(diǎn)擊事件發(fā)生地點(diǎn)跳轉(zhuǎn)到事件詳情界面圖9(中)。事件詳情頁(yè)中用戶可查看事件具體信息,存在異議可點(diǎn)擊右下角灰色小字進(jìn)入申訴界面圖9(右)。經(jīng)反復(fù)實(shí)驗(yàn),該界面操作性好,流程簡(jiǎn)潔,用戶操作方便。
圖9 微信小程序部分操作界面
本文設(shè)計(jì)和實(shí)現(xiàn)的基于目標(biāo)檢測(cè)和多目標(biāo)跟蹤的雙輪車危險(xiǎn)駕駛行為智能管控系統(tǒng),把握政策走向,將目標(biāo)檢測(cè)、多目標(biāo)跟蹤等技術(shù)相結(jié)合,來(lái)解決城市交通智能管控中的雙輪車危險(xiǎn)駕駛行為監(jiān)測(cè)問題,形成了一個(gè)比較完善的雙輪車智能管控系統(tǒng)??紤]到使用的便捷性和靈活性,該系統(tǒng)采用PC 端和微信小程序端相結(jié)合的方式,讓使用者以低成本和靈活的方式使用該產(chǎn)品。經(jīng)過(guò)測(cè)試,該系統(tǒng)交互性強(qiáng),操作簡(jiǎn)便,續(xù)航時(shí)間久,檢測(cè)覆蓋范圍廣,有較好的使用價(jià)值。