喻 捷,楊 倩,馮 欣,葛永新
(1.重慶建工住宅建設有限公司,重慶 400000;2.重慶理工大學 計算機科學與工程學院,重慶 400054;3.重慶大學 大數(shù)據(jù)與軟件學院,重慶 401331)
近年來,對進出車輛的類型、時間和車牌等信息的記錄,成為了企業(yè)安保工作的重要環(huán)節(jié)。對于施工現(xiàn)場來說,建筑工地的材料是極其重要的財產(chǎn),且施工現(xiàn)場本身就是安全事故頻發(fā)重地,所以施工單位需要建立健全的施工現(xiàn)場車輛管理制度。若施工現(xiàn)場車輛進出管理有誤,就可能會出現(xiàn)建筑材料被私自運送出施工場地或非施工車輛駛?cè)胧┕がF(xiàn)場工作區(qū)的情況,所導致的后果是不堪設想的。因此,亟需智能化的管理手段對施工現(xiàn)場的進出車輛進行檢查和管理。
現(xiàn)有的傳統(tǒng)智能車輛進出管理方式,大多采取車輛停在匝道時只對車輛進行車牌信息的識別。但這些傳統(tǒng)方法卻無法很好地應用在施工現(xiàn)場中。首先,對于施工現(xiàn)場來說,主要需要統(tǒng)計的車輛信息為大型卡車類車輛,因此需要對進出車輛的類型進行分類。其次,進出施工現(xiàn)場的車輛大多為裝滿建筑材料的大卡車,這些負載極大的卡車若在通過匝道時停下可能會造成建筑材料掉落。最后,施工現(xiàn)場的車輛的車牌很有可能會被泥土覆蓋導致模糊不清,傳統(tǒng)方式直接對整張圖像進行車牌檢測的效果降低。因此,目前施工場景下的車輛檢測與識別面臨著車型識別、車輛定位、車輛跟蹤、車牌定位和車牌識別5個任務的挑戰(zhàn)。
目前,車輛檢測、車型識別和車牌識別在各自領域都取得了很大進展。對于車輛檢測,傳統(tǒng)的方法通常采用高斯背景模型[1]對物體進行檢測。自2012年 Krizhevsky等[2]提出了AlexNet深度學習網(wǎng)絡框架,基于深度學習的物體分類等任務中得到了廣泛應用。Redmon等[3]提出了一種新的目標檢測方法,即YOLO算法,檢測速度和檢測結(jié)果的準確度又得到明顯提高,因此,其在車輛檢測領域的運用也越來越廣泛。對于車牌識別算法,Cheang等[4]提出了CNN-RNN網(wǎng)絡框架對車牌進行無分割識別,解決了傳統(tǒng)的車牌識別方法無法將整張圖像作為輸入的問題。孫世昕等[5]提出了構(gòu)建二級級聯(lián)定位網(wǎng)絡Tiny-MTCNN,實現(xiàn)實時車牌檢測和識別功能。
以上各方法都聚焦于自己的領域而很難以并行的方式在復雜的多任務實際場景中共同發(fā)揮作用。多任務學習(MTL)是機器學習的一個子領域,其中通過共享模型同時學習多個任務的方式提高了數(shù)據(jù)效率,減少了過擬合,還可以利用輔助信息進行快速學習。因此,考慮在施工現(xiàn)場背景下,提出級聯(lián)多任務神經(jīng)網(wǎng)絡框架對前面提出的多個任務挑戰(zhàn)制定解決方案。級聯(lián)多任務設計所面臨的技術(shù)挑戰(zhàn)是需要準確、快速對大目標(車輛)、小目標(車牌)的混合檢測與識別。若用現(xiàn)有串行式的多任務執(zhí)行方式,則有計算量大、耗時、小目標(車牌)定位不準等缺點。
本文中搭建的級聯(lián)多任務神經(jīng)網(wǎng)絡框架使用目標檢測和跟蹤技術(shù)對門崗所設攝像頭接收到的監(jiān)控視頻進行分析。利用YOLO網(wǎng)絡實現(xiàn)場地車輛的檢測,得出車輛特征與車型識別結(jié)果;得到車輛區(qū)域特征并設計輕量級神經(jīng)網(wǎng)絡實現(xiàn)了端到端的精準、高效車牌識別;基于改進的DeepSort目標跟蹤算法[6],實現(xiàn)了對場內(nèi)所有車輛的追蹤、統(tǒng)計?;趯嶋H工地場景監(jiān)控數(shù)據(jù),構(gòu)建數(shù)據(jù)集,完成了對多任務級聯(lián)神經(jīng)網(wǎng)絡的訓練與測試,并在COCO2017數(shù)據(jù)集[7]上對算法的性能進行了進一步的驗證??紤]實際施工現(xiàn)場的臨時性的特性,基于邊緣計算完成了算法的靈活部署。
綜上所述,本文的主要貢獻如下。
1) 在施工現(xiàn)場的實際背景下,首次提出了基于級聯(lián)多任務深度神經(jīng)網(wǎng)絡的施工現(xiàn)場車輛進出檢測與識別算法。解決了大目標(車輛)和小目標(車牌)混合檢測與識別,比現(xiàn)有串行式多任務執(zhí)行方式更加快速、準確。
2) 構(gòu)建級聯(lián)多任務深度神經(jīng)網(wǎng)絡框架,該網(wǎng)絡將車輛檢測、車型識別、車牌定位、車牌識別和車輛跟蹤5個任務結(jié)合到一起,實現(xiàn)端到端訓練和更加高效地對工地進出車輛信息進行管理。
3) 基于現(xiàn)有的門崗監(jiān)控數(shù)據(jù),構(gòu)建了施工現(xiàn)場車輛檢測數(shù)據(jù)集對多任務級聯(lián)神經(jīng)網(wǎng)絡進行訓練,以提高算法在實際應用場景中的準確率。實驗結(jié)果表明,在自制數(shù)據(jù)集和COCO2017數(shù)據(jù)集中均取得良好的效果。
本文中所實現(xiàn)的級聯(lián)多任務神經(jīng)網(wǎng)絡包括車輛定位測、車型識別、車牌定位、車牌識別和車輛跟蹤5個任務,具有大小目標混合檢測的特點。該神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖1所示,以YOLOv5目標檢測網(wǎng)絡為主,在輸入的監(jiān)控視頻流進入YOLOv5網(wǎng)絡后首先對車輛進行定位和檢測,并識別車型,輸出車型類別。定位車輛對小目標車牌做檢測,隨后用車牌識別算法進行車牌識別。使用改進的DeepSort算法對定位車輛進行跟蹤,以統(tǒng)計車輛數(shù)量。
圖1 級聯(lián)多任務神經(jīng)網(wǎng)絡結(jié)構(gòu)
由圖1可知,從最開始接收到來自建筑工地門崗的監(jiān)控視頻流之后,需要將其每一幀的圖像作為處理單位,該網(wǎng)絡架構(gòu)完成上述5個任務的具體做法如下。
1) 使用目標檢測算法對圖像中出現(xiàn)的車輛進行檢測。車輛檢測模塊基于一階段目標檢測算法YOLOv5所實現(xiàn),并結(jié)合COCO數(shù)據(jù)集進行訓練得到的目標檢測模型,實現(xiàn)車輛定位和車型識別功能。
2) 將檢測出的車輛區(qū)域的特征作為車牌模塊的直接輸入,該做法省去了后續(xù)車牌識別網(wǎng)絡對車輛特征的提取步驟,提高了車牌識別的速度。車牌識別過程中先使用目標檢測算法定位出車牌,識別網(wǎng)絡實現(xiàn)車牌識別功能。
3) 將檢測得到的車輛位置及其區(qū)域特征作為目標跟蹤算法的輸入,基于改進的DeepSort目標跟蹤算法實現(xiàn)對相鄰幀圖像中的車輛進行匹配同時予以編號,實現(xiàn)施工現(xiàn)場車輛數(shù)量的統(tǒng)計。
4) 設置檢測線,用于判斷車輛是否進出施工現(xiàn)場。此功能基于目標跟蹤的結(jié)果實現(xiàn)。
5) 得到車輛檢測結(jié)果并繪制出矩形框,輸出處理過程中得到車型和車牌內(nèi)容,同時可視化統(tǒng)計車輛進出數(shù)量等信息。
由于該網(wǎng)絡結(jié)合了多個子任務網(wǎng)絡,因此該網(wǎng)絡的總體損失函數(shù)Lall為5個子任務損失函數(shù)的和,如式(1)所示。
Lall=λ1Lreg+λ2Lcls+λ3Ltrack+
λ4Lid+λ5Ldet
(1)
式中:Lreg和Lcls是YOLOv5檢測網(wǎng)絡中的回歸損失、車型分類損失;Ltrack和Lid是改進DeepSort目標跟蹤算法中的損失函數(shù)和車牌識別中的損失函數(shù);λ1、λ2、λ3、λ4、λ5為車輛檢測損失、車型分類損失、目標跟蹤損失、車牌檢測損失和車牌識別的權(quán)重系數(shù),均設為1。
車輛檢測采用YOLOv5算法實現(xiàn),該算法不僅檢測速度快,而且靈活性和準確度較高,在模型的快速部署上具有極強優(yōu)勢,被廣泛應用于實際應用場景中。從深度和寬度的角度看,YOLOv5共有4種網(wǎng)絡結(jié)構(gòu):YOLOv5l、YOLOv5m、YOLOv5s、YOLOv5x??紤]到低成本,所設計的基于級聯(lián)多任務深度神經(jīng)網(wǎng)絡的施工現(xiàn)場車輛進出檢測與識別算法是在嵌入式的邊緣計算設備上的。邊緣計算的一個關(guān)鍵目標就是盡可能地減少延遲,也就需要算法達到較快的處理速度,所以參數(shù)計算量不宜過大。通過后續(xù)的對比實驗可知,在平均檢測精度相當?shù)那闆r下,YOLOv5s的網(wǎng)絡深度和寬度最小,參數(shù)量和模型內(nèi)存量均處于一個較小的水平。
經(jīng)過網(wǎng)絡的車輛檢測模塊后得到車輛區(qū)域的特征以及車輛的類別,這是整個網(wǎng)絡的第一個輸出,將作為后續(xù)車牌檢測與識別以及車輛跟蹤模塊的輸入。
考慮到在施工現(xiàn)場的整個監(jiān)控視頻中,所拍攝到的車輛車牌大概率情況下只是一個很小的部分,是一個處于復雜環(huán)境下且面積較小的目標。并且很有可能存在車牌被泥土覆蓋的情況,因此為了提高識別率,通過設計輕量化的車牌識別算法來對輸入的車輛區(qū)域特征進行車牌檢測與識別。該網(wǎng)絡沒有特征提取主干網(wǎng)絡,以車輛區(qū)域的特征作為輸入,輸出車牌中的字符序列。在每一卷積層之后,都進行批處理歸一化和ReLU激活。該輕量級神經(jīng)網(wǎng)絡具有以下優(yōu)勢:第一,不需要預先對車牌字符進行分割,可以端到端地訓練和識別牌照,是一個高質(zhì)量的車牌識別框架;第二,該網(wǎng)絡是一種不使用回歸神經(jīng)網(wǎng)絡的實施方法[8],所以它足夠輕量化,能夠運行在嵌入式邊緣計算設備中。后續(xù)實驗證明使用該輕量級卷積神經(jīng)網(wǎng)絡在檢測相對復雜的中文車牌時仍然有不錯的性能。
該網(wǎng)絡具體設計思路為:將車輛檢測后的車輛區(qū)域特征作為車牌檢測的輸入,對車牌進行檢測,最后完成車牌識別功能。車牌識別功能的整體流程如圖2所示。
圖2 車牌識別的整體流程
本文中所設計的基于級聯(lián)多任務深度神經(jīng)網(wǎng)絡的施工現(xiàn)場車輛進出檢測與識別算法需要對出入門崗的車輛數(shù)量予以記錄,所以在目標檢測成功的同時還需要進行目標跟蹤,根據(jù)車輛的運動軌跡判斷其當前是進入施工現(xiàn)場還是離開施工現(xiàn)場。傳統(tǒng)的目標跟蹤算法中,經(jīng)典的有基于相關(guān)濾波的MOSSE和KCF算法,雖然都優(yōu)于最初的視覺跟蹤方法,但因為它們只關(guān)注物體的行動軌跡預測而忽略了目標物體的內(nèi)容,無法將前后幀中的同一運動對象進行關(guān)聯(lián),導致跟蹤結(jié)果中均出現(xiàn)了嚴重的跟蹤框漂移情況?;跈z測的多目標跟蹤算法DeepSort[9]涉及到相鄰兩幀中多個目標的關(guān)聯(lián),其復雜性相比于傳統(tǒng)的跟蹤算法要高得多。為了實現(xiàn)施工現(xiàn)場車輛進出統(tǒng)計的功能,需要實時記錄車輛的軌跡,因此目標跟蹤算法必不可少。本文中的車輛跟蹤算法是基于DeepSort算法改進實現(xiàn)的,由于車輛跟蹤的輸入為車輛檢測后的車輛區(qū)域特征,因此基于改進的DeepSort算法則去掉DeepSort算法中的特征提取骨干網(wǎng)絡。具體的車輛跟蹤算法流程如圖3所示。
圖3 改進的DeepSort跟蹤算法流程框圖
車輛跟蹤算法的基本思想是通過檢測網(wǎng)絡后的車輛區(qū)域特征實現(xiàn)跟蹤,視頻數(shù)據(jù)經(jīng)過目標檢測算法逐幀輸入之后,將運動模型與目標的外觀信息予以數(shù)據(jù)關(guān)聯(lián),再使用卡爾曼濾波器對運動軌跡進行預測,更新時使用匈牙利算法完成級聯(lián)匹配。由此可見,該算法的核心即為卡爾曼濾波和匈牙利算法。還會把這個最優(yōu)值傳入下一幀作為新狀態(tài)的預測值,不斷迭代,得出目標的實際值。
由于施工項目的工作地點并不固定,搭建的工地基本都是臨時性的,因此算法的部署要具備低成本、靈活性高的特點??紤]到邊緣計算方式具有一系列優(yōu)點,所以本文中所設計的基于級聯(lián)多任務深度神經(jīng)網(wǎng)絡的施工現(xiàn)場車輛進出檢測與識別算法采用低成本嵌入式的邊緣計算方式。面向施工現(xiàn)場的邊緣計算設備部署如圖4所示。對于建筑工地來說,車輛的出入口不止一處。假定工地大門處為終端節(jié)點1,工地停車場門口處為終端節(jié)點2。在這兩處安放攝像頭,并連接嵌入式的邊緣計算設備。將監(jiān)控到的視頻流傳輸?shù)皆撛O備之后,邊緣計算設備就會進行車輛進出信息解析的一系列操作,包括車輛檢測、車型識別和車牌識別等。最后該設備再將結(jié)果通過局域網(wǎng)發(fā)送到服務器端,工作人員即可輕松獲得車輛出入的信息。
圖4 邊緣計算設備部署
實驗數(shù)據(jù)來源于重慶市建設安全施工安全管理總站,為了使訓練的模型能夠在實際應用場景中更準確,采集了多處施工現(xiàn)場的門崗監(jiān)控視頻,包含不同門崗、不同監(jiān)控設備角度的車輛進出數(shù)據(jù)。實驗一共涉及到2個數(shù)據(jù)集:車輛檢測數(shù)據(jù)集和車牌識別數(shù)據(jù)集。
對于車輛檢測數(shù)據(jù)集,由于采集和標注的施工現(xiàn)場數(shù)據(jù)集較小,因此對其進行數(shù)據(jù)集擴充操作。主要使用的車輛檢測數(shù)據(jù)集為COCO2017數(shù)據(jù)集,但是由于該數(shù)據(jù)集包含了80種不同的目標檢測類別,有許多與車輛無關(guān)的數(shù)據(jù)圖片,如西藍花、人、大象和電腦等。因而需要對原始的COCO2017數(shù)據(jù)集進行數(shù)據(jù)篩選工作,留下符合本次實驗需要的部分數(shù)據(jù)圖片,如小型汽車、摩托車、卡車。經(jīng)過數(shù)據(jù)篩選,結(jié)合采集的實際施工場地數(shù)據(jù),劃分的數(shù)據(jù)集中含各類車輛圖片的數(shù)量統(tǒng)計如表1所示。
表1 車輛檢測數(shù)據(jù)集
對于車牌識別數(shù)據(jù)集,車牌識別模塊的實現(xiàn)涉及到車牌檢測和牌照內(nèi)容識別2個模型。由于搜集到的實際車牌數(shù)據(jù)有限,因此這2個模型訓練時所使用的車牌數(shù)據(jù)集將結(jié)合中國城市車牌開源數(shù)據(jù)集——CCPD2019數(shù)據(jù)集[10],該數(shù)據(jù)集主要采集于合肥市停車場,所拍攝的車牌照片涉及多種復雜環(huán)境,包括模糊、傾斜、雨天、雪天等。CCPD2019數(shù)據(jù)集主要內(nèi)容如表2所示,車牌識別功能的實現(xiàn)一共采用了2個模型,對于車牌檢測的部分,使用的是在CCPD2019數(shù)據(jù)集上基于YOLOv3模型訓練得到的車牌檢測模型;對于車牌識別的部分,使用的是本文中的車牌識別算法在車牌數(shù)據(jù)集上訓練得到的模型。
表2 CCPD2019數(shù)據(jù)集主要內(nèi)容
本次實驗均在3090GPU上實現(xiàn)。車輛檢測實驗采用的是在COCO2017數(shù)據(jù)集上預訓練的車輛檢測模型。將“YOLOv5s.pt”作為初始訓練權(quán)重,對COCO2017數(shù)據(jù)集進行訓練后,建立車輛目標檢測模型,部分訓練參數(shù)如表3所示。
表3 部分訓練參數(shù)
YOLOv5一共有4種網(wǎng)絡結(jié)構(gòu):YOLOv5l、YOLOv5m、YOLOv5s、YOLOv5x,如表4所示,通過4種網(wǎng)絡結(jié)構(gòu)進行對比實驗可以發(fā)現(xiàn),在平均精度差的不多的情況下,YOLOv5s的參數(shù)量和每秒的浮點運算次數(shù)都遠遠小于其他3個網(wǎng)絡結(jié)構(gòu)。由于施工現(xiàn)場考慮到低成本,所設計的車輛進出識別與檢測算法是在嵌入式的邊緣計算設備上的。邊緣計算的一個關(guān)鍵目標就是盡可能地減少延遲,也就需要算法達到較快的處理速度,所以參數(shù)計算量不宜過大。綜合來看,YOLOv5s在本檢測數(shù)據(jù)集中表現(xiàn)最好。
表4 4種YOLO網(wǎng)絡結(jié)構(gòu)主要技術(shù)參數(shù)
基于YOLOv5[11]所實現(xiàn)的車輛檢測的可視化結(jié)果如圖5所示,對2個不同門崗的監(jiān)控數(shù)據(jù)均進行了測試。雖然實際的建筑工地上會出現(xiàn)摩托車這一車型,但總體來說出現(xiàn)的頻率較小。由于此次所采集到的施工現(xiàn)場監(jiān)控視頻中并沒有包含摩托車的通行記錄,所以只測試了頻繁出現(xiàn)的小型汽車和卡車。從3組的可視化測試結(jié)果來看,特征明顯的車輛幾乎都能被成功檢測和定位出來,且得到正確的分類結(jié)果。
圖5 車輛檢測結(jié)果記錄可視化
對于車牌識別實驗,為證明本文中車牌識別算法的優(yōu)勢,進行了詳細的對比實驗。實驗對比了3種輸入方式,并將設計的車牌識別算法與LPRNet車牌識別算法進行對比。第1種方式為直接將監(jiān)控視頻中未截取車輛區(qū)域的原圖輸入到LPRNet網(wǎng)絡中進行檢測與識別;第2種方式為將車輛截取圖片輸入到LPRNet網(wǎng)絡中;第3種方式為將經(jīng)過檢測網(wǎng)絡后所截取的車輛區(qū)域的特征輸入車牌識別網(wǎng)絡中進行檢測與識別。對于3種不同的輸入,本文中提出的車牌識別算法與LPRNet車牌識別算法的車牌檢測準確度以及檢測速度的實驗結(jié)果如表5所示。
表5 車牌識別實驗結(jié)果
由表5的實驗結(jié)果可知,采用本文方法識別車牌比其他2種方法的mAP值都高,并且檢測速度更快,幾乎達到實時檢測的速度。由此體現(xiàn)本文方法相較于LPRNet車牌識別方法的優(yōu)勢。
本文方法的可視化車牌識別結(jié)果如圖6所示。由圖6可以看出,在車輛剛駛?cè)氡O(jiān)控畫面時,車牌圖像較清晰,整個車牌目標相對較大。由于監(jiān)控視頻中背景較為復雜,且車輛在整幅圖像中占比較小,因此測試時將視頻尺寸進行了裁剪,只保留了車輛部分。從實驗結(jié)果來看,識別的結(jié)果準確,符合實際車牌內(nèi)容。
圖6 車牌識別結(jié)果可視化圖
為了實現(xiàn)施工現(xiàn)場車輛進出統(tǒng)計的功能,需要實時記錄運動車輛的軌跡,因此目標跟蹤算法必不可少。對于改進的DeepSort跟蹤算法[12],采用其默認的參數(shù)配置文件。實驗所采用的數(shù)據(jù)是來自重慶市建設安全施工安全管理總站的門崗監(jiān)控視頻,其尺寸大小為1 920×1 080。要統(tǒng)計該視頻流中的車輛進出數(shù)量,需設置表6中所示的參數(shù)內(nèi)容。其中,line存放檢測線的2個坐標,big_to_small 和point_idx分別控制計數(shù)方向和用于檢測的頂點編號。
表6 參數(shù)設置
對車輛進出數(shù)量統(tǒng)計功能的測試結(jié)果如圖7所示。該測試用例均為進入施工現(xiàn)場的車輛,從結(jié)果中可以明顯看出,原本在檢測線左端的車輛,在檢測框的左上角頂點完全穿過檢測線到達右端之后,計數(shù)器進行了+1的操作。2輛汽車都已通過檢測線進入施工現(xiàn)場后,左上角num的值變成2。由此可見,車輛進出數(shù)量統(tǒng)計功能的實驗結(jié)果符合預期。
圖7 車輛進出數(shù)量統(tǒng)計過程圖
對于建筑工地而言,財產(chǎn)安全是重中之重,但在傳統(tǒng)的施工現(xiàn)場,工作流程繁瑣且效率低。在此背景下,本文中提出的基于級聯(lián)多任務神經(jīng)網(wǎng)絡對施工現(xiàn)場車輛進出的檢測與識別算法相比其他方法,在大目標(車輛)與小目標(車牌)的混合檢測與識別中能夠更快速、準確地得出結(jié)果。并且對車輛的檢測過程中無需車輛停止,減少建筑材料掉落的危險。
實驗證明該級聯(lián)多任務神經(jīng)網(wǎng)絡框架在車輛檢測數(shù)據(jù)集上取得了良好的結(jié)果。該算法在未來仍有一些需要改進的地方。例如:在對進出車輛進行跟蹤的時候,由于門崗處有遮擋會出現(xiàn)跟丟的情況,可以考慮對跟蹤器的參數(shù)進行微調(diào)或者將YOLOv5s替換為精度更高的模型。對于車牌檢測部分還可以考慮加入黃色、綠色車牌的數(shù)據(jù)集,完善車牌識別功能。未來本算法將結(jié)合嵌入式相關(guān)知識,將模型移植到rk3588開發(fā)板中,真正運用于實際場景中。