[譯]Multi-View Stereo: A Tutorial(3)


chapter 3 基於圖像一致性的三維重建

基於第二章的圖像一致性算法,本章將會詳細介紹最近幾年流行的多視角立體幾何算法。區分MVS算法有許多因素,例如圖像一致性函數,場景表達,可視化計算和初始化條件。因此提出一個單獨的分類並不容易。本文將會依據輸出的場景表示方法作為主要分類方式。因為它決定了應用的場景,有興趣的讀者可以參考[165]查看mvs算法的分類方法。
Fig3.1 表示4種常用的表示方法:深度圖、點雲、體素場、mesh面片,本章將會介紹每種重建算法的state-of-the-art 方法。點雲重建方法的渲染方式是采用基於點的渲染技術[160,83],展示了一個完整的紋理渲染模型,但是點雲模型僅僅是獨立的帶顏色的3D點;體素場常用於計算機視覺和計算機圖形學表示3D平面,常將體素場當成距離一個平面的帶符號的距離函數,該平面是函數場的零勢面。
Fig3.2表示MVS算法的重建步驟和中間或者最終幾何形態類型,許多MVS算法集中於單個重建步驟,然而有些將多個步驟組合成操作管線,本表表達了大多數MVS算法/系統,除了一種算法-直接通過圖像一致性體素構建mesh,通過體素融合方法[190,102],在這個方法中,圖像一致性體素替換了點雲圖或者深度圖。
當然有許多過去開發的算法再這里沒有列舉出來,例如level-set方法,level-set曾經在MVS算法中非常流行,因為它能處理拓撲結構的變化[58],典型的重建步驟是初始化模型然后進行優化,拓撲結構的初始化可能是不正確的,然而level-set不再被使用因為更好的初始化或者重建算法(見本章)已經被開發出來。高質量的模型和正確的拓撲結構能夠直接通過圖像一致性獲取,因此就不需要優化過程。同樣的早些時候許多算法基於visual hull初始化mesh形態,然而最新也不再使用,因為形狀的提取過程通常需要人工手動提取,visual hull 不再是有效的近似或者對於有許多凹面的結構情況不再有效,更好的初始化重建技術發展也加速就有方法的淘汰。[注全自動的形態提取方法見47,49,50]。

avatar
*MVS算法可以采用輸出場景表達進行分類,四種流行的表示方式是深度圖、點雲圖、體素場和mesh面片,注意稠密的點雲看起來像帶紋理的mesh模型,雖然只是一些3d點雲,重建出來的示例來自MVS中的state of art從上到下依次來自於[48] [74] [94] [93] *

*** 3D表達和應用 ***
表3.1總結了四種場景表示方法在三種流行應用中的可行性分析,3D重建的主要應用是在圖形學中(可視化),同時表格列出了兩種不同的可視化應用。基於視圖的紋理映射技術依賴於渲染相機視角改變圖像的渲染,該技術產生沉浸式的可視化體驗,由於渲染主要基於實時圖像,並且能傳遞復雜的廣度效果例如鏡面高光或者透明半透明,這些都是很難去模擬的[54,68,170],谷歌街景[81]是一個很好的基於視圖紋理映射技術的例子,但是,為了避免渲染偽影,渲染攝影機必須靠近輸入圖像。渲染攝影機的運動范圍嚴重受限於輸入照片的覆蓋范圍。深度圖表達方式對視圖的紋理映射技術及其有效,因為它的幾何形狀可以優化渲染每一個透視圖[127].天空的建模對於室外場景的可視化很有挑戰,因為幾何形狀難以描述不容易重建,深度圖為了達到更好的渲染效果可以為每個透視圖生成幾何代理,對Mesh、點雲,體素來說並不容易,因為他們是獨立於視圖的。
另一方面,自由視點渲染運行在空間自由移動,對於導航和瀏覽目的的應用更友好,google地圖就是很好的例子,然而渲染通常獨立於視圖並且缺少真實感。對於自由點渲染方法,mesh或者點雲更合適,紋理映射的MVS mesh方法已經成功應用在城市戶外可視化產品中[30,108,144]。基於點的渲染技術已經應用於計算機圖形學中[83],高質量的可視化點雲或者深度圖(也可以做點雲處理[69,117,104])產生高質量的可視化結果。然而對於MVS生成的點雲有很少的工作集中在基於點雲的渲染方法,MVS點雲常有噪點和重建出來的孔洞,渲染質量會嚴重降低。
最后的應用是幾何操作。隨着MVS技術的發展和重建的場景越來大,越來越復雜,幾何操作功能越來越重要。為了完成一個場景的模型,處理多個MVS重建結果是必須的。對於這項任務mesh表示方式存在很大的挑戰,因為通過合並和拆分來控制網格的拓撲結構很困難,所以會有幾何操作方式。
在圖3.2中,拋光體素(體積標量場)和mesh網格在圖的底部。但是這可能不是每個MVS系統目標。 例如,如果依賴於視圖的紋理映射
應用程序,應該簡單地選擇深度圖重建算法。如果是自由視點渲染應用程序,則可以從圖像進行點雲重建,然后可以對應用程序使用基於點的渲染技術,而無需運行圖中的任何其他步驟。 當然,高質量的多邊形mesh網格模型通常是首選的場景表示,並且所有處理都歸於圖中的網格重建。

