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