李登覽,宋曉煒,范存輝,朱魯曉
(1.中原工學(xué)院 電子信息學(xué)院,河南 鄭州 450007;2.開封大學(xué),河南 開封 475004)
隨著社會經(jīng)濟(jì)的快速發(fā)展和人們物質(zhì)生活水平的不斷提高,人們也越來越注重個人興趣愛好的培養(yǎng)。高性能的遙控車(Remote Control Car)備受年輕人的喜愛,而遙控車比賽也是一項(xiàng)很受追捧的比賽項(xiàng)目。速度競賽在這類比賽中是一個較為重要的競技項(xiàng)目。遙控車的速度測量主要有兩種方式:一種是由遙控車本身搭載的測速設(shè)備實(shí)現(xiàn)的速度測量,另一種是通過外部測速裝置實(shí)現(xiàn)的速度測量。第一種方式常常是在遙控車上搭載GPS定位設(shè)備,這種方式具有精度高、測速準(zhǔn)確的特點(diǎn),但是往往會受測速環(huán)境的限制。GPS設(shè)備無法實(shí)現(xiàn)室內(nèi)等場景下的定位,速度的測量只能夠在室外進(jìn)行。除了搭載GPS之外,還有一部分遙控車的速度測量是通過電機(jī)測速實(shí)現(xiàn)的。電機(jī)測速是通過霍爾傳感器輸出的電動勢大小計(jì)算電機(jī)轉(zhuǎn)速來實(shí)現(xiàn)的。其缺點(diǎn)是電機(jī)轉(zhuǎn)速與車速存在一定的關(guān)系,而遙控車輪胎的更換會改變這種關(guān)系。第二種方式通常是通過感應(yīng)式環(huán)路檢測器(ILD)實(shí)現(xiàn)的。通過記錄車輛經(jīng)過ILDS時(shí)一定長度的時(shí)間間隔來計(jì)算車輛的平均速度。但是ILDS常常用于固定賽道,安裝、維護(hù)比較復(fù)雜,也無法實(shí)現(xiàn)多目標(biāo)的同時(shí)測速。為了擺脫遙控車受測速場地和搭載GPS定位設(shè)備等的限制,本文提出了基于雙目立體視覺的實(shí)時(shí)測速系統(tǒng)。設(shè)計(jì)致力于復(fù)雜背景下實(shí)現(xiàn)對各類遙控車的實(shí)時(shí)監(jiān)測,在對遙控車進(jìn)行測距、測速的同時(shí),還能夠?qū)崿F(xiàn)對視頻圖像的實(shí)時(shí)傳送,以便記錄遙控車比賽的精彩過程。
總體設(shè)計(jì)框架如圖1所示,測速系統(tǒng)的硬件包括NVIDIA Jetson Xavier NX處理器、雙目攝像頭、電源、通信設(shè)備、Wi-Fi模塊等。其中,Jetson Xavier NX處理器是系統(tǒng)的核心部件,負(fù)責(zé)控制系統(tǒng)中的所有運(yùn)算任務(wù),包括目標(biāo)檢測、車速計(jì)算、圖像顯示等。
NVIDIA Jetson Xavier NX處理器連接電源后,啟動實(shí)時(shí)測速程序,首先,通過已經(jīng)標(biāo)定好的CSI雙目攝像頭來捕獲畫面信息,然后將雙目攝像頭獲取的每幀圖像送入YOLOv5s神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測;然后,SURF算法對左右目圖像的檢測框范圍進(jìn)行特征點(diǎn)提取和匹配,選擇一組最佳匹配點(diǎn),利用雙目模塊的標(biāo)定參數(shù)恢復(fù)特征點(diǎn)在空間中的位置信息。最后,利用極短時(shí)間內(nèi)幀間空間點(diǎn)位置變化求出平均速度代替目標(biāo)的瞬時(shí)速度。并將得到的距離與速度信息實(shí)時(shí)顯示在圖像的左上角,再利用Wi-Fi模塊與VNC將圖像實(shí)時(shí)回傳。
圖1 測速系統(tǒng)整體設(shè)計(jì)框架
目標(biāo)檢測的主流算法可分為兩種,一種是兩階段(Two Stage)網(wǎng)絡(luò),另一種是一階段(One Stage)網(wǎng)絡(luò)。一階段網(wǎng)絡(luò)在檢測速度上更有優(yōu)勢。為了便于目標(biāo)檢測算法在邊緣設(shè)備上的部署,選擇對一階段網(wǎng)絡(luò)中比較優(yōu)秀的幾種算法進(jìn)行對比,其中包括SSD、YOLOv3、YOLOv4、YOLOv5。表1來源于參考文獻(xiàn)[3]。
表1 多種目標(biāo)檢測算法在MS COCO數(shù)據(jù)集上的對比
YOLOv4目標(biāo)檢測算法是以上幾種算法中檢測精度最高的一個。但是由于它使用CSPDarkNet-53作為Backbone引入了巨大的參數(shù)量,并不適用于在邊緣設(shè)備上進(jìn)行部署。在目標(biāo)檢測領(lǐng)域與YOLOv4算法在精度上難分伯仲的算法是YOLOv5。相較于YOLOv4,YOLOv5在模型量和推斷速度上有很大的優(yōu)勢。表2統(tǒng)計(jì)了不同結(jié)構(gòu)YOLOv5算法的數(shù)據(jù)對比。其中Speed為不同結(jié)構(gòu)的YOLOv5在Tesla V100上的推斷速度。
表2 不同結(jié)構(gòu)的YOLOv5在MS COCO數(shù)據(jù)集上的對比
不難發(fā)現(xiàn),相較于參數(shù)量較高的YOLOv4算法,YOLOv5更適用于在邊緣設(shè)備上進(jìn)行部署。為了提高系統(tǒng)的整體效率,我們選擇了推斷速度最快的YOLOv5s網(wǎng)絡(luò)。
SURF算法首先通過構(gòu)建Hessian生成興趣點(diǎn)并構(gòu)建尺度空間,然后對特征點(diǎn)進(jìn)行定位、分配主方向后生成描述子。在匹配過程中選擇快速近鄰法對SURF算法提取的特征點(diǎn)進(jìn)行匹配。該方法通過使用歐式距離來篩選兩個匹配點(diǎn)之間最鄰近的點(diǎn),距離值越小被視為特征點(diǎn)越接近。
雙目系統(tǒng)的測距與測速原理參考文獻(xiàn)[4],首先利用雙目相機(jī)獲取不同視點(diǎn)遙控車的圖像,接著采用1.3部分提到的方法進(jìn)行特征點(diǎn)的匹配。將特征點(diǎn)在不同視點(diǎn)圖像中的像素坐標(biāo)帶入到標(biāo)定好的雙目系統(tǒng)中獲得特征點(diǎn)在空間中的位置。以特征點(diǎn)前后時(shí)刻的空間位置表示遙控車前后時(shí)刻的位置,求出遙控車通過一段距離的平均速度。速度計(jì)算公式為:
其中,(x,y,z)和(x,y,z)表示相鄰兩幀測速點(diǎn)的世界坐標(biāo),Δ表示相鄰幀之間的時(shí)間間隔。
系統(tǒng)硬件由雙目立體視覺模塊、開發(fā)板、圖傳通信系統(tǒng)組成,系統(tǒng)全貌圖如圖2所示。
圖2 雙目立體視覺實(shí)時(shí)測速系統(tǒng)全貌圖
雙目立體視覺模塊由兩個索尼攝像頭(IMX219)組成,IMX219具有800萬像素,幀率可以達(dá)到180 FPS。由于模塊設(shè)計(jì)得比較小巧,常常是便攜式設(shè)備的首選模塊。
雙目實(shí)時(shí)測速系統(tǒng)選用的開發(fā)板為NVIDIA Jetson Xavier NX。它采用Volta架構(gòu)的384個CUDA核心,并加入48個Tensor Cores。此外,它還提供2個NVDLA引擎作為深度學(xué)習(xí)加速器。經(jīng)測試,YOLOv5s目標(biāo)檢測算法在該邊緣計(jì)算機(jī)上處理一幀640×480分辨率圖像的平均耗時(shí)僅18ms,幀率可達(dá)55 FPS,滿足課題要求。
由于NVIDIA Jetson Xavier NX主板原廠無天線,信號弱,為此我們?yōu)槠渑鋫湫盘柗糯箅p天線,以增強(qiáng)其信號接收能力與信號穩(wěn)定性,增加其傳輸距離。中繼部分采用SKW77模塊,該模塊是一款大功率Wi-Fi模塊。NVIDIA Jetson Xavier NX將標(biāo)注好目標(biāo)距離和速度的視頻圖像傳輸給內(nèi)置SKW77模塊的中繼器,然后由中繼器將視頻圖像實(shí)時(shí)傳輸給帶有VNC的電腦設(shè)備。VNC(Virtual Network Console)是一款卓越的遠(yuǎn)程控制軟件,能夠在Linux系統(tǒng)下為客戶端提供實(shí)時(shí)穩(wěn)定的畫面。
2.2.1 軟件設(shè)計(jì)方案
對雙目立體視覺車輛測速系統(tǒng)進(jìn)行任務(wù)流程分解。首先由雙目采集運(yùn)動車輛的視頻,通過已經(jīng)標(biāo)定好的CSI雙目攝像頭捕獲畫面信息,然后將雙目攝像頭獲取的當(dāng)前幀圖像送入YOLOv5神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測,對于檢測到的目標(biāo)會用檢測框標(biāo)記;然后在左右目當(dāng)前幀圖像檢測框的范圍內(nèi),采用SURF算法進(jìn)行特征點(diǎn)的提取及特征點(diǎn)的匹配,匹配后系統(tǒng)將選擇一組最佳匹配點(diǎn),利用其坐標(biāo)值及標(biāo)定雙目得到的相機(jī)內(nèi)外參數(shù),獲取目標(biāo)在該時(shí)刻的空間信息。最后使用極短時(shí)間內(nèi)幀間深度差得到的平均速度代替目標(biāo)的瞬時(shí)速度,并將得到的距離與速度信息實(shí)時(shí)顯示在圖像的左上角,最后利用Wi-Fi模塊及VNC將圖像實(shí)時(shí)回傳到計(jì)算機(jī)設(shè)備。
2.2.2 YOLOv5s算法的優(yōu)化
為了提高設(shè)備的檢測性能,我們對原有的YOLOv5s網(wǎng)絡(luò)進(jìn)行了優(yōu)化,通過網(wǎng)絡(luò)剪枝以及利用TensorRT加快模型推理速度。
網(wǎng)絡(luò)剪枝(Network Pruning)是常用的模型壓縮方法。在剪枝過程中,對冗余權(quán)重進(jìn)行修剪并保留重要權(quán)重以保持精確性。剪枝通常能減少參數(shù)量和運(yùn)算量。通過對YOLOv5s網(wǎng)絡(luò)的剪枝,降低了網(wǎng)絡(luò)的寬度,以此降低模型的參數(shù)量,增強(qiáng)目標(biāo)檢測的實(shí)時(shí)性。從對比剪枝前后結(jié)果來看,參數(shù)量由原來的7.3 M變?yōu)?.9 M,運(yùn)算量由17.1 G變?yōu)?.7 G。
NVIDIA TensorRT是高性能深度學(xué)習(xí)推理的SDK。在推理過程中,基于TensorRT的應(yīng)用程序執(zhí)行速度比純CPU平臺快40倍。使用TensorRT可以優(yōu)化訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,為深度學(xué)習(xí)推理的生產(chǎn)部署提供INT8和FP16優(yōu)化。表3為TensorRT加速前后8組數(shù)據(jù)推斷速度的統(tǒng)計(jì)和對比。
表3 TensorRT加速前后推斷速度對比
由表3可知,經(jīng)過TensorRT加速后模型的推斷速度提升了大約4倍,可大幅提高設(shè)備目標(biāo)檢測的實(shí)時(shí)性能。
在使用實(shí)時(shí)測速系統(tǒng)之前首先需要對雙目視覺模塊進(jìn)行標(biāo)定,包括相機(jī)的內(nèi)參和外參。雙目實(shí)時(shí)測速系統(tǒng)標(biāo)定時(shí)使用的是張正友標(biāo)定法。相機(jī)標(biāo)定的目的是建立攝像機(jī)圖像像素位置與物體空間位置之間的關(guān)系。由已知特征點(diǎn)的坐標(biāo)求解攝像機(jī)的模型參數(shù),從而從圖像出發(fā)恢復(fù)空間點(diǎn)的三維坐標(biāo)。需要求解的參數(shù)包括4個內(nèi)參數(shù)和5個畸變參數(shù),以及外參旋轉(zhuǎn)矩陣和平移矩陣。
雙目標(biāo)定后,我們利用標(biāo)定好的相機(jī)參數(shù)并通過SURF算法進(jìn)行了幾組測距實(shí)驗(yàn),結(jié)果如表4所示。本系統(tǒng)在3米以內(nèi)的測距誤差可以控制在2%以內(nèi),具有很高的測距精度,為后面的測速奠定基礎(chǔ)。
表4 系統(tǒng)測距實(shí)驗(yàn)結(jié)果
將設(shè)備放置到穩(wěn)定的位置,打開Wi-Fi中繼模塊以保持網(wǎng)絡(luò)通信暢通,從而保證視頻圖像可以實(shí)時(shí)回傳,開啟設(shè)備,連接Wi-Fi,運(yùn)行測試程序,獲取雙目視野,將模型小車擺在雙目視野內(nèi),準(zhǔn)備開始測速。
一切準(zhǔn)備就緒后,運(yùn)行實(shí)時(shí)測速程序開始測速,以一定速度從各個路線行駛小車,測速效果如圖3所示。從結(jié)果顯示來分析,測速效果基本穩(wěn)定,實(shí)時(shí)幀率可達(dá)11 FPS,具有良好的測速性能。
圖3 VNC實(shí)時(shí)傳輸?shù)倪b控車測速畫面
該文設(shè)計(jì)的主要創(chuàng)新點(diǎn)在于將Jetson Xavier NX與雙目立體視覺相結(jié)合,實(shí)現(xiàn)了對遙控車的實(shí)時(shí)檢測和測速。在車輛檢測方面采用了YOLOv5s網(wǎng)絡(luò),同時(shí)對該網(wǎng)絡(luò)進(jìn)行一定的改進(jìn),一方面采用網(wǎng)絡(luò)剪枝壓縮網(wǎng)絡(luò)模型,另一方面利用TensorRT針對GPU的特性進(jìn)行加速,提高目標(biāo)的檢測效率。實(shí)驗(yàn)測試表明,基于雙目立體視覺的實(shí)時(shí)測速系統(tǒng)具有良好的穩(wěn)定性,同時(shí)具有較高的測距精度和較好的測速效果。