*** Evaluations ***

MVS研究人員進行了定量評估以驗證MVS算法的准確性[165,176]。 Seitz, Curless, Diebel,
Scharstein和Szeliski在2006年為MVS定量評估奠定了基礎[165],該評估在具有低分辨率(640×480)圖像的兩個物體數據集上評估MVS算法,這些數據集是在具有一定照明的實驗室環境中仔細獲得的。此評估稱為Middlebury MVS評估。雖然低分辨率圖像的使用可能無法反映現代消費市場中高分辨率數碼相機的存在,但它具有最小化校准誤差影響的優點:更高的圖像分辨率需要更精確和可重復的機械裝置(例如機器人手臂)。幾年后,Strecha,Hansen,Van Gool,Fua和Thoennessen發布了互補的MVS基准數據集和評估系統,重點關注室外場景和高分辨率輸入圖像,這反映了MVS研究的趨勢和需求[176]。許多算法在重建精度方面令人印象深刻(例如,在640×480圖像的20cm體積內0.5mm精度),並且還產生了引人注目的3D模型,包括本章中介紹的所有最優的算法。
一個缺失的評估是重建模型的視覺質量。Middlebury MVS 評估揭示了這樣一個事實, 即純幾何量化指標並不總能反映模型的視覺質量。 換句話說,具有清晰視覺偽影的模型有時會獲得更好的幾何精度。 最近的MVS算法產生視覺上高質量的3D模型,不僅是幾何精度[164,167]。 未來的MVS評估應該同時考慮幾何精度和視覺質量。
現在我們為四個輸出場景表示提供MVS詳細的重建算法細節。

3.1深度圖重建

由於靈活性和可擴展性,深度圖場景表示是最受歡迎的選擇之一。 假設一個人被給予成千上萬的圖像和相機參數作為輸入。 人們可以簡單地為每個輸入圖像重建深度圖,可能在找到要一起用於照片一致性評估的少量相鄰圖像之后。 通過將深度圖視為3D點的2D陣列,可以將多個深度圖視為合並的3D點雲模型。 該處理簡單並且可以容易地擴展到大量圖像。

MVS中的深度圖重建通常在狹窄的基線假設下進行,其公式與傳統的兩視圖立體聲相同[162]。該方法采用一組圖像
攝像機參數,將有效深度范圍離散為有限集深度值,然后重建參考圖像的3D幾何。
對於簡單和緊湊的物體,均勻深度采樣可能就足夠了。
但是,對於復雜和大型場景,適當的采樣方案是對於實現高速和高質量至關重要。研究人員提出了對樣本深度的透視校正或對數參數化
值,詳情參見論文[203,104,75]。然而,MVS深度圖重建算法往往比它們的兩個視圖立體聲對應物更簡單,因為通常有一個
更多的圖像,從而更多的冗余。換句話說,在MVS的上下文中,單個深度圖的完整性並不重要只要合並的模型准確完整。
在本節的其余部分,我們將描述幾個細節代表性的MVS深度圖算法,然后再談幾個先進的技術。

