郭鵬宇
(上海工程技術(shù)大學(xué) 機(jī)械與汽車(chē)工程學(xué)院, 上海 201620)
在自動(dòng)駕駛輔助系統(tǒng)中,基于傳感器,采用車(chē)輛檢測(cè)、跟蹤、測(cè)距等一系列計(jì)算機(jī)視覺(jué)算法進(jìn)行環(huán)境感知,輔助系統(tǒng)就能得到車(chē)輛周?chē)畔?,以保證駕駛員安全駕駛。
基于視覺(jué)的車(chē)輛檢測(cè)及測(cè)距系統(tǒng)主要應(yīng)用在道路交通場(chǎng)景下,用于輔助檢測(cè)前方目標(biāo)以及進(jìn)行距離預(yù)警,其性能好壞主要依賴(lài)于采用的車(chē)輛檢測(cè)算法。
目前,在使用相機(jī)進(jìn)行目標(biāo)檢測(cè)時(shí),多采用傳統(tǒng)的機(jī)器視覺(jué)檢測(cè)方法。 對(duì)于前方車(chē)輛目標(biāo),該方法首先根據(jù)車(chē)輛的局部特征,如陰影、邊緣紋理、顏色分布等特征生成感興趣區(qū)域;然后利用對(duì)稱(chēng)特征等整體特征對(duì)感興趣區(qū)域進(jìn)行驗(yàn)證。 在從產(chǎn)生感興趣區(qū)域到驗(yàn)證感興趣區(qū)域的過(guò)程中,為了達(dá)到實(shí)時(shí)檢測(cè)的要求,一般需要對(duì)圖像進(jìn)行灰度化,并對(duì)灰度化后的圖像進(jìn)行陰影分割和邊緣分析。 因此,對(duì)于相機(jī)獲得的圖像,傳統(tǒng)的機(jī)器視覺(jué)的車(chē)輛檢測(cè)方法通常找到感興趣區(qū)域的車(chē)輛的特點(diǎn)和梯度直方圖特征(HOG[1]), SIFT[2]特征或Haar-like[3]特征通常用于獲得前面的假設(shè)檢驗(yàn)區(qū)域車(chē)輛,即ROI 區(qū)域;此后用這些特征訓(xùn)練SVM[4]或Adaboost[5]車(chē)輛檢測(cè)分類(lèi)器,計(jì)算車(chē)輛圖像的特征值,并根據(jù)車(chē)輛特征值的大小與前方車(chē)輛進(jìn)行判斷,得到前車(chē)的假設(shè)測(cè)試區(qū)域驗(yàn)證,完成對(duì)前車(chē)的檢測(cè)。
而上述傳統(tǒng)的機(jī)器視覺(jué)檢測(cè)方法本質(zhì)上是通過(guò)人工選擇特征進(jìn)行識(shí)別和分類(lèi)。 在復(fù)雜場(chǎng)景中,人工特征的數(shù)量會(huì)呈幾何級(jí)數(shù)增長(zhǎng),這對(duì)前面車(chē)輛的識(shí)別率也有很大的影響。 這種方法更適合在某種特定場(chǎng)景下的車(chē)輛識(shí)別,因?yàn)槠鋽?shù)據(jù)規(guī)模并不大,泛化能力則較差,很難實(shí)現(xiàn)快速和準(zhǔn)確的復(fù)雜應(yīng)用場(chǎng)景的檢測(cè)。 近年來(lái),隨著卷積神經(jīng)網(wǎng)絡(luò)(CNN)的應(yīng)用,出現(xiàn)了許多算法。 一階段方法包括SSD[6]、YOLO 系 列[7-8]、 RetinaNet[9]。 兩 階 段 方 法 包 括Fast R-CNN[10]和Faster R-CNN[11]。 最近提出的最先進(jìn)的YOLO-v4[12]具有很高的檢測(cè)精度和檢測(cè)速度。
目前,對(duì)于多目標(biāo)車(chē)輛軌跡跟蹤技術(shù)主要可分為兩大類(lèi)。 一類(lèi)是傳統(tǒng)方法,如利用背景差分法、幀差法、光流法等方法提取運(yùn)動(dòng)目標(biāo),傳統(tǒng)方法部署方便,資源消耗低,但受先驗(yàn)知識(shí)限制,跟蹤穩(wěn)定性差,準(zhǔn)確性不高。 另一類(lèi)是基于卷積神經(jīng)網(wǎng)絡(luò)的、稱(chēng)為深度學(xué)習(xí)的方法,深度學(xué)習(xí)方法可以學(xué)習(xí)更多的目標(biāo)特征,能在連續(xù)的視頻幀中檢測(cè)出目標(biāo)對(duì)象。 深度學(xué)習(xí)方法精度高,但其計(jì)算量較大,實(shí)時(shí)性不高,因此,基于視頻跟蹤的車(chē)輛檢測(cè)算法仍需改進(jìn)。
研究可知,基于視覺(jué)相機(jī)的測(cè)距方法主要有單目測(cè)距和雙目測(cè)距兩種。 這2 種方法的共同特點(diǎn)是通過(guò)相機(jī)采集圖像數(shù)據(jù),隨后從圖像數(shù)據(jù)中得到距離信息。 單目檢測(cè)方法的優(yōu)點(diǎn)是成本低,缺點(diǎn)是對(duì)檢測(cè)精度的依賴(lài)過(guò)大。 此外,從實(shí)用的角度來(lái)看,在汽車(chē)上安裝單目相機(jī)時(shí),由于汽車(chē)的顛簸,汽車(chē)的俯仰角經(jīng)常發(fā)生變化,導(dǎo)致精度顯著下降。 雙目測(cè)距的方法是通過(guò)計(jì)算2 幅圖像的視差直接測(cè)量距離。
本文使用的目標(biāo)檢測(cè)算法是YOLOv4-tiny,其中YOLO 表示You Only Look Once,由Bochkovskiy等學(xué)者開(kāi)發(fā)。 YOLOv4-tiny 是YOLOv4 的壓縮版本,雖在平均精度方面受到了影響,但卻可以在低計(jì)算能力下高效運(yùn)行。 與未壓縮版本的4 個(gè)YOLO 頭相比, YOLOv4-tiny 只使用了2 個(gè)YOLO 頭,并使用了29 個(gè)預(yù)訓(xùn)練卷積層作為基礎(chǔ)。 YOLO 各變量參數(shù)設(shè)置見(jiàn)表1,卷積層各變量參數(shù)設(shè)置見(jiàn)表2。

