孫 凱 何明祥 張 紅 蔣紀(jì)威
(山東科技大學(xué)計算機(jī)科學(xué)與工程學(xué)院 山東 青島 266590)
障礙物檢測是無人駕駛汽車和機(jī)器人研究方面的關(guān)鍵技術(shù)之一。目前,國內(nèi)外研究人員在障礙物檢測方面進(jìn)行了大量的研究,但是由于檢測所用的工具和應(yīng)用環(huán)境的不同,其檢測的具體方法也不盡相同。Zhou等[1]提出了一種基于多普勒頻移和高度的障礙物檢測方法;鄒斌等[2]提出一種基于三維激光雷達(dá)的動態(tài)障礙物檢測和追蹤方法;金立生等[3]提出了一種基于Adaboost算法的日間前方車輛檢測方法;Delp等[4]提出一種基于貝葉斯集群學(xué)習(xí)的分類方法;王錚等[5]提出了一種基于雙目視覺的AGV障礙物檢測方法。
此外,卷積神經(jīng)網(wǎng)絡(luò)也是一種很好的障礙物檢測方法,它擅長處理大型圖像信息,目前已經(jīng)成功應(yīng)用于人臉識別和交通信號識別等領(lǐng)域。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)大多是采用卷積層和池化層循環(huán)抽樣的多層級聯(lián)的結(jié)構(gòu)[6-7],此類結(jié)構(gòu)主要利用卷積層提取圖像的細(xì)節(jié)特征,利用池化層來降低特征圖的分辨率,最后通過全連接層進(jìn)行分類整合得出結(jié)果[8]。
但是,在運動障礙物檢測識別過程中過于考慮局部細(xì)節(jié)特征,容易受限于圖像本身。例如需要識別的障礙物較遠(yuǎn)時,即當(dāng)感興趣的目標(biāo)過于小時,按照多層級聯(lián)的結(jié)構(gòu)只靠提取細(xì)節(jié)來識別會影響準(zhǔn)確率,反而適量的增加感興趣目標(biāo)的全局特征能達(dá)到比較好的效果[9-10]。針對以上問題,本文通過增加全局特征來修正傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò),在層層抽取細(xì)節(jié)特征的基礎(chǔ)上融入了全局特征,利用全局特征修正細(xì)節(jié)特征的提取,進(jìn)而提高對動態(tài)障礙物識別的準(zhǔn)確率。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種多層非全連接的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)。CNN通常由輸入層、卷積層、池化層、全連接層以及輸出層五層結(jié)構(gòu)組成。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)LenNet-5是LeCun等[11]提出的一種基于卷積神經(jīng)網(wǎng)絡(luò)的文字識別模型,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
卷積層的主要作用是提取圖像的特征信息,具備自學(xué)習(xí)能力的卷積核能夠?qū)ι弦粚荧@得的特征圖進(jìn)行卷積計算,并加上一個合適的偏置數(shù)值,然后經(jīng)過激活函數(shù)后輸出形成這一層的特征圖。
卷積層的計算公式如下:
(1)
池化層是對輸入進(jìn)行不重疊的采樣操作,進(jìn)一步提取圖像特征,來降低特征圖的分辨率,除去冗余的數(shù)據(jù),減少圖像特征維數(shù),同時保持位移不變。
(2)
式中:down(·)表示池化函數(shù)。
全連接層是用來連接經(jīng)過卷積和池化操作的全部特征,并對其進(jìn)行特征分類,再交由輸出層輸出最后的結(jié)果。
全連接層的計算公式如下:
(3)
Softmax層是卷積神經(jīng)網(wǎng)絡(luò)中的最后一層,用來進(jìn)行最后的分類和歸一化,得到最終的圖像信息。
當(dāng)父母無法接納孩子的某個身體部位,或者某個特別的行為,甚至去強(qiáng)行掰正孩子時,孩子就會自動做起父母的幫兇:壓抑天性,排斥自己,龜縮到只有自己的世界里。
Softmax層的計算公式如下:
式中:zi表示第i類預(yù)測結(jié)果。
針對傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)在特定的情況下,因過度關(guān)注細(xì)節(jié)特征而影響識別的準(zhǔn)確率這個問題,本文對傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了改進(jìn)。該網(wǎng)絡(luò)結(jié)構(gòu)是由上下兩層并行組成,最后由一個全連接層整合兩層的識別結(jié)果。上層的卷積神經(jīng)網(wǎng)絡(luò)主要對圖像的細(xì)節(jié)特征進(jìn)行采樣,因此不改變原來的網(wǎng)絡(luò)結(jié)構(gòu),下層卷積神經(jīng)網(wǎng)絡(luò)主要對上層采樣的結(jié)構(gòu)進(jìn)行修正,對圖像的全局特征進(jìn)行采樣,因此改進(jìn)點主要在下層,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
如圖2所示,該網(wǎng)絡(luò)結(jié)構(gòu)上半部分是一個由3層卷積層和3層池化層組成的傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。該結(jié)構(gòu)的主要作用是對細(xì)節(jié)的采樣和表達(dá)圖像的特征。為了保證對細(xì)節(jié)的足夠采樣,所有卷積層步長均為1。第一個卷積層的卷積核為8×8,第一層池化操作提取的特征圖數(shù)為16,第二個和第三個卷積層的卷積核為3×3,第二層和第三層池化層提取的特征圖數(shù)為32。
如圖2所示,下半部分是一個由3層卷積層和1層池化層組成的新卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),目的是對圖像的全局特征進(jìn)行采樣。第一層卷積層的卷積核為5×5、步長為1,第一層池化操作提取的特征圖數(shù)為16,第二層和第三層卷積層的卷積核為3×3,但是只保留初次卷積后的池化操作,因為第一次卷積操作會注重圖像的邊界提取,在此基礎(chǔ)上保留池化層可以最大化地保留圖像的全局特征。
全連接層在該網(wǎng)絡(luò)結(jié)構(gòu)中總共有3個,在上下兩部分的網(wǎng)絡(luò)結(jié)構(gòu)中分別有2個具有400個單元的全連接層,分別對上下層網(wǎng)絡(luò)結(jié)構(gòu)提取的圖像特征進(jìn)行融合,然后由1個100個單位的全連接層將兩部分融合在一起,最后經(jīng)過Softmax層進(jìn)行分類操作,輸出一組圖像與原圖像相對應(yīng)。
以下主要是本文對卷積神經(jīng)網(wǎng)絡(luò)的改進(jìn)點的詳細(xì)描述:
(1) 下半部分的卷積神經(jīng)網(wǎng)絡(luò)只保留第一次卷積之后的池化操作。下層卷積神經(jīng)網(wǎng)絡(luò)的第一層卷積層的卷積核為5×5、步長為1;第二層和第三層卷積層采用的均是3×3核。保留第一層的池化層是因為第一層的卷積層是處理圖像邊緣的操作,而對于目標(biāo)邊緣的識別尤為重要。采用5×5的卷積核也是為了最大限度地保留圖像的全局特征。當(dāng)然下半部分的卷積網(wǎng)絡(luò)最大的缺點是有可能帶來過擬合。
(2) 最后一層全連接層融合上下兩部分卷積網(wǎng)絡(luò)提取的特征。上層卷積神經(jīng)網(wǎng)絡(luò)通過全連接層1提取的是局部的圖像特征,下層卷積神經(jīng)網(wǎng)絡(luò)通過全連接層2提取的是全局的圖像特征,該改進(jìn)的算法即是將局部特征與全局特征融合在一起得到更為準(zhǔn)確的圖像識別,最后一步的融合至關(guān)重要,因此采用一層100個單位的全連接,最后用Softmax分類層進(jìn)行分類識別。
改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)在避障系統(tǒng)中用于對障礙物的識別和分類,其輸入是經(jīng)過處理后的點云圖像,識別并分割出的障礙物,如汽車、自行車、行人等,輸出為與障礙物相對應(yīng)的一組對象,用于后續(xù)的操作處理。
柵格地圖[12]能準(zhǔn)確地表達(dá)某一時刻的環(huán)境情況,比如當(dāng)前車的位置、障礙物的位置等。在避障系統(tǒng)的研究中,可將柵格圖作為最基礎(chǔ)的環(huán)境建模,在柵格圖的基礎(chǔ)上進(jìn)行智能決策和路徑規(guī)劃操作。本文研究的主要是運動的障礙物,因此選用可以更好地描述障礙物動態(tài)位置信息的三維障礙物柵格圖作為表達(dá)環(huán)境的建模方法。在三維坐標(biāo)系內(nèi)對環(huán)境進(jìn)行建模,按時間軸表示出一段時間內(nèi)柵格的占用情況,從而連續(xù)地展示環(huán)境中所有的運動關(guān)系,為接下來的行為決策和路徑規(guī)劃提供依據(jù)。
本文采用512×512的柵格劃分標(biāo)準(zhǔn),即將能夠檢測到的環(huán)境大小按比例映射到此512×512的環(huán)境地圖中,將得到的某一時刻點的雷達(dá)原始數(shù)據(jù)中所有環(huán)境信息同樣按比例映射到相應(yīng)的位置,這樣便得到了單點時刻的柵格圖。依次按照時間順序?qū)⒅車沫h(huán)境信息映射到同一個三維坐標(biāo)系中,便得到一個三維的柵格占用圖,在這個三維坐標(biāo)系中可以明顯地看出該環(huán)境中所有的運動情況。
在傳統(tǒng)的二維柵格圖中按照單個時間點映射得到的柵格圖可得到單幀的動態(tài)障礙物柵格圖,在本文中三維坐標(biāo)系中按照時間軸多幀疊加便會得到一個三維的動態(tài)障礙物柵格圖。圖3(a)為單幀的動態(tài)障礙物柵格圖示意圖,圖3(b)為多幀疊加的動態(tài)障礙物柵格圖示意圖,由圖可知,多幀疊合的柵格圖能夠看出障礙物的運動狀態(tài)變化。
(a) 單幀 (b) 多幀疊加圖3 動態(tài)障礙物柵格圖示意圖
感興趣區(qū)域[13]指為硬件設(shè)施檢測到的動態(tài)障礙物所處的環(huán)境區(qū)域,感興趣過濾器處理感興趣之外的點云數(shù)據(jù),去除背景的物體,比如道路上的建筑物和樹木等,剩下的就是感興趣區(qū)域的點云,方便用于后續(xù)的處理。
此處采用檢測到的視線內(nèi)可操作的最小多邊形進(jìn)行過濾,經(jīng)過感興趣區(qū)域過濾后,可得到每個雷達(dá)點代表的物體是在感興趣區(qū)域內(nèi)還是區(qū)域外。
假定該卷積神經(jīng)網(wǎng)絡(luò)已線下完成訓(xùn)練,獲得使最損失函數(shù)最小的權(quán)值并保留該權(quán)值。在經(jīng)過感興趣過濾器識別周圍環(huán)境之后,識別模塊得到了僅在感興趣區(qū)域內(nèi)的點云,這時大部分的背景障礙物已被去掉。同時通過線下訓(xùn)練完的本文改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型的上下兩層網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)點云的特征預(yù)測障礙物的相關(guān)屬性(前景物體的概率、物體的高度、物體分類等),再經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)的特征識別、提取、聚類等操作,得到一組識別分類結(jié)果。
本實驗是在CPU為Intel i5-6300,主頻2.30 GHz、四核,8 GB內(nèi)存,64位Microsoft Windows 10操作系統(tǒng),使用Matlab進(jìn)行實驗驗證。采用的數(shù)據(jù)來自Geiger開放的KITTI數(shù)據(jù)集[14],選取1 000張道路障礙物圖片,其中900張用于訓(xùn)練,100張用于測試。
表1中,時間復(fù)雜度公式中Dek、Drk表示單層輸入層需要訪問的參數(shù),log2(|V|)表示輸出層Softmax層需要訪問的參數(shù),其中|V|表示詞典的大小,De表示原卷積神經(jīng)網(wǎng)絡(luò)單層詞向量的維度,Dr表示改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的單層詞向量維數(shù)。由于改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)只保留了一層池化層,并且卷積層的卷積核數(shù)也有所降低,即De>Dr,所以改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)的時間復(fù)雜度比傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)低。
表1 實驗檢測速率比較
從表1給出兩種算法的檢測速率的比較結(jié)果可以看出,改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)檢測速率比傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)有所降低,表明了本文算法具有較低的時間復(fù)雜度,因此本文方法的實時性也能夠得到保證。
本文的仿真實驗基于百度開放Apollo的平臺,采用的數(shù)據(jù)來自Geiger開放的KITTI數(shù)據(jù)集、城市交通數(shù)據(jù)集Cityscapes[15]和Apollo數(shù)據(jù)集中的相機(jī)圖片。
此處實驗?zāi)康臑轵炞C改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)算法在圖像識別中具有全局優(yōu)勢,因此對改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)上下部分的網(wǎng)絡(luò)分別輸入相同的樣本圖片,通過上下層網(wǎng)絡(luò)結(jié)構(gòu)中卷積層輸出的特征圖結(jié)果來驗證。
首先手動篩選出一部分較易識別、邊緣較明顯的圖片組成樣本圖片庫,分別通過本文中改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)上下層結(jié)構(gòu),輸出樣本圖片經(jīng)過卷積層的特征圖。圖4和圖5分別展示出了經(jīng)過上下兩層卷積網(wǎng)絡(luò)得到的特征圖,可以看出,上層卷積網(wǎng)絡(luò)輸出的特征圖較為抽象,而下層卷積網(wǎng)絡(luò)輸出的特征圖較為全局,能夠更好地反映出圖像的特征。
圖4 上層卷積神經(jīng)網(wǎng)絡(luò)輸出的特征圖
圖5 下層卷積神經(jīng)網(wǎng)絡(luò)輸出的特征圖
淺層神經(jīng)網(wǎng)絡(luò)具有全局性的特點,本文改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)是受此啟發(fā),利用淺層神經(jīng)網(wǎng)絡(luò)的全局特性對傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)對圖像進(jìn)行層層抽象的特點進(jìn)行補充修正,從而改善卷積神經(jīng)網(wǎng)絡(luò)過度抽取細(xì)節(jié)特征從而缺乏全局特征的問題;同時,通過下層卷積神經(jīng)網(wǎng)絡(luò)對全局特征的把握,可以改善在訓(xùn)練學(xué)習(xí)過程中出現(xiàn)過擬合的概率。
為了驗證本文提出的改進(jìn)方法在動態(tài)障礙物識別過程中的適用性,本文采用以上數(shù)據(jù)集中的真實數(shù)據(jù)構(gòu)建了一個91 271個樣本的測試庫,并將其分為測試集和訓(xùn)練集兩部分,樣本集包括三個數(shù)據(jù)集中的數(shù)據(jù),包括多種場景下的運動障礙物的樣本。表2中列出了本文在訓(xùn)練及測試時各個數(shù)據(jù)庫中樣本數(shù)量的情況。
表2 實驗樣本集
分別采用表2中相同的訓(xùn)練集(82 329條數(shù)據(jù))對傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)和本文改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)分別進(jìn)行權(quán)值訓(xùn)練,分別保存上線兩層卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練后的權(quán)值數(shù)值。再采用表2中的測試集(8 942條數(shù)據(jù))進(jìn)行實驗驗證,表3列出了本文改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)在各個數(shù)據(jù)集的測試結(jié)果。通過改進(jìn)CNN與CNN的算法對比,可以直觀地看出本文算法在運動障礙物的識別上的優(yōu)勢。
表3 實驗測試結(jié)果
上述實驗采取的數(shù)據(jù)集均是采用道路真實的數(shù)據(jù),從側(cè)面展示出了改進(jìn)的算法在不同的環(huán)境中具有一定的適應(yīng)能力,在進(jìn)行驗證實驗的同時用改進(jìn)的算法對三個數(shù)據(jù)集進(jìn)行了測試。圖6為算法改進(jìn)前后的召回率曲線,從圖中可以看出,本文的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)算法在三個數(shù)據(jù)集中具有較強(qiáng)的適應(yīng)能力。
圖6 召回率曲線
為了驗證本文改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)在增加全局特性后的有效性,在Apollo數(shù)據(jù)庫中分別測試了改進(jìn)CNN、下層全局粗特征CNN和上層局部細(xì)化CNN,測試結(jié)果的ROC曲線(受試者工作曲線 Receiver Operating characteristic Curve)如圖7所示??梢悦黠@地看出改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)算法在識別障礙物的性能上明顯比上下層網(wǎng)絡(luò)結(jié)構(gòu)的性能好。
圖7 改進(jìn)前后ROC曲線對比
本文提出了一種基于改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)對動態(tài)障礙物的識別方法。與傳統(tǒng)的CNN相比,該網(wǎng)絡(luò)在保留局部特征提取力度的同時增加全局特征的修正,通過局部特征和全局特征的同時提取,再通過一個全連接層將局部特征與全局特征進(jìn)行整合,最終獲取圖像的整體信息。實驗結(jié)果也表明,改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)在對運動障礙物的識別具有較強(qiáng)的適應(yīng)性和有效性。同時,由于實驗中所使用訓(xùn)練樣本數(shù)量和種類的限制,對實驗的結(jié)果會有一定的影響,因此接下來的工作中,要擴(kuò)大訓(xùn)練樣本集的數(shù)量和種類來進(jìn)一步驗證改進(jìn)的CNN比傳統(tǒng)的CNN在動態(tài)障礙物識別方面有更高的準(zhǔn)確性。