3.1.1 winner-takes-all depthmaps(贏者通吃)

假設給出一個需要計算深度的參考圖像,一組相鄰圖像以及應該包含需要重建場景的深度值范圍。一個簡單的深度圖重建算法是評估整個深度范圍內的圖像一致性值,每個像素獨立選擇圖像一致性得分最高的深度值,這被稱為“贏家通吃”方法,如圖3.3所示。
其中NCC作為圖像一致性測量方法,並且預計在正確的深度處具有最大值。Algorithm1中給出了完整的算法描述。除了具有最高圖像一致性的深度值之外,該算法還經常評估置信度測量,使低置信度深度值在之后的模型合並步驟[106]中可以忽略或減小權重。這個簡單的算法首先由Hernández和Schmitt [93]證明並且效果出奇的好。 該算法已經進行了各種改進,接下來我們將注意力轉向更復雜的方法。

3.1.2 Robust Photo-Consistency Depthmaps(魯棒性)

雖然算法1運行得相當好,但總的來說並不能保證匹配窗口在物體表面上是唯一的。更大的窗口尺寸更可能導致匹配的唯一性,然而,對應的峰值區域將更大且不容易定位,降低了深度估計的准確性。遮擋和非朗伯光度效應如鏡面反射高光也為照片一致性功能添加噪音。 因此,簡單地使用式(2.3)中的平均值可能效果不佳(見圖3.4)。Vogiatzis,Hernández,Torr和Cipolla[190]提出了一種強大的圖像一致性功能來克服這些挑戰。具體來說給出某像素的根據參考圖像和每個臨近的圖像的計算出來圖像一致性曲線,算法首先從所有照片一致性曲線中計算局部最大值。dk -- 深度值,Ck 對應的圖像一致性數值的第kth個最大值,魯棒圖像一致性函數為:
********* func **********
W是核函數 -如高斯函數[190], 作用如圖Fig3.4所示,簡單的平均值方法選擇錯誤的深度作為全局最大值,而魯棒的圖像一致性成功地抑制了異常值。fig3.5說明噪聲點是如何被該方法抑制的。另一種更簡單但有效的方法是忽略低於某一閾值的光電一致性分數。Goesele,Curless,而Seitz只是計算成對照片一致性的平均值忽略低於某個閾值的值后得分[80]。這樣的閾值處理是一種非常敏感的操作,結果嚴重依賴於參數選擇,一般是NCC的光照一致性眾所周知,在不同的輸入中,它是非常強大和穩定的數據。因此常使用常數值閾值來計算NCC得分。采用類似的照片一致性功能處理點雲重建框架,具體細節見3.2.1節。
Fig3.6 是魯棒性算法的重建結果 by Goesele, Curless, and Seitz [80]頂行顯示左側的示例參考圖像,以及兩個不同的重建深度圖右邊深度置信度的閾值。深度估計當置信估計低於閾值時,丟棄像素。左深度圖的閾值更嚴格(更高),因此,噪音較小但觀察到更多的洞。請注意深度圖通常通過轉換估計的深度將其可視化為圖像將值轉換為有效的圖像強度。然而,在該圖中,深度圖被可視化為陰影多邊形模型,其通過a獲得簡單的體積融合技術[52](參見第3.3節)。數據集由24個圖像組成,他們重建了24個圖像深度貼圖,然后將它們合並為一個多邊形模型相同的融合技術,其結果顯示在底行。一個單個深度圖非常嘈雜,包含很多洞,但合並后模型變得更清潔,並且展示出更少的重建孔。該輸入圖像數量對重建質量的影響是如圖3.7所示。擁有超過300張圖像,寺廟模型變得完整,而恐龍模型仍然有一些漏洞均勻的紋理,使照片一致性評估更多具有挑戰性的。

