喻 捷,楊 倩,馮 欣,葛永新
(1.重慶建工住宅建設有限公司,重慶 400000;2.重慶理工大學 計算機科學與工程學院,重慶 400054;3.重慶大學 大數據與軟件學院,重慶 401331)
近年來,對進出車輛的類型、時間和車牌等信息的記錄,成為了企業安保工作的重要環節。對于施工現場來說,建筑工地的材料是極其重要的財產,且施工現場本身就是安全事故頻發重地,所以施工單位需要建立健全的施工現場車輛管理制度。若施工現場車輛進出管理有誤,就可能會出現建筑材料被私自運送出施工場地或非施工車輛駛入施工現場工作區的情況,所導致的后果是不堪設想的。因此,亟需智能化的管理手段對施工現場的進出車輛進行檢查和管理。
現有的傳統智能車輛進出管理方式,大多采取車輛停在匝道時只對車輛進行車牌信息的識別。但這些傳統方法卻無法很好地應用在施工現場中。首先,對于施工現場來說,主要需要統計的車輛信息為大型卡車類車輛,因此需要對進出車輛的類型進行分類。其次,進出施工現場的車輛大多為裝滿建筑材料的大卡車,這些負載極大的卡車若在通過匝道時停下可能會造成建筑材料掉落。最后,施工現場的車輛的車牌很有可能會被泥土覆蓋導致模糊不清,傳統方式直接對整張圖像進行車牌檢測的效果降低。因此,目前施工場景下的車輛檢測與識別面臨著車型識別、車輛定位、車輛跟蹤、車牌定位和車牌識別5個任務的挑戰。
目前,車輛檢測、車型識別和車牌識別在各自領域都取得了很大進展。對于車輛檢測,傳統的方法通常采用高斯背景模型[1]對物體進行檢測。自2012年 Krizhevsky等[2]提出了AlexNet深度學習網絡框架,基于深度學習的物體分類等任務中得到了廣泛應用。Redmon等[3]提出了一種新的目標檢測方法,即YOLO算法,檢測速度和檢測結果的準確度又得到明顯提高,因此,其在車輛檢測領域的運用也越來越廣泛。對于車牌識別算法,Cheang等[4]提出了CNN-RNN網絡框架對車牌進行無分割識別,解決了傳統的車牌識別方法無法將整張圖像作為輸入的問題。孫世昕等[5]提出了構建二級級聯定位網絡Tiny-MTCNN,實現實時車牌檢測和識別功能。
以上各方法都聚焦于自己的領域而很難以并行的方式在復雜的多任務實際場景中共同發揮作用。多任務學習(MTL)是機器學習的一個子領域,其中通過共享模型同時學習多個任務的方式提高了數據效率,減少了過擬合,還可以利用輔助信息進行快速學習。因此,考慮在施工現場背景下,提出級聯多任務神經網絡框架對前面提出的多個任務挑戰制定解決方案。級聯多任務設計所面臨的技術挑戰是需要準確、快速對大目標(車輛)、小目標(車牌)的混合檢測與識別。若用現有串行式的多任務執行方式,則有計算量大、耗時、小目標(車牌)定位不準等缺點。
本文中搭建的級聯多任務神經網絡框架使用目標檢測和跟蹤技術對門崗所設攝像頭接收到的監控視頻進行分析。利用YOLO網絡實現場地車輛的檢測,得出車輛特征與車型識別結果;得到車輛區域特征并設計輕量級神經網絡實現了端到端的精準、高效車牌識別;基于改進的DeepSort目標跟蹤算法[6],實現了對場內所有車輛的追蹤、統計。基于實際工地場景監控數據,構建數據集,完成了對多任務級聯神經網絡的訓練與測試,并在COCO2017數據集[7]上對算法的性能進行了進一步的驗證。考慮實際施工現場的臨時性的特性,基于邊緣計算完成了算法的靈活部署。
綜上所述,本文的主要貢獻如下。
1) 在施工現場的實際背景下,首次提出了基于級聯多任務深度神經網絡的施工現場車輛進出檢測與識別算法。解決了大目標(車輛)和小目標(車牌)混合檢測與識別,比現有串行式多任務執行方式更加快速、準確。
2) 構建級聯多任務深度神經網絡框架,該網絡將車輛檢測、車型識別、車牌定位、車牌識別和車輛跟蹤5個任務結合到一起,實現端到端訓練和更加高效地對工地進出車輛信息進行管理。
3) 基于現有的門崗監控數據,構建了施工現場車輛檢測數據集對多任務級聯神經網絡進行訓練,以提高算法在實際應用場景中的準確率。實驗結果表明,在自制數據集和COCO2017數據集中均取得良好的效果。
本文中所實現的級聯多任務神經網絡包括車輛定位測、車型識別、車牌定位、車牌識別和車輛跟蹤5個任務,具有大小目標混合檢測的特點。該神經網絡結構如圖1所示,以YOLOv5目標檢測網絡為主,在輸入的監控視頻流進入YOLOv5網絡后首先對車輛進行定位和檢測,并識別車型,輸出車型類別。定位車輛對小目標車牌做檢測,隨后用車牌識別算法進行車牌識別。使用改進的DeepSort算法對定位車輛進行跟蹤,以統計車輛數量。

