張夢珠 黃勁松
1武漢大學(xué)測繪學(xué)院,湖北 武漢,430079
視覺定位的基本流程一般包含特征提取、特征匹配及運動估計等步驟,其中,傳統(tǒng)方法中特征提取是提取圖像的角點特征,如SIFT特征點、ORB特征點等。然而這種基于角點特征的定位方式存在一定的局限性,一方面,有些角點特征容易受到視角、光照等因素的影響,導(dǎo)致在某些場景下不可用。另一方面,角點這種像素級的特征缺乏對場景的理解,很難與人類和現(xiàn)有地圖進(jìn)行交互。
所謂語義,就是將低級特征進(jìn)一步歸納組織,達(dá)到人所理解的分類層面。語義特征相較于角點特征更接近人類認(rèn)知世界的方式,語義在圖像認(rèn)知、環(huán)境感知和定位領(lǐng)域已經(jīng)越來越得到重視。為了獲取更加豐富的環(huán)境信息,在SLAM(simultaneous localization and mapping)技術(shù)上增加語義的理解顯得尤為重要,相較于典型的低級特征,語義特征能夠更好的表示所處的環(huán)境是什么,環(huán)境中包含哪些物體。
近年來,隨著深度學(xué)習(xí)與計算機硬件的迅速發(fā)展,目標(biāo)檢測與深度學(xué)習(xí)的結(jié)合,物體識別和分割的可用性不斷提高,語義特征的提取不再遙不可及。目前典型的基于深度學(xué)習(xí)的目標(biāo)檢測,有以YOLO系列[1-3]為代表的One-stage方法和以Faster RCNN系列[4-7]為代表的Two-Stage方法。隨著優(yōu)秀語義信息提取框架的不斷涌現(xiàn),語義特征在定位中也有許多嘗試,不斷有研究用語義信息來優(yōu)化傳統(tǒng)的SLAM。文 獻(xiàn)[8]中SalientDSO在DSO(direct sparse odometry)基礎(chǔ)上利用語義信息來調(diào)整選取特征點的權(quán)重,文獻(xiàn)[9]中利用語義信息選擇具有更大信息量的特征點。除了利用語義信息改進(jìn)特征點選取策略的研究,利用語義信息來去除動態(tài)點的干擾、閉環(huán)檢測等的研究也不斷涌現(xiàn)[10-13]。
語義信息在建圖中也有很多應(yīng)用,早期的SLAM++是將物體識別與基于尺度不變特征變換(scale invariant feature transform,SIFT)特征點的視覺定位結(jié)合[14],利用SIFT特征點識別物體,然后生成局部語義地圖。后來Fioraio等[15]將3D物體的識別加入到SLAM構(gòu)建的地圖中。在原本SLAM建圖的基礎(chǔ)上加入語義信息的方案在逐步完善[16-20]。然而,在目前常見的地圖中,存儲傳統(tǒng)SLAM中特征點的代價是巨大的。因此,本文提出一種基于語義特征的視覺定位方法,通過語義特征和地圖實現(xiàn)定位。
本文基于語義特征的視覺定位的系統(tǒng)流程圖如圖1所示。首先,在對采集的圖像進(jìn)行預(yù)處理后,訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),使其能提取訓(xùn)練過的語義特征,并利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)實現(xiàn)對圖像中的靜態(tài)語義特征的提取,得到圖像中包含的語義及其在圖像中的位置;然后,根據(jù)視覺幾何原理恢復(fù)圖像中語義的點云,并進(jìn)一步恢復(fù)其幾何模型以確定語義特征的位置;最后結(jié)合語義地圖,對語義特征進(jìn)行匹配,從而實現(xiàn)定位。
圖1 語義特征定位算法流程圖Fig.1 Flow Chart of Localization Algorithm Based on Semantic Characteristics
對于一幅圖像,人類的視覺系統(tǒng)可以直接將圖像內(nèi)容識別為語義對象,而計算機則是以底層的像素特征為依據(jù),即計算機中對圖像的存儲是以像素為單位的矩陣形式。圖像的語義特征即圖像中包含的物體對象,提取語義特征,即識別圖像中的語義并確定其在圖像中的位置。本文采用基于卷積神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行語義特征的提取,選取實現(xiàn)效果和計算效率比較理想的YOLOv3目標(biāo)檢測算法作為語義特征提取的方案。
圖2是YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)框架圖,圖像通過該網(wǎng)絡(luò)可一步實現(xiàn)對圖像中目標(biāo)的識別及目標(biāo)預(yù)測框位置的確定。這種算法的主要特點有兩點:①采用Darknet-53這種層數(shù)較多的卷積神經(jīng)網(wǎng)絡(luò)做為特征提取網(wǎng)絡(luò),通過有效訓(xùn)練能較好地提取出想要的特征。②分別在3個尺度上進(jìn)行目標(biāo)檢測,能夠更加準(zhǔn)確地檢測出目標(biāo)。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Network Structure Diagram
在基于傳統(tǒng)像素級的角點特征的視覺定位中,完成特征點的檢測后特征點的位置就相當(dāng)于已經(jīng)確定了,這時特征的位置即為其像素坐標(biāo),因而可直接進(jìn)入匹配定位的過程,而語義特征則不然。通過提取語義特征已經(jīng)檢測出圖像中的語義特征在圖像中的位置,但是檢測出的語義是以矩形框的形式表示其在圖像中的位置,而矩形框中包含許許多多的像素點,為了更好地描述語義特征的位置并實現(xiàn)和已知地圖的結(jié)合,本文提出一種基于點云確定幾何模型的策略來確定語義特征的位置,首先對于檢測出的每個語義特征均進(jìn)行點云的恢復(fù)并判斷其幾何模型,然后計算模型參數(shù),最后確定出位置坐標(biāo)。
在針孔相機下,空間一點P映射到圖像平面上一點P1,其幾何投影模型如圖3所示。
圖3 幾何投影示意圖Fig.3 Geometric Projection Diagram
根據(jù)幾何關(guān)系可知:
在深度相機中,深度圖中的深度即為相機坐標(biāo)系下Z軸的坐標(biāo)。而對于雙目相機,首先需要獲取視差圖,本文使用運算速度較快的BM(block matching)算法進(jìn)行雙目匹配,從而獲取雙目的視差圖,然后根據(jù)式(2)求得Z坐標(biāo)。
式中,b是雙目相機的基線長;D為雙目的視差。上述過程描述了如何恢復(fù)圖像中一個像素點對應(yīng)的相機坐標(biāo),對于一個完整的語義特征,只需根據(jù)目標(biāo)檢測中得到的語義特征在圖像中的所有點的像素坐標(biāo)即可恢復(fù)出語義特征的點云。
在恢復(fù)的點云中,可能包含了少部分并非是目標(biāo)上的點,若直接根據(jù)所有點最小二乘來擬合語義的幾何模型,這些噪聲點可能會影響幾何模型計算的效果,因此本文采用隨機抽樣一致算法(random sample consensus,RANSAC)來求解語義特征對應(yīng)的幾何模型。其基本思想是隨機抽取若干樣本計算模型,判斷模型對樣本數(shù)據(jù)的符合情況,不斷迭代直至計算出合適的模型。
已知點云圖集,求解幾何模型表達(dá)式算法的具體步驟如下:
1)隨機選取若干點集Ji,根據(jù)這些點集計算模型M i;
2)根據(jù)距離判斷模型M i對點云中所有點的符合情況,DisP<Threshoid;P符合M i;
3)如果有足夠的點符合該模型,則采用該模型,否則重新選取點,重復(fù)步驟1)~步驟2)過程,直至找到合適模型或到達(dá)最大迭代次數(shù)。
上述基于RANSAC的求解幾何模型步驟中,隨機選取點的個數(shù)與模型相關(guān),模型最少需要多少點能唯一確定就選取多少個點進(jìn)行求解,如平面需要不共線的3個點,直線則需要不同的兩個點確定。
如圖4所示,為圖像中語義特征(顯示器)經(jīng)過目標(biāo)檢測、恢復(fù)點云、求解平面模型的過程,其中紅色的平面為確定出的平面模型。
圖4 幾何恢復(fù)過程Fig.4 Flow Chart of the Geometric Recovery
圖5為將點狀語義(植物)恢復(fù)點云,垂直投影到二維平面,然后根據(jù)上述算法選取參考點的過程,圖5中紅色點為最終確定的語義特征的位置??梢娫撍惴捎行У靥崛≌Z義特征的位置,并且具有一定的魯棒性,不會受少量噪聲點的影響,因此本文選用此算法。
圖5 參考點選取過程Fig.5 Reference Point Selection
通過上述語義特征的提取,已經(jīng)得到當(dāng)前位置圖像中的語義信息,具體包含其幾何模型、語義類型及位置坐標(biāo)信息,接下來需要結(jié)合地圖中的信息進(jìn)行語義匹配,進(jìn)而求解出當(dāng)前相機在世界坐標(biāo)系下的位置。
在傳統(tǒng)的三維點云匹配中,常用的匹配算法是迭代最近點(iterative closest point,ICP)[21-23],其基本思想是:通過找到兩組點云集合中距離最近的點對,根據(jù)估計的變換關(guān)系(R和t)來計算距離最近點對在經(jīng)過變換之后的誤差,通過不斷的迭代直至誤差小于某一閾值或者達(dá)到最大迭代次數(shù),從而確定最終的變換關(guān)系。對于傳統(tǒng)的具有描述子的特征點來說,可以根據(jù)描述子來對點進(jìn)行匹配。而對于語義特征來說,一方面,這種語義描述信息并非像傳統(tǒng)特征點的描述子那般精細(xì),傳統(tǒng)特征點的描述子通過很復(fù)雜的計算方式來盡可能使得描述子和特征點幾乎是一一對應(yīng)的,而語義特征僅以語義特征所對應(yīng)的物體標(biāo)簽進(jìn)行描述。另一方面,其點不僅具有位置信息,還具有語義描述信息。因此,本文提出采用考慮語義約束的ICP算法,使用圖像中的語義點坐標(biāo)和地圖中的地物坐標(biāo)即毫無目的的匹配,也不會使匹配計算過程過于復(fù)雜。已知圖像中語義點P及其相機坐標(biāo),地圖中語義點Q及其世界坐標(biāo),求解相機的位姿T的具體步驟如下。
1)求圖像中的各個點P i在地圖中的最近點Q j兩語義點之間距離公式:
2)將上述Qj看作Pi的對應(yīng)點,求解轉(zhuǎn)換矩陣T k;
3)重新計算圖像中的各個Pi在經(jīng)過T k轉(zhuǎn)換之后的點,更新賦值給Pi;
4)重復(fù)步驟1)~步驟3)直至迭代次數(shù)或誤差滿足收斂條件。
在將地圖和圖像中的語義點匹配上后,本文采取基于奇異值分解(singular value decomposition,SVD)的方法求解轉(zhuǎn)換矩陣即位姿。若圖像中的語義點P i和地圖中的語義點Q j相互匹配即為同一語義點,則其坐標(biāo)應(yīng)該滿足P i=RQ j+t,問題可轉(zhuǎn)化為求合適的R、t,使得點集P經(jīng)過R、t的旋轉(zhuǎn)平移后距離其匹配點集Q的距離最小,即:
對式(3)關(guān)于t求導(dǎo),逐步化簡最終可求得R和t,如式(4)~式(6)所示,其中H為點集P和Q之間的協(xié)方差矩陣,和為點集P和Q的中心點。
本文的實驗數(shù)據(jù)選自慕尼黑工業(yè)大學(xué)(Technische Universit?t München,TUM)的Computer Vision Lab公布的RGB-D數(shù)據(jù)集中的一部分。
本文實驗場景為圖6所示的室內(nèi)場景,按照上述中講過的算法,對圖像進(jìn)行語義檢測并恢復(fù)其在二維坐標(biāo)下的坐標(biāo),然后結(jié)合二維地圖進(jìn)行匹配定位。本文選取用于定位的語義特征在圖6中用矩形框標(biāo)出,選取圖像中“顯示器(Monitor)”垂直投影后的兩個端點和兩顆“植物(Plant)”作為語義特征點與二維地圖進(jìn)行匹配定位。
圖6 實驗場景Fig.6 Experimental Scene
圖7為圖像中恢復(fù)的語義在二維平面坐標(biāo)系下的坐標(biāo),這里的二維坐標(biāo)系是以當(dāng)前相機位置為原點,相機光軸方向為Y軸,垂直Y軸水平向右為X軸,其中圓形點為“顯示器”兩個端點的位置,星形點為“植物”的位置。圖8為在地圖中(世界坐標(biāo)系中)相對應(yīng)語義特征的位置,其中圖中直線為“顯示器”的位置,閉合的折線為桌子(Table)邊緣位置,圓形點為“植物”的位置。
圖7 語義點位置恢復(fù)Fig.7 Semantic Poinst Position Restoration
圖8 地圖中各目標(biāo)的位置Fig.8 Location of Objects in the Map
實驗定位結(jié)果與真值對比情況如表1所示,其中,真值是指相機位置在地圖中真實的坐標(biāo),誤差由估計值減去真值所得。由實驗結(jié)果可見,按照本文方法,通過提取語義特征,可以利用地圖實現(xiàn)定位。
表1 定位結(jié)果/mTab.1 Positioning Results/m
語義特征作為一種更加抽象的特征,彌補了傳統(tǒng)角點特征的不足,并且能更好的表達(dá)周圍環(huán)境。本文將語義特征引入到視覺定位中,設(shè)計了語義視覺定位系統(tǒng)的框架組成,從視覺圖像出發(fā),以語義特征為切入點,以語義地圖為依據(jù),實現(xiàn)對相機位置的確定。針對語義特征位置確定的問題,提出了一套行之有效的方案,針對語義特征的匹配問題,提出一種適用于本文的有效的匹配算法。最后實現(xiàn)本文所提算法,并通過實驗驗證了其可行性。