3.1.3 MRF 深度圖(MRF Depthmaps)

盡管使用了如上一節所示魯棒圖像一致性函數,但在特殊情況下圖像一致性曲線的峰值可能與實際深度不匹配。如存在嚴重遮擋的情況下,大多數情況下圖像中可能不存在對應的匹配。這些問題的標准解法是:在相鄰像素具有相似深度值的假設下強制使用空間一致性,其中馬爾可夫隨機場(MRF)對於求解該任務非常成功。 MRF深度圖公式[120]可以被看作組合優化問題,其中輸入深度值被離散化為有限的深度值范圍集合。 然后問題是從標簽集中向每個像素p設置一個深度標簽kp,同時最小化以下損失函數

avatar

第一個求和公式是在圖像所有像素上求和,第二個是在所有相鄰像素上,相鄰像素可以表示為N,相鄰像素可以分為4-鄰域和者8-鄰域,前者是在水平、垂直相鄰像素上;后者同時包含對角相鄰像素。4鄰域系統具有較少的交互項並且更簡便,但可能受到更多離散化的影響。接下來討論下unary potentials phi(.)和pairwise interaction potentials psi(.,.)

*** unary potentials ***
一元標簽損失函數反應了圖像一致性損失,它與圖像一致性成反比。一元損失函數的定義各不相同。假如取值范圍在[-1,1]的NCC作為圖像一致性函數,一元損失可以定義為如下所示的線性截斷損失函數:

avatar

式中:τu為截斷閾值。任意的魯棒函數如:huber或cauchy損失函數也可以作為一元損失函數。

*** Pairwise Interaction Potentials ***
成對損失項
成對損失項強制使用空間正則化並與相鄰像素的深度差異量成正比,以便使相鄰像素具有相似的深度值。成對損失函數的定義也會有所不同,但下面給出一個簡單的實現,作為截斷線性損失函數,以避免懲罰深度不連續:

avatar

*** Optimization ***

式3.2雖然是一個NP問題但是也存在多種近似解,尤其是當pairwise項滿足下式時[122]。

avatar

對於次模函數,最受歡迎的技術之一被稱為alpha擴展[122,45,44],它反復解決最大流量最小割算法以改進標簽類別。
幸運的是,子模條件適用於許多標准成對項。更具體地說,作為距離度量Ψ(α,α)應為0,因為兩個標簽是相同的。剩下的條件為三角不等式:
avatar

平滑先驗通常被定義為距離度量,並且滿足上式的三角不等式^2。示例中的度量是線性的、截斷線性或Cauchy(柯西)損失函數。但是,二次或Huber損失函數不是子模函數,因為二次函數不服從三角不等式。 請注意,與成對損失不同,unary potential函數沒有限制,可以任意設定。MRF可以用來解決許多其他計算機視覺問題,有關MRF的更多細節將會在接下來的章節詳細描述[114,179]。

[2]:子模塊化優化是機器學習社區中的一個熱門研究課題,其中子模塊描述了一系列函數的數學性質。但是在計算機視覺中,通常使用子模塊來描述多標記目標函數組合優化問題。 它們在數學上是等價的,但是以非常不同的方式來處理。

3.1.4 Multiple Hypothesis MRF Depthmaps

上一節提到Campbell,Vogiatzis,Hernández和Cipolla擴展標准MRF用來改善結果[48]。而不是對於整個圖像不假思索的使用離散的深度值作為可能的標簽集,他們的算法從每個像素的圖像一致性曲線中提取局部最大值,然后使用MRF公式為每個像素分配一個這樣的局部最大值的深度。因此不同的像素具有不同的標簽集。他們還使用“unknown(未知)”標簽表示某些情況下無法正確估計深度值的情況。在這種情況下,他們承認這個像素點的深度值是未知的,因此不應對表面提供任何數值。這意味着返回的值都是准確的深度,該估計值具有高度的確定性。
該過程包括兩個階段:1)深度標簽的提取;2)MRF優化用來分配賦值提取的深度標簽。我們現在討論算法的細節。

