劉凌云, 蔡成林, 吳 芊
(湘潭大學(xué) 自動化與電子信息學(xué)院,湖南 湘潭 411105)
同時定位與地圖構(gòu)建(simultaneous localization and mapping,SLAM)是應(yīng)用于室內(nèi)外機(jī)器人導(dǎo)航、無人駕駛技術(shù)、增強(qiáng)現(xiàn)實(shí)(AR)和虛擬現(xiàn)實(shí)(VR)的關(guān)鍵技術(shù)之一,SLAM系統(tǒng)長時間運(yùn)作會產(chǎn)生累計(jì)誤差,最終使定位結(jié)果嚴(yán)重偏離現(xiàn)實(shí)情況?;丨h(huán)檢測是以相機(jī)為傳感器的視覺SLAM[1]中的關(guān)鍵環(huán)節(jié),它能夠評估當(dāng)前圖像與歷史圖像的相似程度,判斷相機(jī)是否回到歷史位置,以此來消除累計(jì)誤差。傳統(tǒng)的回環(huán)檢測方案多基于視覺詞袋(bag of visual words,BoVW)方法[2],該方法利用特征點(diǎn)構(gòu)造詞袋,通過相似性計(jì)算檢測回環(huán)。早期方案使用實(shí)值特征進(jìn)行特征提取,限制了算法效率,Mur-Artal R等人提出的ORB-SLAM[3]使用二進(jìn)制特征ORB降低了計(jì)算復(fù)雜性,提高了算法效率。針對圖像中重復(fù)特征較多的環(huán)境,Lee S等人提出了一種抑制重復(fù)特征占用圖像直方圖的算法[4]。徐慧等人針對動態(tài)場景下算法不穩(wěn)定的問題,提出了一種動態(tài)場景下基于場景流的回環(huán)檢測算法[5]。上述方法暫未考慮光照變化明顯的室外場景。在室外壞境下,光照不穩(wěn)定會造成圖像過曝或者曝光不足,圖像中有效信息減少,進(jìn)而影響回環(huán)檢測的準(zhǔn)確性。
本文結(jié)合一種可在線刪增視覺詞的詞袋模型[6],提出了一種適用于光照易變場景的回環(huán)檢測方法,先對圖像進(jìn)行曝光情況檢測,再利用基于曝光區(qū)域的自適應(yīng)直方圖均衡對圖像進(jìn)行預(yù)處理,恢復(fù)圖像的部分細(xì)節(jié)。實(shí)驗(yàn)結(jié)果表明,該方法在保證實(shí)時性的同時,在室外光照易變場景下增強(qiáng)了算法的魯棒性,提升了100 %準(zhǔn)確率下的召回率。
BoVW是用于圖像檢索和分類的圖像表示方法。該方法從離線圖像中提取特征,聚類生成視覺詞,再利用視覺詞構(gòu)建詞袋。如圖1所示。
圖1 BoVW模型
當(dāng)查詢圖像A輸入時,先對A提取特征點(diǎn),利用查找算法查詢詞袋中對應(yīng)的視覺詞。然后利用TF-IDF對不同的視覺詞加上權(quán)重,設(shè)所有特征數(shù)量為n,視覺詞為wi,wi的數(shù)量為ni,wi的權(quán)重為TF與IDF的乘積
(1)
圖像A可由下式表示
A={(w1,η1),(w2,η2),…,(wN,wN)}?vA
(2)
若給定圖像vA和vB,可用L1范數(shù)來計(jì)算圖像A與圖像B的相似性得分
(3)
經(jīng)歸一化處理后,將s與設(shè)定的閾值比較判斷是否產(chǎn)生回環(huán)。
本文提出的回環(huán)檢測算法流程如圖2所示。該算法無需離線構(gòu)建詞袋,首次輸入的圖像將被用于初始化詞袋,后續(xù)輸入圖像中提取的視覺詞將可能被添加到詞袋中。
圖2 光照易變環(huán)境下的回環(huán)檢測算法流程圖
相機(jī)傳感器因光照原因采集到的部分圖像曝光不正常,不利于特征點(diǎn)提取及視覺詞生成,最終導(dǎo)致回環(huán)檢測失敗。需先將非正常曝光圖像篩選出來,本文基于信息熵提出了一種圖像曝光檢測算法。首先,根據(jù)Shannon提出的圖像熵[7],將灰度圖像的圖像熵表示為
(4)
在圖像飽和度檢測中,可用像素活動來捕獲熵的變化[8]。首先用f(x,y,t)重寫熵方程以表示圖像。f(x,y,t)表示第t次精細(xì)到粗略變換后在位置(x,y)處的像素的歸一化亮度等級
(5)
文獻(xiàn)[8]中,像素活動被定義為式(5)相對于變換步驟的偏微分
(6)
其中,δ為熵產(chǎn)生密度
(7)
用上述公式將式(6)重寫為
(8)
通過傅立葉變換可直接計(jì)算該熵方程的解。為將傅立葉偏微分方程應(yīng)用于導(dǎo)電擴(kuò)散方程,可將經(jīng)過精細(xì)到粗略變換后的圖像的歸一化像素值表示為
f(x,y,t)=
(9)
(10)
(11)
因?yàn)殪匚⒎值钠椒教荻戎捣植挤从沉藞D像區(qū)域中的信息量,所以熵微分可度量原始圖像的局部信息。因此,當(dāng)熵值的微分接近于零時,可以將其視為沒有信息的飽和區(qū)域。
設(shè)像素的熵微分閾值T=0.01,若a(x,y)≤s,可判定該像素處于非正常曝光狀態(tài),反之則處于正常曝光狀態(tài)。設(shè)圖像曝光閾值為d=0.0015E,E為像素個數(shù),則圖像曝光情況可由下式檢測
(e-N(u2+v2)-1)}
(12)
式中M為低熵像素個數(shù),若SUM[am(x,y)]≥d,則判斷該圖像過曝光及曝光不足較為嚴(yán)重,需進(jìn)行后續(xù)的圖像增強(qiáng)處理。
目前,對于非正常曝光圖像可利用多圖像融合技術(shù)[9]進(jìn)行處理,該方法不適用于傳感器為單一相機(jī)的純視覺SLAM。本文考慮利用直方圖均衡(histogram equalization,HE)調(diào)節(jié)圖像整體對比度,恢復(fù)圖像更多細(xì)節(jié)。
傳統(tǒng)HE對圖像整體進(jìn)行無差別處理,容易過度增強(qiáng)圖像,增加背景干擾信息的對比度并降低有用信息的對比度??紤]到ORB特征的FAST角點(diǎn)提取策略,算法應(yīng)側(cè)重于使圖像主體信息區(qū)域的灰度值分布均勻,更利于特征點(diǎn)的提取。本文改進(jìn)了一種基于不同曝光區(qū)域的自適應(yīng)直方圖均衡算法,使其能改善圖像中主體信息區(qū)域的對比度。
假設(shè)圖像中有M個離散灰度等級,共有N個像素點(diǎn),nk表示灰度等級k的像素個數(shù),k∈[0,M-1]。其累積密度函數(shù)可表示為
(13)
則像素灰度值的輸入輸出映射關(guān)系可由下面的公式表示
yout=ymin+(ymax-ymin)Fk(yin)
(14)
式中ymax和ymin分別為圖像中像素灰度級的最大值和最小值。
將圖像的直方圖按照灰度等級劃分為暗、中和亮三個大小相等的區(qū)域,分別對三個區(qū)域進(jìn)行加權(quán)直方圖均衡處理。加權(quán)因子可通過計(jì)算每個區(qū)域的灰度標(biāo)準(zhǔn)差得到
(15)
式中m為區(qū)域灰度平均值,yj為像素點(diǎn)j的灰度值,nj為灰度值為yj的像素點(diǎn)個數(shù),N為該區(qū)域中像素點(diǎn)總個數(shù),i∈[1,3]。σi反映了該區(qū)域直方圖分布情況,當(dāng)σi值很小時,說明該區(qū)域直方圖集中在平均亮度附近,直接處理可能導(dǎo)致偽像的產(chǎn)生,應(yīng)對該區(qū)域進(jìn)行低權(quán)重處理,σi值過大時同理。當(dāng)σi介于較大值和較小值之間時,應(yīng)對該區(qū)域設(shè)置更高的權(quán)重進(jìn)行處理。改進(jìn)后的算法與HE處理效果對比見圖3和圖4。
圖3 人物原圖及經(jīng)兩種算法處理后的圖像對比
圖3中左圖是過曝光人物原圖。中間為HE處理后的圖像,圖像整體產(chǎn)生了沖洗后的偽像感,背景部分的區(qū)域(淺色框)被過度增強(qiáng),人物部分(深色框)灰度值被拉低,人物對比度較低,且人物與背景銜接處噪點(diǎn)被放大。右圖是改進(jìn)的算法處理后的圖像,人物與背景對比明顯,人物部分對比度提高,圖像主體部分的細(xì)節(jié)得到恢復(fù),圖像整體沒有多余噪點(diǎn)產(chǎn)生。
圖4中灰度直方圖分別對應(yīng)于圖3。原圖的像素灰度集中在145~255灰度級之間,表明圖像整體偏亮,過曝現(xiàn)象嚴(yán)重。中間圖像灰度集中在0~176之間,原高亮區(qū)域向灰暗區(qū)轉(zhuǎn)移,人物局部過暗。右圖中像素分布于整個灰度區(qū)間內(nèi),不同像素灰度值之間過渡較為平滑,圖像對比度較好,主體信息區(qū)域突出,有利于特征點(diǎn)的提取。
圖4 人物原圖及經(jīng)兩種算法處理后圖像的灰度直方圖
圖5為圖像的ORB特征點(diǎn)提取結(jié)果。原圖中,僅在人物面部(淺色框)和肩部(深色框)提取到了少量特征。中間圖像特征點(diǎn)集中在人物邊緣處以及背景部分。右圖中,在人物面部和肩部提取到了大量特征點(diǎn),這說明圖像中的主體信息被算法充分捕獲,這將對后續(xù)的回環(huán)檢測產(chǎn)生積極的影響。
圖5 ORB特征點(diǎn)提取結(jié)果對比
傳統(tǒng)BoVW需利用離線圖像構(gòu)建詞袋,當(dāng)實(shí)際環(huán)境與離線圖像差別明顯時,算法將產(chǎn)生難以消除的誤差,且詞袋中冗余的視覺詞會降低檢索效率。本文利用可在線刪增視覺詞的方法構(gòu)建詞袋:首先隨機(jī)選擇K個描述子作為聚類中心;然后根據(jù)每個剩余輸入描述子的漢明距離將它們分配給最近的聚類中心;遞歸地重復(fù)此過程,直到一個簇中的描述子數(shù)量低于某個閾值S。層級樹示例如圖6所示。
圖6 層級樹示例(K=2,S=3)
視覺詞刪增及詞袋更新策略:計(jì)算查詢圖像特征的描述子;用層級樹檢索和新描述子匹配的描述子;若匹配失敗,評估葉節(jié)點(diǎn)上的描述子數(shù)是否超過S,若超過則遞歸重建該節(jié)點(diǎn),新描述子添加到原始描述子中,反之則將描述子直接附加到葉節(jié)點(diǎn);刪除經(jīng)評估無效的描述子,對其附加節(jié)點(diǎn)和上級節(jié)點(diǎn)進(jìn)行遞歸修訂,若被刪描述子與聚類中心重合,則隨機(jī)選擇一個新的中心。
本文在實(shí)驗(yàn)部分與基于詞袋的iBoW-LCD[10]算法進(jìn)行了對比實(shí)驗(yàn),分別在室外數(shù)據(jù)集City Centre和New College上進(jìn)行性能測試,該實(shí)驗(yàn)主要考慮算法在100 %準(zhǔn)確率下的召回率。實(shí)驗(yàn)中所用計(jì)算機(jī)配置CPU為AMD R7—3800X(3.9 GHz),內(nèi)存16GB,系統(tǒng)平臺為Ubuntu16.04。
表1為本文提出的算法與iBoW-LCD算法的性能測試結(jié)果對比,在City Centre數(shù)據(jù)集的測試中,召回率僅少許提升,該數(shù)據(jù)集中受不正常曝光影響的圖像較少,因此算法性能提升不明顯。而在New College數(shù)據(jù)集中,部分圖像存有大面積不正常曝光區(qū)域,召回率相比提高了8.6 %。此外,部分圖像細(xì)節(jié)恢復(fù)使可提取特征增加,詞袋容量有所增大。同時,詞袋容量變大以及圖像預(yù)處理模塊的引入,算法處理每幀圖像的平均耗時有所增加。
表1 本文提出的算法與iBoW-LCD對比
將基于多哈希索引的MILD[11]加入實(shí)驗(yàn)測試中。三種算法均在數(shù)據(jù)集New College上進(jìn)行測試,其P-R曲線如圖7所示。實(shí)驗(yàn)結(jié)果顯示,在100 %準(zhǔn)確率下,本文提出的算法和MILD的召回率明顯高于iBoW-LCD,且本文算法的召回率略高于MILD。在召回率達(dá)到92.8 %時,三種算法準(zhǔn)確率先后開始加速下降,最終在召回率達(dá)100 %時,準(zhǔn)確率僅為50 %左右。顯然,本文提出的算法性能在大部分情況下均優(yōu)于其他兩種算法,僅在召回率為95 %附近時與MILD表現(xiàn)出極為相近的結(jié)果。
圖7 三種算法的準(zhǔn)確率—召回率(P-R)關(guān)系曲線
本文提出了一種適用于光照易變場景的回環(huán)檢測方法。將圖像預(yù)處理模塊融入在線刪增視覺詞的BoVW,先對圖像曝光情況進(jìn)行檢測,對非正常曝光圖像進(jìn)行預(yù)處理后再交由后續(xù)回環(huán)檢測模塊處理。實(shí)驗(yàn)結(jié)果表明:本文提出的算法在光照易變場景下性能優(yōu)于iBoW-LCD以及MILD算法,在New College數(shù)據(jù)集測試中保證實(shí)時性的同時召回率比iBoW-LCD提高8.6 %。下一步計(jì)劃將光照變化場景與動態(tài)場景處理模塊融合,提高回環(huán)檢測技術(shù)在復(fù)雜環(huán)境下的魯棒性。