圖1 級聯多任務神經網絡結構
由圖1可知,從最開始接收到來自建筑工地門崗的監控視頻流之后,需要將其每一幀的圖像作為處理單位,該網絡架構完成上述5個任務的具體做法如下。
1) 使用目標檢測算法對圖像中出現的車輛進行檢測。車輛檢測模塊基于一階段目標檢測算法YOLOv5所實現,并結合COCO數據集進行訓練得到的目標檢測模型,實現車輛定位和車型識別功能。
2) 將檢測出的車輛區域的特征作為車牌模塊的直接輸入,該做法省去了后續車牌識別網絡對車輛特征的提取步驟,提高了車牌識別的速度。車牌識別過程中先使用目標檢測算法定位出車牌,識別網絡實現車牌識別功能。
3) 將檢測得到的車輛位置及其區域特征作為目標跟蹤算法的輸入,基于改進的DeepSort目標跟蹤算法實現對相鄰幀圖像中的車輛進行匹配同時予以編號,實現施工現場車輛數量的統計。
4) 設置檢測線,用于判斷車輛是否進出施工現場。此功能基于目標跟蹤的結果實現。
5) 得到車輛檢測結果并繪制出矩形框,輸出處理過程中得到車型和車牌內容,同時可視化統計車輛進出數量等信息。
由于該網絡結合了多個子任務網絡,因此該網絡的總體損失函數Lall為5個子任務損失函數的和,如式(1)所示。
Lall=λ1Lreg+λ2Lcls+λ3Ltrack+
λ4Lid+λ5Ldet
(1)
式中:Lreg和Lcls是YOLOv5檢測網絡中的回歸損失、車型分類損失;Ltrack和Lid是改進DeepSort目標跟蹤算法中的損失函數和車牌識別中的損失函數;λ1、λ2、λ3、λ4、λ5為車輛檢測損失、車型分類損失、目標跟蹤損失、車牌檢測損失和車牌識別的權重系數,均設為1。
車輛檢測采用YOLOv5算法實現,該算法不僅檢測速度快,而且靈活性和準確度較高,在模型的快速部署上具有極強優勢,被廣泛應用于實際應用場景中。從深度和寬度的角度看,YOLOv5共有4種網絡結構:YOLOv5l、YOLOv5m、YOLOv5s、YOLOv5x。考慮到低成本,所設計的基于級聯多任務深度神經網絡的施工現場車輛進出檢測與識別算法是在嵌入式的邊緣計算設備上的。邊緣計算的一個關鍵目標就是盡可能地減少延遲,也就需要算法達到較快的處理速度,所以參數計算量不宜過大。通過后續的對比實驗可知,在平均檢測精度相當的情況下,YOLOv5s的網絡深度和寬度最小,參數量和模型內存量均處于一個較小的水平。
經過網絡的車輛檢測模塊后得到車輛區域的特征以及車輛的類別,這是整個網絡的第一個輸出,將作為后續車牌檢測與識別以及車輛跟蹤模塊的輸入。
考慮到在施工現場的整個監控視頻中,所拍攝到的車輛車牌大概率情況下只是一個很小的部分,是一個處于復雜環境下且面積較小的目標。并且很有可能存在車牌被泥土覆蓋的情況,因此為了提高識別率,通過設計輕量化的車牌識別算法來對輸入的車輛區域特征進行車牌檢測與識別。該網絡沒有特征提取主干網絡,以車輛區域的特征作為輸入,輸出車牌中的字符序列。在每一卷積層之后,都進行批處理歸一化和ReLU激活。該輕量級神經網絡具有以下優勢:第一,不需要預先對車牌字符進行分割,可以端到端地訓練和識別牌照,是一個高質量的車牌識別框架;第二,該網絡是一種不使用回歸神經網絡的實施方法[8],所以它足夠輕量化,能夠運行在嵌入式邊緣計算設備中。后續實驗證明使用該輕量級卷積神經網絡在檢測相對復雜的中文車牌時仍然有不錯的性能。
該網絡具體設計思路為:將車輛檢測后的車輛區域特征作為車牌檢測的輸入,對車牌進行檢測,最后完成車牌識別功能。車牌識別功能的整體流程如圖2所示。