Depth Label Extraction

第一階段是獲取像素p在參考圖像Iref中深度值的假設集。 在計算Iref和相鄰圖像的圖像一致性曲線后,深度范圍內的曲線圖像,保留從所有曲線中得分最高的K個曲線的峰值{di(p)|i∈[1,K]},圖像一致性函數采用NCC算法。 如前所述,該算法的另一個關鍵特征是包含未知狀態U,當沒有足夠的選擇證據時。 因此對於每個像素,它們形成深度標簽集{{di(p)},U}。

MRF Optimization

深度標簽分配被當做MRF優化問題,其中每個像素有最多(K + 1)個標簽。 如果在深度標簽提取階段找到的峰數不足,標簽數K則更少.對應於圖像一致性函數中的峰值並相關深度di(p)和得分C(p,di(p))。 最終的狀態是如前所述的未知狀態U.
一元損失函數很簡單。 我們希望對較低的匹配值的局部最大值增加懲罰項,因為它們更可能導致不正確的匹配。 他們采用指數函數的反函數將此分數映射到正損失函數[190], 而常量懲罰項ΦU被強制用於未知狀態像素,以避免給具有較差的圖像一致性並且沒有相鄰pairwise項的像素分配深度值.

avatar

pairwise項強制使用進行空間正則化。有兩個標簽類型(深度值和Unkonwn狀態)和成對損失在以下4(= 2×2)種情況下定義:

avatar

第一種情況,兩個標簽都有深度值,即損失函數只需計算(3.6)中的差異量。需要注意的是差異量通過深度值的平均值進行歸一化,以使其與縮放相關性降低。第二和第三種情況是其中之一標簽是Unknown狀態,使用常量懲罰項是為了防止頻繁切換深度標簽和未知狀態。最后一種情況是兩個標簽都是未知狀態,為了保持空間一致性懲罰項被設置為0。
遺憾的是pairwise cost在這個公式中並不是子模塊,因為每個像素的深度標簽是獨立提取的,並且第i個標簽的含義是不同的。例如,Ψ(di(p),di(q))在標准MRF公式(3.6)中為0,因為di(p)和di(q)是像素無關的並且對應於相同的深度值。但是,在公式中事實並非如此,因此alpha擴展不適用.但是message passing(消息傳遞)算法,如循環信念傳播(LBP)[204]和tree-reweighted message passing(TRW)[194],這是MRF的其他流行的優化技術,特別是TRW已成功應用於解決許多計算機視覺問題包括深度圖重建[123,179],並用於工作中。

圖3.8說明了圖像一致性曲線和局部最大值的位置邊界。請注意,遮擋邊界處像素分配為未知標簽(從頂部開始的第六個像素),其中為了分配正確的深度標簽強制執行空間正則化,即使曲線的全局最大值對應於錯誤的深度(從上數第四個像素)。圖3.9列出了更多的實驗結果,其中包括重建過程中的中間結果用於評估。如圖所示,單個深度圖在Unknown(未知狀態)標簽和在ref參考圖像中不可見的部分是一個空洞。然而,僅用高置信度區域的結果用於重建是很重要的,可以在融合步驟中以最小化噪聲的存在。圖3.9說明了該模型僅在兩個有重疊的深度圖的中變得接近完整。

avatar

3.1.5 More Depthmap Reconstruction Algorithms

以上內容除了前面幾節,已經提出了許多深度圖重建算法。 本部分介紹了一些更重要的算法和技術文獻

Real-Time Plane Sweeping Depthmap Reconstruction

深度圖重建的計算量不是廉價的操作,圖像一致性函數需要在圖像的每個像素和每個假設深度的上進行評估。然而,Gallup, Frahm, Mordohai, Yang, and Pollefeys證明通過聰明地使用GPU可以實現實時[76]。該算法被稱為“Plane Sweeping Stereo”,因為它掃描了一系列場景中的平行平面,通過平面將圖像投影到平面上單應性,然后評估每個平面上的圖像一致性。
每個像素的深度值由“贏者通吃”策略選擇,算法中有兩個關鍵特征。