表1 YOLO 各變量參數(shù)設(shè)置Tab. 1 YOLO parameter settings

表2 卷積層各變量參數(shù)設(shè)置Tab. 2 The convolution layer parameter settings
上一代YOLO 的非maxpool 抑制(NMS)等遺留特性和一些新特性、包括加權(quán)剩余連接(WRC)、Mosaic 數(shù)據(jù)增強(qiáng)在內(nèi)有效提高了算法在模糊圖像中識(shí)別類(lèi)的能力,降低了識(shí)別類(lèi)所需的處理能力。YOLOv4-tiny 提供了較高的幀率,同時(shí)具有中間地帶平均精度與常用模型并列。
在本文中,使用YOLOv4-tiny 算法作為車(chē)輛的檢測(cè)器,并且使用DeepSORT[13]算法作為初始車(chē)輛跟蹤器。
圖1 顯示了2 個(gè)ID 及其前3 個(gè)標(biāo)簽。 對(duì)于ID#137 的車(chē)輛,本文方法預(yù)測(cè)的標(biāo)簽用加黑來(lái)標(biāo)記。

圖1 應(yīng)用MLP 后的歷史緩沖區(qū)示例圖Fig. 1 A history buffer example after applying MLP
本文使用歷史緩沖區(qū)來(lái)調(diào)整和改進(jìn)每個(gè)檢測(cè)標(biāo)簽的視覺(jué)質(zhì)量和在幀中的顯示。 如果有任何車(chē)輛檢測(cè)標(biāo)簽缺失,那么本文的MLP 為該車(chē)輛生產(chǎn)一個(gè)估計(jì)的檢測(cè)標(biāo)簽。 延時(shí)使用一系列的檢測(cè)標(biāo)簽前存儲(chǔ)在歷史緩沖區(qū)來(lái)預(yù)測(cè)未檢測(cè)到車(chē)輛的檢測(cè)標(biāo)簽ID 在給定的框架(見(jiàn)圖1)。 條件估計(jì)為特定車(chē)輛檢測(cè)標(biāo)簽,標(biāo)簽ID 應(yīng)該至少在2 個(gè)連續(xù)幀出現(xiàn)。 為了預(yù)測(cè)缺失的檢測(cè)標(biāo)簽,本文對(duì)當(dāng)前幀t應(yīng)用以下公式:
這里,l(xmin,ymin,xmax,ymax) 表示每個(gè)車(chē)輛ID基于調(diào)整邊界框標(biāo)簽的中值, ▽表示邊界框位置的變化從時(shí)間戳(t -2)到(t -1);i表示每輛車(chē)唯一的ID。
雙目視差示意如圖2 所示。 由圖2 可知,2 個(gè)攝像頭的中心距是B,兩個(gè)攝像頭觀察同一點(diǎn)P,P1的坐標(biāo)為(X1,Y1),P2的坐標(biāo)為(X2,Y2),由于2臺(tái)相機(jī)始終是平行的,高度相同,所以在左右2 張圖像中P點(diǎn)的Y坐標(biāo)是相同的,在X方向上存在視差。 因此,可以通過(guò)標(biāo)定相機(jī)內(nèi)外參數(shù)來(lái)確定圖像坐標(biāo)與世界坐標(biāo)之間的關(guān)系。 雙目視差原理如圖3所示。

圖2 雙目視差示意圖Fig. 2 Schematic diagram of binocular parallax

