SfM是指給定一組無(wú)序圖像,恢復(fù)出相機(jī)位姿以及場(chǎng)景點(diǎn)云。通用場(chǎng)景下的SfM效果已經(jīng)很好,而且COLMAP這類框架也很好用。但是弱紋理和無(wú)紋理場(chǎng)景下的SfM卻很麻煩,主要目前主流的SfM框架都是先提取圖像中的特征點(diǎn),然后進(jìn)行特征匹配。但是在無(wú)紋理?xiàng)l件下,很難提取穩(wěn)定且重復(fù)的特征點(diǎn),這就導(dǎo)致SfM恢復(fù)出的位姿和三維點(diǎn)云非常雜亂。
很直接的一個(gè)想法就是,如果不提取特征點(diǎn),直接進(jìn)行匹配呢?
最近,浙江大學(xué)就基于這種思想提出了一種弱紋理場(chǎng)景下的SfM框架,主要流程是首先基于LoFTR這類Detector-Free圖像匹配算法獲得粗糙位姿和點(diǎn)云,然后使用Transformer多視圖匹配算法優(yōu)化特征點(diǎn)坐標(biāo),利用BA和TA進(jìn)一步優(yōu)化位姿和點(diǎn)云。這個(gè)算法獲得了2023 IMC的冠軍,整體性能很好。今天筆者就將帶領(lǐng)大家一起閱讀一下這項(xiàng)工作,當(dāng)然筆者水平有限,如果有理解不當(dāng)?shù)牡胤綒g迎大家一起討論。
1. 效果展示
先來(lái)看一下傳統(tǒng)基于特征點(diǎn)的SfM在弱紋理場(chǎng)景下的表現(xiàn):
可以發(fā)現(xiàn)由于特征點(diǎn)提取的重復(fù)性差,匹配性能不好,進(jìn)一步導(dǎo)致位姿和點(diǎn)云估計(jì)的結(jié)果很差。那么再來(lái)看看Detector-Free SfM這項(xiàng)工作,其主要目的是實(shí)現(xiàn)弱紋理場(chǎng)景下的SfM,可以發(fā)現(xiàn)在典型場(chǎng)景下運(yùn)行良好,甚至海底、月球表面這種場(chǎng)景都可以進(jìn)行定位和重建!推薦學(xué)習(xí)3D視覺(jué)工坊近期開(kāi)設(shè)的課程:國(guó)內(nèi)首個(gè)面向自動(dòng)駕駛目標(biāo)檢測(cè)領(lǐng)域的Transformer原理與實(shí)戰(zhàn)課程
有了精確的位姿和點(diǎn)云,就可以進(jìn)行很多SfM的下游任務(wù),例如新視點(diǎn)合成和稠密重建:
不幸的是,這個(gè)算法暫時(shí)還沒(méi)有開(kāi)源,感興趣的小伙伴可以追蹤一下Github。下面來(lái)看一下論文的具體信息。
我們提出了一個(gè)新的SfM框架來(lái)從無(wú)序的圖像中恢復(fù)精確的相機(jī)姿態(tài)和點(diǎn)云。傳統(tǒng)的SfM系統(tǒng)通常依賴于跨多個(gè)視圖的可重復(fù)特征點(diǎn)的成功檢測(cè),這對(duì)于弱紋理的場(chǎng)景來(lái)說(shuō)是困難的,并且較差的特征點(diǎn)檢測(cè)可能會(huì)破壞整個(gè)SfM系統(tǒng)。受益于最近無(wú)檢測(cè)器匹配器的成功,我們提出了一種新的無(wú)檢測(cè)器SfM框架,避免了早期特征點(diǎn)的確定,同時(shí)解決了無(wú)檢測(cè)器匹配器的多視圖不一致問(wèn)題。具體來(lái)說(shuō),我們的框架首先從量化的無(wú)檢測(cè)器匹配中重建一個(gè)粗略的SfM模型。然后,它通過(guò)一個(gè)新穎的迭代優(yōu)化管道對(duì)模型進(jìn)行細(xì)化,該管道在基于注意力的多視圖匹配模塊和幾何優(yōu)化模塊之間進(jìn)行迭代,以提高重建精度。實(shí)驗(yàn)表明,所提框架在通用基準(zhǔn)數(shù)據(jù)集上優(yōu)于現(xiàn)有的基于檢測(cè)器的SfM系統(tǒng)。我們還收集了一個(gè)弱紋理的SfM數(shù)據(jù)集,以展示我們的框架重建弱紋理場(chǎng)景的能力。
2. 算法解析
算法的Pipeline非常直觀,輸入是一組無(wú)序圖像,輸出是相機(jī)位姿、內(nèi)參和點(diǎn)云。具體的流程是一個(gè)兩階段由粗到精的策略,首先使用一個(gè)Detector-Free的特征匹配器(LoFTR)來(lái)直接進(jìn)行圖像對(duì)的稠密匹配,以此來(lái)消除特征點(diǎn)的低重復(fù)性帶來(lái)的影響。然后量化特征位置到粗網(wǎng)格來(lái)提高一致性,并重建粗SfM模型,為后續(xù)優(yōu)化提供初始的相機(jī)位姿和場(chǎng)景結(jié)構(gòu)。之后,使用軌跡優(yōu)化和幾何優(yōu)化交替進(jìn)行的聯(lián)合迭代優(yōu)化pipeline,以提高位姿和點(diǎn)云精度。
Detector-Free匹配器一般也都采用由粗到精的策略,首先在下采樣特征圖的粗網(wǎng)格上進(jìn)行稠密匹配,然后在一幅圖像上固定粗匹配的特征位置,而在另一幅圖像上用精細(xì)的特征圖搜索它們的亞像素對(duì)應(yīng)關(guān)系。理論上這種思想是可以直接應(yīng)用到SfM上的,但這里有個(gè)問(wèn)題,也就是在一幅圖像中產(chǎn)生的特征位置依賴于另一幅圖像,這樣在多個(gè)視圖進(jìn)行匹配時(shí),特征軌跡就很容易中斷!
作者的具體做法是,將匹配的2D位置量化為一個(gè)網(wǎng)格?x / r?(r是網(wǎng)格大?。?,直接令多個(gè)相近的子像素合并為同一網(wǎng)格節(jié)點(diǎn)。實(shí)際上是以犧牲精度為代價(jià),換取了一致性。
后續(xù)的迭代優(yōu)化過(guò)程很有意思,優(yōu)化的對(duì)象就是匹配點(diǎn)的2D坐標(biāo),主要思想還是對(duì)所有視圖中的特征點(diǎn)位置進(jìn)行局部調(diào)整,使其特征之間的相關(guān)性最大化。
怎么做呢?直接計(jì)算所有的關(guān)聯(lián)視圖嗎?那樣計(jì)算量就太大了。
作者這里用了一個(gè)trick,就是選擇一個(gè)參考視圖,提取參考視圖中特征點(diǎn)處的特征,并將其與其他視圖(查詢視圖)中特征點(diǎn)周?chē)笮閜 × p的局部特征圖進(jìn)行關(guān)聯(lián),得到一組p × p的熱圖,相當(dāng)于特征點(diǎn)位置的分布。另一方面,還要計(jì)算每個(gè)熱圖上的期望和方差,方差之和也就是優(yōu)化的目標(biāo)函數(shù)。
還有個(gè)問(wèn)題,就是這個(gè)參考視圖怎么選擇呢?這里的準(zhǔn)則其實(shí)是最小化參考視圖和查詢視圖之間的特征點(diǎn)尺度差異。具體來(lái)說(shuō),就是根據(jù)當(dāng)前恢復(fù)的位姿和點(diǎn)云計(jì)算特征點(diǎn)的深度值,然后選擇中位數(shù)做為參考視圖。
還有個(gè)細(xì)節(jié),就是如何提取以2D特征點(diǎn)為中心的局部特征塊?這里是將以每個(gè)關(guān)鍵點(diǎn)為中心的p × p個(gè)圖像塊輸入到CNN中,得到一組特征塊,然后再利用Transformer的自注意力和交叉注意力得到最終的特征圖。
最后還有一個(gè)級(jí)聯(lián)的BA和TA(Topology Adjustment)優(yōu)化的過(guò)程,來(lái)細(xì)化位姿和點(diǎn)云。由于經(jīng)過(guò)了Transformer優(yōu)化和BA,這時(shí)候整體的場(chǎng)景已經(jīng)比較準(zhǔn)確了,因此TA優(yōu)化過(guò)程中還加入了之前未能配準(zhǔn)的2D點(diǎn)。整個(gè)優(yōu)化過(guò)程,也就是不停的交替進(jìn)行BA和TA,再把優(yōu)化后的點(diǎn)云投影到圖像上來(lái)更新2D位置,再進(jìn)行下一次迭代優(yōu)化。
3. 實(shí)驗(yàn)
整個(gè)模型需要訓(xùn)練的地方就是Detector-Free匹配器還有多視圖特征提取Transformer,訓(xùn)練是再M(fèi)egaDepth數(shù)據(jù)集進(jìn)行,訓(xùn)練思路就是最小化優(yōu)化軌跡和真實(shí)軌跡之間特征點(diǎn)位置上的平均l2損失。對(duì)比方案還是挺全的,有SIFT這種手工特征點(diǎn),也有R2D2、SuperPoint這類深度學(xué)習(xí)特征點(diǎn),數(shù)據(jù)方面使用了Image Matching Challenge (IMC)、ETH3D還有他們自己采集的Texture-Poor SfM數(shù)據(jù)集。
結(jié)果顯示,這個(gè)算法搭配LoFTR可以實(shí)現(xiàn)比較好的性能(讀者也可嘗試和其他的匹配算法結(jié)合)。值得注意的是,SuperPoint + SuperGlue + PixSfM這個(gè)組合的性能也非常棒,也說(shuō)明SP+SG在很多情況下都是通用的。
定性的對(duì)比就更直觀了,紅框代表Ground Truth,顯然在低紋理場(chǎng)景下這篇文章提出的算法性能更優(yōu),甚至好幾個(gè)場(chǎng)合SP+SG的組合直接掛掉了。
再來(lái)看看三角化的結(jié)果,可以進(jìn)一步證明位姿和內(nèi)參估計(jì)的準(zhǔn)確性。同樣是基于LoFTR的組合取得了更高的精度,這里AspanTrans的配置犧牲了一點(diǎn)精度,但是完整性更好。
下面是一個(gè)驗(yàn)證優(yōu)化模塊影響的實(shí)驗(yàn),做的是熱力圖的比較,O和X分別表示粗糙和精細(xì)的特征點(diǎn)位置。結(jié)果顯示引入優(yōu)化后,熱力圖的對(duì)比更明顯。而且優(yōu)化后的點(diǎn)云也更精確。
然后是一個(gè)消融實(shí)驗(yàn),分別測(cè)試的量化比值、迭代次數(shù)、視圖數(shù)量以及各部分模塊的消融實(shí)驗(yàn)。主要還是通過(guò)這組實(shí)驗(yàn)確定模型和迭代的最優(yōu)參數(shù)。推薦學(xué)習(xí)3D視覺(jué)工坊近期開(kāi)設(shè)的課程:國(guó)內(nèi)首個(gè)面向自動(dòng)駕駛目標(biāo)檢測(cè)領(lǐng)域的Transformer原理與實(shí)戰(zhàn)課程
想必大家一定很關(guān)心運(yùn)行的效率和耗時(shí),作者最后做了一個(gè)在處理大規(guī)模場(chǎng)景時(shí),模型的3D點(diǎn)數(shù)、優(yōu)化時(shí)間、內(nèi)存開(kāi)銷的一個(gè)對(duì)比。內(nèi)存占用沒(méi)有多大,這是因?yàn)樗惴ㄊ窍冗M(jìn)行多視圖匹配,再進(jìn)行幾何優(yōu)化,因此BA不需要像PixSfM那樣存儲(chǔ)每個(gè)2D點(diǎn)的特征塊或代價(jià)圖。
4. 總結(jié)
這項(xiàng)工作是針對(duì)弱紋理這一特定場(chǎng)景設(shè)計(jì)的,整體的設(shè)計(jì)思路很通順,效果也非常棒。如果要說(shuō)問(wèn)題,那就是計(jì)算效率了,畢竟LoFTR匹配本身就非常耗時(shí)。但本身SfM就不像SLAM那樣追求實(shí)時(shí)性,所以計(jì)算效率倒也不是什么大問(wèn)題,可以嘗試通過(guò)一些并行BA的方法來(lái)優(yōu)化。另一方面,作者提到可以和深度圖、IMU等多模態(tài)數(shù)據(jù)進(jìn)行融合,也是很不錯(cuò)的研究方向。
審核編輯:彭菁
-
相機(jī)
+關(guān)注
關(guān)注
4文章
1351瀏覽量
53602 -
圖像匹配
+關(guān)注
關(guān)注
0文章
21瀏覽量
8814 -
3D視覺(jué)
+關(guān)注
關(guān)注
4文章
433瀏覽量
27526
原文標(biāo)題:2023圖像匹配挑戰(zhàn)冠軍方案|無(wú)需提取特征點(diǎn)也能進(jìn)行弱紋理三維重建!
文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論