avatar

首先,在算法方面,如圖3.10的第二行所示,它沿多個方向掃描,這些方向是從場景中提取的,使掃描方向沿着將要重建的場景結構。為了評估照片圖像的一致性,大多數算法假設表面相對於ref圖像是互相平行的。相當於沿單個固定方向掃描平面。如圖3.10的第一行所示,當場景表面不沿着平面方向,不同圖像中的相關窗口在平面上不匹配。另一方面,當場景表面在平行的平面時,完全相同的3D表面區域投影到相關窗口,產生准確的照片一致性評估。每個掃描方向產生一個深度圖,多個深度圖合並產生最終結果(更多細節參見文章[76])。該策略對於通常存在少數主導(例如,曼哈頓)方向的城市場景特別有效,稀疏的3D點雲可以從SfM系統重建中獲取。
第二個關鍵區別是高效的GPU實現圖像重投影和照片一致性評估,實現實時表現。更具體地,將圖像紋理重新投影到掃描平面上遵循平面單應性,這是標准渲染過程並且可以在GPU上有效地執行。后收集重新投影的紋理圖像,照片一致性評估也可以在每個像素的GPU上執行。照片一致性功能在原始論文中使用的是增益校正的平方差的和(SSD)。系統在視頻序列上進行了演示相同的相機在大致恆定的照明條件下每個序列,這是SSD仍然有效的原因之一使用更昂貴的功能,如NCC並不重要。

avatar

采用2.4GHzAMD雙核處理器和NVidia GeForce 8800系列GPU以每秒30幀的速度處理512×384視頻流。每個深度圖計算使用7個圖像和48個掃描平面,這僅需要24毫秒。在重建每幀深度圖之后,系統具有將所有深度圖合並到網格模型中。具體細節見他們的論文[76],接下來我們在3.3節中將會介紹流行的融合技術。圖3.11顯示了以上算法對幾個街道重建的結果。最大的數據集包括170000幀,
該系統通過簡單的計算產生了近300億(≈512×384×170,000)個3D點
,計算忽略高冗余和漏洞重建,其規模遠遠大於當時出版的對應(相關)方法(2007年)。

Second Order Smoothness

MRF成功用於各種深度圖重建算法以及許多其他計算機視覺任務都可以離散成相對較少數量的標簽。典型的平滑度先驗作用於一對像素,並試圖使兩個像素的深度差異最小化。 在深度圖重建框架中,該先驗傾向於前表面平行的平面,也就是說所有的表面有相同的深度值.然而在現實場景中,大多數表面與ref圖像並不平行,當假設不成立的時候,先驗知識可能會導致重建誤差見圖3.12.

avatar

Woodford, Torr, Reid, and Fitzgibbon 提出了一個立體算法,仍然采用MRF方法,但引入了在三個團(即三個像素)的二階平滑先驗,強制執行分段平面表面 [196]。更具體地說,給定三個相鄰的像素 (p, q, r) 懲罰項 [dp + dr - 2dq] 作為平滑損失函數,它是一個二階導數的有限近似,
當第一階導數是常量時損失函數為0,即當表面是分段平面。triple cliques的引入使優化變得復雜(至少成本函數不是子函數)需要更復雜的優化算法需要來解決該問題。優化算法的詳細信息參考他們的論文[196]
二階平滑先驗的效果和真實情況如圖3.12所示。 在頂部合成示例中,大多數結構是分段平面,並且通過標准方法重建(即1階先驗)效果不理想,產生了分段的平行表面。 他們的算法成功地按預期重建了大多數分段平面。 底部例子中大多數真實結構是彎曲的而不是分段平面。 盡管如此,他們的重建結果要多得多比標准方法准確,因為分段平面平滑先驗更靈活,更緊密地貼合彎曲表面與平行光滑先驗相比。 標准方法在許多地方都存在階梯狀外殼偽影。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM