林輝
(廣東工業(yè)大學(xué)自動(dòng)化學(xué)院,廣州 510006)
同步定位與地圖構(gòu)建[1](Simultaneous Localization And Mapping,SLAM)是移動(dòng)機(jī)器人實(shí)現(xiàn)自主定位與導(dǎo)航的基礎(chǔ)和關(guān)鍵技術(shù)之一,旨在當(dāng)機(jī)器人進(jìn)入一個(gè)未知環(huán)境時(shí),建立局部地圖并同時(shí)確定機(jī)器人在地圖中的位置。主要包括前端視覺(jué)里程計(jì)、后端位姿圖優(yōu)化、閉環(huán)檢測(cè)和地圖構(gòu)建等四部分。其中,閉環(huán)檢測(cè)是SLAM關(guān)鍵的組成部分之一,解決的是確定移動(dòng)機(jī)器人是否回到先前訪問(wèn)過(guò)的位置的問(wèn)題。準(zhǔn)確地檢測(cè)出閉環(huán)對(duì)SLAM系統(tǒng)糾正長(zhǎng)時(shí)間的累積誤差,構(gòu)建全局一致的位姿估計(jì)和地圖是至關(guān)重要的[2]。
閉環(huán)檢測(cè)本質(zhì)上是一個(gè)場(chǎng)景識(shí)別問(wèn)題。在視覺(jué)SLAM領(lǐng)域,常規(guī)的做法是將移動(dòng)機(jī)器人當(dāng)前位置的視圖與先前訪問(wèn)過(guò)的位置的視圖進(jìn)行匹配。圖像匹配通常分為圖像描述和相似性度量?jī)蓚€(gè)部分,構(gòu)建圖像描述是閉環(huán)檢測(cè)的關(guān)鍵。視覺(jué)詞袋模型(Bag of Visual Word,BoVW)[3]是最常用的一種閉環(huán)檢測(cè)圖像描述方法,將圖像比作文檔,提取圖像的局部特征,采用K-means算法對(duì)提取的局部圖像特征進(jìn)行聚類,將其聚類中心作為視覺(jué)單詞,由許多單詞構(gòu)成字典。對(duì)于一幅圖像,利用視覺(jué)詞袋模型量化圖像特征,利用詞頻(或直方圖)表示圖像作為圖像描述。FV(Fisher Vector)[4]使用高斯混合模型(Gaussian Mixture Model,GMM)構(gòu)造視覺(jué)詞典,用GMM的似然函數(shù)的梯度向量來(lái)描述圖像,其中高斯分量類似于BoVW中的聚類中心,協(xié)方差為聚類中心關(guān)鍵點(diǎn)的分布。VLAD(Vector of Locally Aggregated Descriptors)[5]是 FV的簡(jiǎn)化,同 BoVW 一樣直接使用K-means聚類得到視覺(jué)詞典,與BoVW不同的是,VLAD對(duì)圖像落在聚類中心上的殘差進(jìn)行累加求和,并把各個(gè)聚類中心的殘差和串聯(lián)起來(lái)作為圖像描述。BoVW、FV和VLAD均為對(duì)圖像局部特征進(jìn)行特征編碼,得到的圖像描述。GIST[6]使用的不是局部特征,而是利用Gabor濾波器生成低維的全局圖像描述。然而,上述的閉環(huán)檢測(cè)方法多數(shù)還是采用基于SIFT[7]、SURT[7]和ORB[8]等傳統(tǒng)手工設(shè)計(jì)的特征對(duì)圖像進(jìn)行描述,在場(chǎng)景感知條件發(fā)生變化時(shí),難以提供準(zhǔn)確的圖像描述,在SLAM閉環(huán)檢測(cè)中的成功率并不高。
與傳統(tǒng)方法通過(guò)人工設(shè)計(jì)的特征進(jìn)行圖像匹配不同,深度學(xué)習(xí)通過(guò)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖像的深層次特征作為圖像描述進(jìn)行圖像匹配。對(duì)于存在一定變化的視覺(jué)場(chǎng)景,深度學(xué)習(xí)可以提供更加魯棒的圖像描述。近年來(lái),學(xué)者們開始嘗試將深度學(xué)習(xí)方法應(yīng)用于閉環(huán)檢測(cè)。Hou[9]利用Caffe框架下的PlaceCNN進(jìn)行特征提取,發(fā)現(xiàn)在光照變換明顯的環(huán)境下,采用深度學(xué)習(xí)的特征描述魯棒性優(yōu)于傳統(tǒng)特征。Gao[10]利用自動(dòng)編碼器提取圖像特征,使用相似性矩陣檢測(cè)閉環(huán),在公開數(shù)據(jù)集上取得了很好的效果。實(shí)驗(yàn)表明[11],局部圖像描述比全局圖像描述更能有效應(yīng)對(duì)圖像視角改變問(wèn)題,但以上方法均沒(méi)有考慮圖像的局部空間特性。
考慮到上述基于傳統(tǒng)方法與基于深度學(xué)習(xí)方法的圖像描述存在的問(wèn)題,本文提出一種卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)與 VLAD 融合的圖像描述方法。該方法考慮了圖像的局部空間特征,在兩個(gè)基準(zhǔn)數(shù)據(jù)集上進(jìn)行閉環(huán)檢測(cè)取得了很好的效果。
采用CNN與VLAD融合的方法描述圖像。首先用預(yù)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)提取圖像的深層抽象特征,經(jīng)過(guò)處理將其轉(zhuǎn)換為圖像的局部特征,然后利用VLAD對(duì)提取的特征進(jìn)行編碼,將得到的VLAD編碼作為圖像的描述。具體流程如圖1所示。
圖1 基于CNN與VLAD融合的圖像描述生成流程
自2012年AlexNet[12]卷積神經(jīng)網(wǎng)絡(luò)在ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)上奪冠以來(lái),掀起了深度學(xué)習(xí)的應(yīng)用熱潮。卷積神經(jīng)網(wǎng)絡(luò)能夠由淺至深,逐層提取特征,已經(jīng)在圖像分類和圖像檢索等領(lǐng)域取得了巨大成功。本文使用AlexNet卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征,并對(duì)提取的特征進(jìn)行VLAD編碼,作為圖像描述。
AlexNet卷積神經(jīng)網(wǎng)絡(luò)主要由三種類型的層結(jié)構(gòu)組成:五個(gè)卷積層,三個(gè)最大池化層和三個(gè)全連接層,其中最大池化層連接在第一、第三和第五卷積層后。卷積神經(jīng)網(wǎng)絡(luò)多數(shù)被訓(xùn)練來(lái)實(shí)現(xiàn)分類任務(wù),其全連接層通常能夠捕獲更多的語(yǔ)義信息,但是圖像的空間結(jié)構(gòu)卻不能得到很好的保留。由于空間信息的丟失,這些全連接層的特征對(duì)于視覺(jué)SLAM的閉環(huán)檢測(cè)來(lái)說(shuō)效果不佳[9]。故舍棄全連接層,僅使用AlexNet卷積神經(jīng)網(wǎng)絡(luò)的卷積層和池化層提取圖像特征。
對(duì)于訓(xùn)練好的AlexNet卷積神經(jīng)網(wǎng)絡(luò),將輸入圖像預(yù)處理成n×n的固定大小,然后通過(guò)神經(jīng)網(wǎng)絡(luò)提取圖像特征。假設(shè)L層輸出的特征圖(Feature Map)Ml的維數(shù)為nl×nl×dl,其中nl×nl為特征圖的大小,dl為卷積核的個(gè)數(shù)。如圖1所示,令ns=nl×nl,在特征圖Ml的每個(gè)位置(i,j)處獲得一個(gè)dl維的向量fl i,j,其 中1≤i≤nl,1≤j≤nl。向量fl i,j實(shí)際上就是卷積神經(jīng)網(wǎng)絡(luò)所提取的圖像局部特征[13]。于是獲得在L層提取的圖像特征向量
通過(guò)將特征圖轉(zhuǎn)換為圖像的局部特征,每個(gè)圖像都包含有一組局部特征向量,其結(jié)構(gòu)與SIFT特征相似。鑒于VLAD編碼在匹配精度和內(nèi)存占用之間的折中效果[13],本文使用VLAD編碼將圖像的局部特征編碼成單個(gè)向量作為圖像描述。
VLAD編碼類似于BoVW模型,通過(guò)K-means聚類得到視覺(jué)詞典。對(duì)于卷積神經(jīng)網(wǎng)絡(luò)L層的輸出特征向量,使用K-means聚類將其聚成K類,設(shè)聚類中心分別為對(duì)于每幅圖像,經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取的L層局部特征根據(jù)其與聚類中心的距離被分配到每個(gè)類別中,計(jì)算所有特征fl i,j與所屬的聚類中心的差。則VLAD編碼形式如式(1)所示,其將圖像L層特征轉(zhuǎn)換為關(guān)于視覺(jué)詞典的分布的dl×K維向量。
對(duì)于一幅圖像,使用卷積神經(jīng)網(wǎng)絡(luò)提取抽象特征,并轉(zhuǎn)換為圖像的局部特征,再經(jīng)VLAD編碼,將得到的dl×K維向量作為圖像描述。
CNN模型的訓(xùn)練為有監(jiān)督的訓(xùn)練過(guò)程,使用由麻省理工學(xué)院收集的用于場(chǎng)景識(shí)別和場(chǎng)景理解任務(wù)的包含180多萬(wàn)張場(chǎng)景圖片、分為365個(gè)場(chǎng)景類別的大型場(chǎng)景數(shù)據(jù)集Places365-Standard[14]對(duì)AlexNet卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行重新訓(xùn)練。通過(guò)在此數(shù)據(jù)集上訓(xùn)練CNN,可以使CNN模型學(xué)習(xí)到更加豐富的場(chǎng)景語(yǔ)義信息,更適合于閉環(huán)檢測(cè)。
使用預(yù)訓(xùn)練好的CNN模型作為圖像的特征提取器,將提取的圖像局部特征進(jìn)行VLAD編碼。構(gòu)建圖像描述后,使用歐氏距離度量圖像的相似性。假設(shè)兩圖像對(duì)應(yīng)的圖像描述向量分別為xk、xt,它們的歐氏距離如公式(2)所示。距離越小則相似度越大,若兩個(gè)圖像相似度大于設(shè)定的閾值,則判斷出現(xiàn)閉環(huán)。
閉環(huán)檢測(cè)處理的視頻幀數(shù)據(jù)具有時(shí)間連續(xù)性,相鄰圖像的相似度往往較大,非常容易被誤檢測(cè)為閉環(huán)[15]。因此在檢測(cè)閉環(huán)的過(guò)程中應(yīng)該設(shè)置檢測(cè)的圖像范圍,排除相鄰幀圖像的干擾。為了避免相鄰視圖對(duì)閉環(huán)檢測(cè)產(chǎn)生誤閉環(huán)干擾,在實(shí)驗(yàn)中通過(guò)設(shè)置閾值的方式限定閉環(huán)的檢測(cè)范圍。例如設(shè)置閾值Th=50,即待檢測(cè)圖像與其之前相鄰的50幀圖像不進(jìn)行閉環(huán)檢測(cè)。
在此首先測(cè)試了AlexNet卷積神經(jīng)網(wǎng)絡(luò)各卷積層與池化層提取的圖像特征在經(jīng)過(guò)VLAD特征編碼后的圖像描述在公開數(shù)據(jù)集下的平均精度,選取卷積神經(jīng)網(wǎng)絡(luò)表現(xiàn)最好的前兩層與基于手工設(shè)計(jì)特征的圖像描述及基于深度學(xué)習(xí)的圖像描述進(jìn)行比較分析。
為了驗(yàn)證CNN與VLAD融合的圖像描述在閉環(huán)檢測(cè)中的效果,使用New College[16]和City Centre[16]兩個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)評(píng)估。New College和City Centre數(shù)據(jù)集是由牛津大學(xué)移動(dòng)機(jī)器人團(tuán)隊(duì)收集提供,被廣泛用于視覺(jué)SLAM研究和閉環(huán)檢測(cè)算法評(píng)估的數(shù)據(jù)集。這兩個(gè)數(shù)據(jù)集分別包含1073和1237對(duì)圖像,每個(gè)數(shù)據(jù)集分為左右兩個(gè)部分。具體的收集方式如下:在移動(dòng)機(jī)器人左右兩邊各放置一個(gè)攝像頭,機(jī)器人每前進(jìn)1.5米采集一次圖像。由于左右兩個(gè)攝像頭的角度不同,在同一位置兩邊攝像頭采集到的圖像是完全不同的,故這兩個(gè)數(shù)據(jù)集可以分為左右兩個(gè)獨(dú)立的數(shù)據(jù)集。數(shù)據(jù)集以矩陣形式給出了閉環(huán)區(qū)域的真實(shí)標(biāo)注,其中矩陣的行表示先前訪問(wèn)過(guò)的位置視圖,矩陣的列表示當(dāng)前視圖。若當(dāng)前視圖i與歷史視圖j形成閉環(huán)區(qū)域,則(i,j)對(duì)應(yīng)的數(shù)值為 1。
在對(duì)比基于不同CNN模型層結(jié)構(gòu)所提取的圖像局部特征融合VLAD編碼作為圖像描述的性能時(shí),使用New College數(shù)據(jù)集的左半部分(New College Left)進(jìn)行實(shí)驗(yàn)。對(duì)比CNN與VLAD融合的圖像描述在該數(shù)據(jù)集上的平均準(zhǔn)確率,選取CNN模型表現(xiàn)最好了兩個(gè)隱藏層。使用全部的New College和City Centre數(shù)據(jù)集,比較分析其與基于手工設(shè)計(jì)特征的圖像描述以及基于深度學(xué)習(xí)的圖像描述的性能。實(shí)驗(yàn)中在兩個(gè)數(shù)據(jù)集上皆設(shè)置閾值Th=100來(lái)限定閉環(huán)檢測(cè)的范圍。
為了評(píng)估不同圖像描述的性能,使用準(zhǔn)確率-召回率曲線(Precision-Recall Curve)和平均準(zhǔn)確率等指標(biāo)。準(zhǔn)確率描述的是,算法提取的所有閉環(huán)中確實(shí)是真實(shí)閉環(huán)的概率。而召回率則是在所有真實(shí)閉環(huán)中被正確檢測(cè)出來(lái)的概率。準(zhǔn)確率與召回率根據(jù)混淆矩陣進(jìn)行計(jì)算?;煜仃嚕–onfusion Matrix)是表示精度評(píng)價(jià)的一種標(biāo)準(zhǔn)格式,在閉環(huán)檢測(cè)中,結(jié)果根據(jù)是否是閉環(huán)總共分為兩類,則混淆矩陣可以表示為表1的形式。
表1 閉環(huán)檢測(cè)混淆矩陣表示
其中,真陽(yáng)性(TP)表示檢測(cè)到正確的閉環(huán)的數(shù)目,假陽(yáng)性(FP)表示檢測(cè)到錯(cuò)誤的閉環(huán)的數(shù)目,假陰性(FN)表示沒(méi)有檢測(cè)到的真實(shí)閉環(huán)的數(shù)目,正陰性(TN)表示正確檢測(cè)到非閉環(huán)的數(shù)目。在閉環(huán)檢測(cè)中,希望TP和TN要盡量高,而FP和FN要盡可能低。準(zhǔn)確率和召回率的計(jì)算公式如下所示:
使用歐氏距離來(lái)計(jì)算圖像的相似性,并應(yīng)用距離閾值來(lái)確定是否發(fā)生了閉環(huán)。通過(guò)改變距離閾值,計(jì)算每個(gè)閾值下的精確率-召回率對(duì),即可得到一條準(zhǔn)確率-召回率曲線。平均準(zhǔn)確率是通過(guò)計(jì)算準(zhǔn)確率-召回率曲線中所有召回率的平均精確率來(lái)獲得的。
使用New College Left數(shù)據(jù)集,對(duì)CNN與VLAD融合的圖像描述進(jìn)行實(shí)驗(yàn),選取CNN模型中表現(xiàn)最好的兩層隱藏層,與基于手工設(shè)計(jì)特征的圖像描述及基于深度學(xué)習(xí)的圖像描述進(jìn)行比較分析。圖2為CNN模型的所有卷積層與池化層提取圖像局部特征后融合VLAD編碼的圖像描述在該數(shù)據(jù)集上的準(zhǔn)確率-召回率曲線。表2列出了CNN模型各層提取圖像局部特征融合VLAD編碼的圖像描述的平均準(zhǔn)確率。圖3中,將CNN模型表現(xiàn)最好的兩層隱藏層使用虛線標(biāo)注出來(lái),并在表2的加粗標(biāo)注出了這兩個(gè)隱藏層的平均準(zhǔn)確率。綜合準(zhǔn)確率-召回率曲線與平均準(zhǔn)確率,選取conv3和conv4兩個(gè)卷積層提取圖像局部特征,融合VLAD編碼,與基于手工設(shè)計(jì)特征的圖像描述及基于深度學(xué)習(xí)的圖像描述進(jìn)行比較。
為進(jìn)一步驗(yàn)證基于CNN與VLAD融合的圖像描述的效果,使用New College和City Centre左右兩部分?jǐn)?shù)據(jù)集進(jìn)行測(cè)試,并與基于手工設(shè)計(jì)特征的圖像描述及基于深度的圖像描述進(jìn)行比較?;趥鹘y(tǒng)手工設(shè)計(jì)特征的圖像描述選用BoVW、VLAD和GIST三種作為參照,基于深度學(xué)習(xí)的圖像描述則選取AlexNet-PlaceCNN模型的pool5層輸出特征向量。
表2 各CNN隱藏層在實(shí)驗(yàn)數(shù)據(jù)集上的平均準(zhǔn)確率
圖2 各CNN隱藏層在實(shí)驗(yàn)數(shù)據(jù)集上的準(zhǔn)確率-召回率曲線
表3列出了CNN與VLAD融合的圖像描述與BoVW、VLAD、GIST三種基于手工設(shè)計(jì)特征的圖像描述及基于PlaceCNN的圖像描述在New College和City Centre左右兩部分?jǐn)?shù)據(jù)集的平均準(zhǔn)確率??梢钥闯龌趥鹘y(tǒng)手工設(shè)計(jì)特征的圖像描述及基于PlaceCNN的圖像描述與基于CNN與VLAD融合的圖像描述在平均準(zhǔn)確率上的表現(xiàn)相當(dāng)。圖3展示了幾種圖像描述在New College和City Centre左右兩部分?jǐn)?shù)據(jù)集上的準(zhǔn)確率-召回率曲線。圖3表明了基于CNN與VLAD融合的圖像描述在實(shí)現(xiàn)更高的準(zhǔn)確率時(shí),能夠保持更好的召回率。由于在SLAM中,錯(cuò)誤的閉環(huán)會(huì)導(dǎo)致致命的錯(cuò)誤,故我們更關(guān)注準(zhǔn)確率,即更關(guān)心準(zhǔn)確率-召回率曲線偏向右上方的程度。故由圖3也可以看出,基于CNN與VLAD融合的圖像描述的性能更優(yōu)。表4列出了各個(gè)圖像描述在100%的準(zhǔn)確率下能夠?qū)崿F(xiàn)的最高召回率。在100%的準(zhǔn)確率前提下,基于CNN與VLAD融合的圖像描述能夠?qū)崿F(xiàn)更高的召回率,其中表現(xiàn)最好的conv4層提取的圖像局部特征融合VLAD編碼作為圖像描述的平均召回率較表現(xiàn)最佳的基于手工設(shè)計(jì)特征的圖像描述GIST提高了59.71%,較基于PlaceCNN的圖像描述提高了28.33%。
表3 不同圖像描述平均準(zhǔn)確率對(duì)比
圖4 幾種圖像描述在公開數(shù)據(jù)集下的準(zhǔn)確率-召回率曲線
表4 不同圖像描述在100%準(zhǔn)確率下實(shí)現(xiàn)的最大召回率對(duì)比
針對(duì)視覺(jué)SLAM閉環(huán)檢測(cè)中圖像描述方法存在的缺陷,提出一種基于CNN與VLAD融合的圖像描述方法。對(duì)基于CNN與VLAD融合的圖像描述和基于手工特征的圖像描述及基于深度學(xué)習(xí)的圖像描述的閉環(huán)檢測(cè)方法進(jìn)行了比較研究。使用New College數(shù)據(jù)集和City Centre數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn)測(cè)試。實(shí)驗(yàn)結(jié)果表明,基于CNN與VLAD融合的圖像描述和基于手工設(shè)計(jì)特征的圖像描述及基于PlaceCNN的圖像描述的閉環(huán)檢測(cè)在上述兩個(gè)數(shù)據(jù)集下的平均準(zhǔn)確率表現(xiàn)相當(dāng),而基于CNN與VLAD融合的圖像描述在較高的準(zhǔn)確率下,仍能夠保持較高的召回率。與其他圖像描述相比,CNN模型的conv4層提取的圖像局部特征融合VLAD編碼作為圖像描述在實(shí)現(xiàn)100%準(zhǔn)確率的前提下,召回率最高提高了59.71%。為進(jìn)一步研究閉環(huán)檢測(cè)在SLAM系統(tǒng)的工程應(yīng)用奠定了良好的理論研究與前期實(shí)驗(yàn)基礎(chǔ)。