圖2 車牌識別的整體流程
本文中所設計的基于級聯多任務深度神經網絡的施工現場車輛進出檢測與識別算法需要對出入門崗的車輛數量予以記錄,所以在目標檢測成功的同時還需要進行目標跟蹤,根據車輛的運動軌跡判斷其當前是進入施工現場還是離開施工現場。傳統的目標跟蹤算法中,經典的有基于相關濾波的MOSSE和KCF算法,雖然都優于最初的視覺跟蹤方法,但因為它們只關注物體的行動軌跡預測而忽略了目標物體的內容,無法將前后幀中的同一運動對象進行關聯,導致跟蹤結果中均出現了嚴重的跟蹤框漂移情況。基于檢測的多目標跟蹤算法DeepSort[9]涉及到相鄰兩幀中多個目標的關聯,其復雜性相比于傳統的跟蹤算法要高得多。為了實現施工現場車輛進出統計的功能,需要實時記錄車輛的軌跡,因此目標跟蹤算法必不可少。本文中的車輛跟蹤算法是基于DeepSort算法改進實現的,由于車輛跟蹤的輸入為車輛檢測后的車輛區域特征,因此基于改進的DeepSort算法則去掉DeepSort算法中的特征提取骨干網絡。具體的車輛跟蹤算法流程如圖3所示。

圖3 改進的DeepSort跟蹤算法流程框圖
車輛跟蹤算法的基本思想是通過檢測網絡后的車輛區域特征實現跟蹤,視頻數據經過目標檢測算法逐幀輸入之后,將運動模型與目標的外觀信息予以數據關聯,再使用卡爾曼濾波器對運動軌跡進行預測,更新時使用匈牙利算法完成級聯匹配。由此可見,該算法的核心即為卡爾曼濾波和匈牙利算法。還會把這個最優值傳入下一幀作為新狀態的預測值,不斷迭代,得出目標的實際值。
由于施工項目的工作地點并不固定,搭建的工地基本都是臨時性的,因此算法的部署要具備低成本、靈活性高的特點。考慮到邊緣計算方式具有一系列優點,所以本文中所設計的基于級聯多任務深度神經網絡的施工現場車輛進出檢測與識別算法采用低成本嵌入式的邊緣計算方式。面向施工現場的邊緣計算設備部署如圖4所示。對于建筑工地來說,車輛的出入口不止一處。假定工地大門處為終端節點1,工地停車場門口處為終端節點2。在這兩處安放攝像頭,并連接嵌入式的邊緣計算設備。將監控到的視頻流傳輸到該設備之后,邊緣計算設備就會進行車輛進出信息解析的一系列操作,包括車輛檢測、車型識別和車牌識別等。最后該設備再將結果通過局域網發送到服務器端,工作人員即可輕松獲得車輛出入的信息。

圖4 邊緣計算設備部署
實驗數據來源于重慶市建設安全施工安全管理總站,為了使訓練的模型能夠在實際應用場景中更準確,采集了多處施工現場的門崗監控視頻,包含不同門崗、不同監控設備角度的車輛進出數據。實驗一共涉及到2個數據集:車輛檢測數據集和車牌識別數據集。
對于車輛檢測數據集,由于采集和標注的施工現場數據集較小,因此對其進行數據集擴充操作。主要使用的車輛檢測數據集為COCO2017數據集,但是由于該數據集包含了80種不同的目標檢測類別,有許多與車輛無關的數據圖片,如西藍花、人、大象和電腦等。因而需要對原始的COCO2017數據集進行數據篩選工作,留下符合本次實驗需要的部分數據圖片,如小型汽車、摩托車、卡車。經過數據篩選,結合采集的實際施工場地數據,劃分的數據集中含各類車輛圖片的數量統計如表1所示。

表1 車輛檢測數據集
對于車牌識別數據集,車牌識別模塊的實現涉及到車牌檢測和牌照內容識別2個模型。由于搜集到的實際車牌數據有限,因此這2個模型訓練時所使用的車牌數據集將結合中國城市車牌開源數據集——CCPD2019數據集[10],該數據集主要采集于合肥市停車場,所拍攝的車牌照片涉及多種復雜環境,包括模糊、傾斜、雨天、雪天等。CCPD2019數據集主要內容如表2所示,車牌識別功能的實現一共采用了2個模型,對于車牌檢測的部分,使用的是在CCPD2019數據集上基于YOLOv3模型訓練得到的車牌檢測模型;對于車牌識別的部分,使用的是本文中的車牌識別算法在車牌數據集上訓練得到的模型。

表2 CCPD2019數據集主要內容
本次實驗均在3090GPU上實現。車輛檢測實驗采用的是在COCO2017數據集上預訓練的車輛檢測模型。將“YOLOv5s.pt”作為初始訓練權重,對COCO2017數據集進行訓練后,建立車輛目標檢測模型,部分訓練參數如表3所示。

