轉(zhuǎn)載請(qǐng)注明來(lái)源
InLoc: Indoor Visual Localization with Dense Matching and View Synthesis是H. Taira et al.發(fā)表在CVPR2018的一篇論文县恕,研究了從一個(gè)大的室內(nèi)3D地圖中預(yù)測(cè)問(wèn)詢(xún)圖像對(duì)應(yīng)的6自由度位姿的問(wèn)題酒请。
作者設(shè)計(jì)的方案主要由三步構(gòu)成:
(1)快速地檢索相匹配的候選圖片,保證了即使在大范圍的場(chǎng)景中也有較好的實(shí)時(shí)性
(2)利用稠密匹配(而不是常見(jiàn)的局部特征匹配)來(lái)估計(jì)位姿京革,使得算法在紋理稀疏的場(chǎng)景中也有效
(3)利用從場(chǎng)景的3D模型中合成視野的方法驗(yàn)證估計(jì)的位姿
此外绳泉,作者還建立了一個(gè)數(shù)據(jù)集冠跷,并在數(shù)據(jù)及上驗(yàn)證了算法的效果合是。
簡(jiǎn)介
室內(nèi)定位是智能移動(dòng)機(jī)器人系統(tǒng)的關(guān)鍵功能,此外與增強(qiáng)現(xiàn)實(shí)(AR)等技術(shù)也密切相關(guān)飒赃。
與城鎮(zhèn)環(huán)境的定位相比利花,室內(nèi)定位主要面臨以下困難:
(1)由于視距比較短,視野受位置的影響很大载佳。
(2)室內(nèi)場(chǎng)景中炒事,很多部分是沒(méi)有紋理的,有紋理的區(qū)域很小蔫慧。
(3)室內(nèi)場(chǎng)景常常單一挠乳、對(duì)稱(chēng)、重復(fù)。
(4)由于照明等因素睡扬,室內(nèi)場(chǎng)景在一天內(nèi)會(huì)發(fā)生很大的變化盟蚣。
(5)室內(nèi)場(chǎng)景常常是高度動(dòng)態(tài)的,比如家具和人常常會(huì)移動(dòng)威蕉。
因而作者提出了一個(gè)先針對(duì)建筑建立3D地圖刁俭,隨后使用相機(jī)估計(jì)當(dāng)前位姿的方案。
相關(guān)工作
作者從如下三個(gè)側(cè)面介紹了一些相關(guān)的工作韧涨,感興趣的可以去查閱原文和引用:
基于圖像檢索的定位
基于先驗(yàn)3D地圖的定位
室內(nèi)3D地圖
方法介紹
我們剛剛提到了室內(nèi)環(huán)境給視覺(jué)定位帶來(lái)的主要困難,作者設(shè)計(jì)的方案有針對(duì)性地解決了一些困難:
(1)缺乏稀疏的局部特征侮繁。SIFT虑粥、SURF等方法常常無(wú)法在室內(nèi)場(chǎng)景中提取足夠的特征(如墻面)。為了克服這個(gè)困難宪哩,作者采用多尺度稠密CNN特征(multi-scale dense CNN features)用于圖片描述和特征匹配
(2)圖像變化大娩贷。由于移動(dòng)物體帶來(lái)的場(chǎng)景變化,匹配出來(lái)的圖像可能差別很大锁孟。作者因此沒(méi)有依賴(lài)于匹配獨(dú)立的局部特征彬祖,而是采取了稠密特征匹配的方法來(lái)收集盡可能多的支持證據(jù)——采用通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取的能夠描述圖像高層結(jié)構(gòu)的圖像描述子。
(3)自相似性品抽。現(xiàn)有的匹配策略往往是統(tǒng)計(jì)支持證據(jù)(positive evidence)储笑,作者則提出可以同時(shí)統(tǒng)計(jì)負(fù)面證據(jù)(圖像的哪一部分匹配不上)。更詳細(xì)地圆恤,作者將問(wèn)詢(xún)圖像(query image)與一個(gè)通過(guò)3D模型合成的虛擬視野比較突倍。(事實(shí)證明這個(gè)方法極大地改善了效果。)
候選位姿(及圖片)檢索
作者用NetVLAD來(lái)描述問(wèn)詢(xún)圖片和數(shù)據(jù)庫(kù)圖片盆昙,計(jì)算描述子之間均一化的距離羽历,選取最優(yōu)的個(gè)匹配圖片,得到它們對(duì)應(yīng)的位姿作為候選位姿淡喜。(關(guān)于NetVLAD秕磷,可以參考文末的兩篇文章)
實(shí)際操作時(shí),對(duì)于每張問(wèn)詢(xún)圖片炼团,作者通過(guò)4096維的NetVLAD描述向量從數(shù)據(jù)庫(kù)中找到100個(gè)候選圖片澎嚣。
通過(guò)稠密匹配進(jìn)行位姿估計(jì)
在上一步找到一些候選圖片和對(duì)應(yīng)的位姿后,作者利用一些稠密的特征來(lái)對(duì)這些候選圖片進(jìn)行驗(yàn)證和重排序们镜。一個(gè)可能的方法是用DenseSIFT進(jìn)行匹配币叹,隨后用基于RANSAC方法的驗(yàn)證。
然而作者在這里用CNN(VGG-16)提出的特征層表示圖像模狭,這樣能夠表示一組能夠在一個(gè)更大的感受野描述更高層信息的多尺度的特征颈抚。
作者首先用含有高層信息的conv5層來(lái)找到一組對(duì)應(yīng)信息。隨后通過(guò)在conv3層尋找額外的匹配來(lái)細(xì)化之前找到的對(duì)應(yīng)信息。
由于之前在使用NetVLAD表述問(wèn)詢(xún)圖像時(shí)已經(jīng)進(jìn)行過(guò)卷積計(jì)算得到了特征層贩汉,因而這種操作不會(huì)額外消耗很多時(shí)間驱富。
利用特征的對(duì)應(yīng)信息,通過(guò)P3P-RANSAC的方法就能得到一個(gè)估計(jì)的位姿匹舞。
實(shí)際操作時(shí)褐鸥,作者通過(guò)稠密地匹配通過(guò)CNN得到的特征得到可能的對(duì)應(yīng)關(guān)系(correspondences),并用了一種由粗到細(xì)的方式:首先在conv5層特征中找到最接近的匹配赐稽,隨后依據(jù)這些粗匹配在conv3中細(xì)化叫榕。這些匹配要經(jīng)過(guò)RANSAC驗(yàn)證是否具有幾何上的單應(yīng)性關(guān)系。隨后作者利用RANSAC在100個(gè)候選圖像中篩選出10個(gè)最佳的數(shù)據(jù)集圖像姊舵。對(duì)于這10個(gè)圖像中的每一個(gè)晰绎,作者都用P3P-LO-RANSAC方法來(lái)估計(jì)6自由度位姿。
使用合成視野進(jìn)行驗(yàn)證估計(jì)位姿
在這一步中括丁,作者提出不僅收集支持證據(jù)荞下,還要收集反對(duì)證據(jù)來(lái)判斷是不是相匹配的。
考慮到光線的變化史飞,作者比較的是局部面塊的描述子(DenseRootSIFT)尖昏。
實(shí)際操作中,作者在考慮遮擋的情況下生成10個(gè)對(duì)應(yīng)的合成圖像构资,通過(guò)比較RootSIFT特征描述來(lái)打分抽诉,最后選出一個(gè)最佳圖像。
效果比較
總結(jié)
視覺(jué)室內(nèi)定位是一個(gè)比較老的話題了句携,很長(zhǎng)一段時(shí)間都無(wú)法取得較大的突破,整體的框架也相對(duì)穩(wěn)定允乐。這篇文章是對(duì)一些較新的技術(shù)的一個(gè)整合矮嫉,利用了卷積神經(jīng)網(wǎng)絡(luò)的輸出描述圖像,如用NetVLAD來(lái)進(jìn)行圖像檢索牍疏,用VGG-16的conv5和conv3來(lái)進(jìn)行特征匹配蠢笋。此外作者還添加了驗(yàn)證階段,提高準(zhǔn)確率鳞陨,只是驗(yàn)證階段需要有3D地圖昨寞,這就牽扯到對(duì)場(chǎng)景進(jìn)行3D重建的問(wèn)題。整體來(lái)看,這篇文章比較難啃援岩,因?yàn)樯婕暗姆矫姹容^多歼狼,好多部分的內(nèi)容介紹得不是很詳細(xì)。
相關(guān)知識(shí)點(diǎn)
DenseSIFT
傳統(tǒng)的SIFT算法即Sparse SIFT享怀,不能很好地表征不同類(lèi)之間的特征差異羽峰,達(dá)不到所需的分類(lèi)要求。而Dense SIFT算法添瓷,是一種對(duì)輸入圖像進(jìn)行分塊處理梅屉,再進(jìn)行SIFT運(yùn)算的特征提取過(guò)程。Dense SIFT根據(jù)可調(diào)的參數(shù)大小鳞贷,來(lái)適當(dāng)滿(mǎn)足不同分類(lèi)任務(wù)下對(duì)圖像的特征表征能力履植。
經(jīng)驗(yàn)表明,對(duì)于一些目標(biāo)或者場(chǎng)景分類(lèi)任務(wù)悄晃,在一個(gè)稠密的網(wǎng)格中計(jì)算SIFT描述子比稀疏的關(guān)鍵點(diǎn)得到的結(jié)果要更準(zhǔn)確。一種比較基礎(chǔ)的解釋是凿滤,這樣可以提供更多的信息妈橄。
RootSIFT
牛津大學(xué)的R. Arandjelovic和A. Zisserman在CVPR2012上表示:
RootSIFT是一種有效的改善SIFT的方法,每個(gè)使用SIFT的人都應(yīng)該嘗試使用SIFT翁脆。
只需一行代碼眷蚓,你便可以把SIFT變成RootSIFT:
rootsift = sqrt( sift / sum(sift) );
BoW和VLAD
BoW(Bag of Word,詞袋模型)或VLAD(Vector of Locally Aggregate Descriptor)是常用的圖片分類(lèi)或者圖片檢索的特征表示方式反番。以BoW為例沙热,我們?cè)趯?duì)于每一幅圖像提取了SIFT或者SURF特征后,利用這些特征建立一個(gè)字典罢缸。常見(jiàn)的做法是通過(guò)聚類(lèi)得到個(gè)聚類(lèi)中心篙贸,每個(gè)聚類(lèi)中心對(duì)應(yīng)一個(gè)編碼,假設(shè)是每個(gè)特征描述子(編碼)的維度枫疆,則這個(gè)字典可以被表示為一個(gè)的矩陣:
令是對(duì)于每一副圖片提取的特征的數(shù)量爵川,那每幅圖片可以用一個(gè)的矩陣描述:
通過(guò)將每一個(gè)描述子對(duì)應(yīng)到不同的聚類(lèi)中,我們可以得到一個(gè)的矩陣息楔,其中每一個(gè)量代表著描述子是(1)否(0)在所對(duì)應(yīng)的聚類(lèi)中寝贡。
這個(gè)的矩陣可以通過(guò)池化的方式進(jìn)一步縮減為維向量。有兩種不同的池化方式:平均池化(Average Pooling)和最大池化(Max Pooling)值依,分別是求對(duì)應(yīng)行的平均值和最大值圃泡。
對(duì)于VLAD來(lái)說(shuō),與BoW最大的區(qū)別在于BOW是把局部特征的個(gè)數(shù)累加到聚類(lèi)中心上愿险,而VLAD是把局部特征相對(duì)于聚類(lèi)中心的偏差(有正負(fù))累加到聚類(lèi)中心上颇蜡。
NetVLAD
整體的思想是將VLAD描述過(guò)程變成了CNN網(wǎng)絡(luò)中的一個(gè)VLAD層。
經(jīng)典的VLAD向量的計(jì)算公式可以表述為:
其中是表示第個(gè)點(diǎn)所在聚類(lèi)的獨(dú)熱編碼,是離散的澡匪。作者將替換成一種軟邊界熔任,得到了連續(xù)的函數(shù),并且能用soft-max層表示:
其中需要訓(xùn)練的參數(shù)包括唁情,和聚類(lèi)中心疑苔。
使用CNN特征層表示圖像
P3P-RANSAC
參考
InLoc項(xiàng)目主頁(yè)
jsjsdzd的CSDN博客(關(guān)于DenseSIFT)
R. Arandjelovic和A. Zisserman在CVPR2012上演講PPT(關(guān)于RootSIFT)
SIFT和一些變種
曼陀羅彼岸花的CSDN博客(關(guān)于BoW)
NetVLAD: CNN architecture for weakly supervised place recognition(NetVLAD原文)
璇珠官人的知乎專(zhuān)欄:論文閱讀-場(chǎng)景識(shí)別:NetVLAD
妖皇裂天:NetVLAD
作者的其他相關(guān)文章
基于視覺(jué)的機(jī)器人室內(nèi)定位
論文閱讀:StreetMap-基于向下攝像頭的視覺(jué)建圖與定位方案