圖3 雙目視差原理圖Fig. 3 Principle of binocular parallax
圖3 中,CL和CR是2 個(gè)攝像頭的光學(xué)中心,攝像頭之間的距離是b,相機(jī)的焦距為f,P點(diǎn)在左右圖像的投影點(diǎn)為Pl(Xl,Yl),Pr(Xr,Yr) ,從三角形相似關(guān)系可知:
由式(3)可知:
由此,空間中P點(diǎn)到相機(jī)的距離為:
P在相機(jī)坐標(biāo)系中的三維坐標(biāo)可以由幾何關(guān)系得到:
對(duì)于車(chē)輛的測(cè)距,本文取檢測(cè)到的邊界框內(nèi)每輛車(chē)的中心來(lái)表示被檢測(cè)物體到雙目相機(jī)中心的距離。
將YOLOv4-tiny 與其他常用的目標(biāo)檢測(cè)算法進(jìn)行比較,將其mAP與FPS進(jìn)行比較,得到表3 中的結(jié)果。

表3 各模型幀率和mAP對(duì)比Tab. 3 Frame rate andmAPcomparison
本文提出的車(chē)輛檢測(cè)與跟蹤方法使用了TensorFlow 庫(kù) 和 基 于 YOLOv4 - tiny 模 型 的DeepSORT 算法。 經(jīng)綜合比較,使用YOLOv4-tiny的精度和檢測(cè)速度是可以接受的,精度比YOLOv3-tiny 高,速度比YOLOv4 的方法更快。
YOLOv4-tiny 模型檢測(cè)車(chē)輛效果如圖4 所示。

圖4 YOLOv4-tiny 模型檢測(cè)車(chē)輛效果Fig. 4 Cars video detection using YOLOv4-tiny model
使用本文方法前后汽車(chē)的標(biāo)簽變化曲線如圖5所示。 對(duì)于ID#39 的車(chē)輛,圖5(a)是使用方法前,圖5(b)是使用本文方法后,相同的汽車(chē)標(biāo)簽變得更加平滑。

圖5 使用本文方法前后汽車(chē)的標(biāo)簽變化Fig. 5 The label changes before and after using the method in this paper
在目標(biāo)跟蹤時(shí), 從歷史緩沖區(qū)中預(yù)測(cè)缺失標(biāo)簽的方法往往會(huì)產(chǎn)生不好的結(jié)果,因?yàn)閷?duì)象檢測(cè)器的可視化結(jié)果經(jīng)常顯示不穩(wěn)定和閃爍的邊框標(biāo)簽。 在應(yīng)用本文的基于中值的算法后,可以得到高度穩(wěn)定的標(biāo)簽。 因此,本文方法提高了目標(biāo)檢測(cè)器的視覺(jué)性能,并為目標(biāo)檢測(cè)器和跟蹤器提供了對(duì)缺失標(biāo)簽的更好估計(jì)。
利用雙目相機(jī)取檢測(cè)到的邊界框內(nèi)每輛車(chē)的中心來(lái)表示被檢測(cè)物體到雙目相機(jī)中心的距離。
仿真測(cè)試結(jié)果見(jiàn)表4。 從距離測(cè)試的結(jié)果來(lái)看,測(cè)試精度相對(duì)較高,基本保持在0.5%~0.6%之間。

表4 測(cè)量結(jié)果分析Tab. 4 The measured results analysis
本文介紹了一種用于自動(dòng)駕駛的實(shí)時(shí)檢測(cè)跟蹤與測(cè)距系統(tǒng)。 通過(guò)本文提出的實(shí)時(shí)同步方法,該系統(tǒng)方便了車(chē)輛實(shí)時(shí)同步檢測(cè);利用雙目攝像頭,YOLOv4-tiny 和DeepSORT 算法對(duì)車(chē)輛進(jìn)行檢測(cè)和跟蹤,并提出中值標(biāo)簽預(yù)測(cè)方法優(yōu)化跟蹤效果,同時(shí)實(shí)現(xiàn)了對(duì)前方車(chē)輛的精確測(cè)距。 整個(gè)系統(tǒng)在檢測(cè)和測(cè)距方面取得了較高的精度和實(shí)時(shí)性。 對(duì)于自動(dòng)駕駛的應(yīng)用,該系統(tǒng)可以結(jié)合許多智能技術(shù),如目標(biāo)預(yù)警、自動(dòng)避障等。 與此同時(shí),該系統(tǒng)還有很大的改進(jìn)空間。 在檢測(cè)方面,通過(guò)優(yōu)化算法提高檢測(cè)性能,通過(guò)訓(xùn)練更多類(lèi)型的物體,如行人、非機(jī)動(dòng)車(chē)等,為自動(dòng)駕駛提供更多的道路信息。 在這個(gè)系統(tǒng)中,測(cè)距是指從雙目相機(jī)的中心到物體的距離。 在實(shí)際情況下,車(chē)輛的具體位置到物體的距離可以根據(jù)相機(jī)的安裝位置和車(chē)輛的實(shí)際長(zhǎng)度來(lái)計(jì)算。 通過(guò)優(yōu)化雙目測(cè)距算法,可以提高測(cè)距精度。