表3 部分訓練參數
YOLOv5一共有4種網絡結構:YOLOv5l、YOLOv5m、YOLOv5s、YOLOv5x,如表4所示,通過4種網絡結構進行對比實驗可以發現,在平均精度差的不多的情況下,YOLOv5s的參數量和每秒的浮點運算次數都遠遠小于其他3個網絡結構。由于施工現場考慮到低成本,所設計的車輛進出識別與檢測算法是在嵌入式的邊緣計算設備上的。邊緣計算的一個關鍵目標就是盡可能地減少延遲,也就需要算法達到較快的處理速度,所以參數計算量不宜過大。綜合來看,YOLOv5s在本檢測數據集中表現最好。

表4 4種YOLO網絡結構主要技術參數
基于YOLOv5[11]所實現的車輛檢測的可視化結果如圖5所示,對2個不同門崗的監控數據均進行了測試。雖然實際的建筑工地上會出現摩托車這一車型,但總體來說出現的頻率較小。由于此次所采集到的施工現場監控視頻中并沒有包含摩托車的通行記錄,所以只測試了頻繁出現的小型汽車和卡車。從3組的可視化測試結果來看,特征明顯的車輛幾乎都能被成功檢測和定位出來,且得到正確的分類結果。

圖5 車輛檢測結果記錄可視化
對于車牌識別實驗,為證明本文中車牌識別算法的優勢,進行了詳細的對比實驗。實驗對比了3種輸入方式,并將設計的車牌識別算法與LPRNet車牌識別算法進行對比。第1種方式為直接將監控視頻中未截取車輛區域的原圖輸入到LPRNet網絡中進行檢測與識別;第2種方式為將車輛截取圖片輸入到LPRNet網絡中;第3種方式為將經過檢測網絡后所截取的車輛區域的特征輸入車牌識別網絡中進行檢測與識別。對于3種不同的輸入,本文中提出的車牌識別算法與LPRNet車牌識別算法的車牌檢測準確度以及檢測速度的實驗結果如表5所示。

表5 車牌識別實驗結果
由表5的實驗結果可知,采用本文方法識別車牌比其他2種方法的mAP值都高,并且檢測速度更快,幾乎達到實時檢測的速度。由此體現本文方法相較于LPRNet車牌識別方法的優勢。
本文方法的可視化車牌識別結果如圖6所示。由圖6可以看出,在車輛剛駛入監控畫面時,車牌圖像較清晰,整個車牌目標相對較大。由于監控視頻中背景較為復雜,且車輛在整幅圖像中占比較小,因此測試時將視頻尺寸進行了裁剪,只保留了車輛部分。從實驗結果來看,識別的結果準確,符合實際車牌內容。

圖6 車牌識別結果可視化圖
為了實現施工現場車輛進出統計的功能,需要實時記錄運動車輛的軌跡,因此目標跟蹤算法必不可少。對于改進的DeepSort跟蹤算法[12],采用其默認的參數配置文件。實驗所采用的數據是來自重慶市建設安全施工安全管理總站的門崗監控視頻,其尺寸大小為1 920×1 080。要統計該視頻流中的車輛進出數量,需設置表6中所示的參數內容。其中,line存放檢測線的2個坐標,big_to_small 和point_idx分別控制計數方向和用于檢測的頂點編號。

表6 參數設置
對車輛進出數量統計功能的測試結果如圖7所示。該測試用例均為進入施工現場的車輛,從結果中可以明顯看出,原本在檢測線左端的車輛,在檢測框的左上角頂點完全穿過檢測線到達右端之后,計數器進行了+1的操作。2輛汽車都已通過檢測線進入施工現場后,左上角num的值變成2。由此可見,車輛進出數量統計功能的實驗結果符合預期。

圖7 車輛進出數量統計過程圖
對于建筑工地而言,財產安全是重中之重,但在傳統的施工現場,工作流程繁瑣且效率低。在此背景下,本文中提出的基于級聯多任務神經網絡對施工現場車輛進出的檢測與識別算法相比其他方法,在大目標(車輛)與小目標(車牌)的混合檢測與識別中能夠更快速、準確地得出結果。并且對車輛的檢測過程中無需車輛停止,減少建筑材料掉落的危險。
實驗證明該級聯多任務神經網絡框架在車輛檢測數據集上取得了良好的結果。該算法在未來仍有一些需要改進的地方。例如:在對進出車輛進行跟蹤的時候,由于門崗處有遮擋會出現跟丟的情況,可以考慮對跟蹤器的參數進行微調或者將YOLOv5s替換為精度更高的模型。對于車牌檢測部分還可以考慮加入黃色、綠色車牌的數據集,完善車牌識別功能。未來本算法將結合嵌入式相關知識,將模型移植到rk3588開發板中,真正運用于實際場景中。