來自多個圖像的3D重建是從一組圖像創建三維模型。這是從3D場景獲取2D圖像的相反過程。
圖像的本質是從3D場景到2D平面的投影,在此過程中深度丟失。對應於特定圖像點的3D點被約束在視線上。從單個圖像中,不可能確定該線上的哪個點對應於圖像點。如果有兩個圖像可用,則可以找到3D點的位置作為兩個投影光線的交點。該過程稱為三角測量。這個過程的關鍵是多個視圖之間的關系,這些視圖傳達相應的點集必須包含某些結構的信息,並且該結構與相機的姿勢和校准有關。
近幾十年來,對計算機圖形,虛擬現實和通信的3D內容存在重要需求,引發了對要求的重點改變。用於構建3D模型的許多現有系統圍繞專用硬件(例如立體設備)構建,導致高成本,這不能滿足其新應用的要求。這種差距刺激了數字成像設備(如相機)的使用。摩爾定律還告訴我們,可以在軟件方面做更多的工作。Tomasi和Kanade提出了一種早期的方法。[2]他們使用仿射分解方法從圖像序列中提取3D。然而,正投影的假設是該系統的重要限制。
內容
處理[ 編輯]
將多個2D圖像轉換為3D模型的任務包括一系列處理步驟:
攝像機校准由內部和外部參數組成,沒有這些參數,在某種程度上沒有算法安排可以工作。校准和深度確定之間的虛線表示通常需要相機校准來確定深度。
深度確定是整個過程中最具挑戰性的程序代寫https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail部分,因為它可以計算任何給定圖像中缺失的3D成分 - 深度。該對應性問題,找出兩幅圖像間的匹配,因此匹配元素的位置,就可以在三維空間中三角是這里的關鍵問題。
一旦有了多個深度貼圖,就必須將它們組合起來,通過計算深度並從攝像機投射出來來創建最終網格 - 注冊。相機校准將用於識別深度圖創建的多個網格可以組合在一起以形成更大的網格,從而提供多個觀察視圖。
在材質應用階段,你有一個完整的3D網格,這可能是最終目標,但通常你會想要將原始照片的顏色應用到網格。這可以通過將圖像隨機地投影到網格上,通過組合紋理以獲得超分辨率並最終通過材料分割網格(例如鏡面反射和漫反射屬性)來實現。
重建的數學描述[ 編輯]
給定一組由N個攝像機和矩陣觀看的3D點 {\ displaystyle \ {P ^ {i} \} _ {i = 1 \ ldots N}}。限定{\ displaystyle m_ {j} ^ {i} \ simeq P ^ {i} w_ {j}} 是投影的齊次坐標 {\ displaystyle j ^ {th}} 指向 {\ displaystyle i ^ {th}}相機。重建問題可以改為:給定像素坐標組{\ displaystyle \ {m_ {j} ^ {i} \}},找到相應的相機矩陣集 {\ displaystyle \ {P ^ {i} \}} 和場景結構 {\ displaystyle \ {w_ {j} \}} 這樣的
{\ displaystyle m_ {j} ^ {i} \ simeq P ^ {i} w_ {j}} (1)
通常,在沒有進一步限制的情況下,我們將獲得投影重建。[4] [5]如果{\ displaystyle \ {P ^ {i} \}} 和 {\ displaystyle \ {w_ {j} \}} 滿足(1), {\ displaystyle \ {P ^ {i} T \}} 和 {\ displaystyle \ {T ^ { - 1} w_ {j} \}}將滿足(1)與任何的4×4非奇異矩陣Ť。
投影重建可以僅通過點對應來計算,而沒有任何先驗信息。
自動校准[ 編輯]
自動校准或自校准是經典的方法,其中,攝像機運動和參數第一回收,使用剛性,則結構是容易計算的。實現這一想法的兩種方法如下:
Kruppa方程[ 編輯]
通過至少三個位移,我們可以使用Kruppa [6]的多項式方程組來獲得相機的內部參數,這些方程是從剛度約束的幾何解釋得出的。[7] [8]
矩陣 {\ displaystyle K = AA ^ {\ top}}在Kruppa方程中未知,稱為Kruppa系數矩陣。使用K和Cholesky分解方法,可以輕松獲得內在參數:
{\ displaystyle K = {\ begin {bmatrix} k_ {1}&k_ {2}&k_ {3} \\ k_ {2}&k_ {4}&k_ {5} \\ k_ {3}&k_ {5}&1 \\ \ {端bmatrix}}}
最近Hartley [9]提出了一種更簡單的形式。讓{\ displaystyle F} 寫成 {\ displaystyle F = DUV ^ {\ top}},哪里
然后重寫Kruppa方程(推導可以在[9]中找到)
Mendonça和Cipolla [ 編輯]
該方法基於剛度約束的使用。設計成本函數,將內在參數視為參數,將基本矩陣視為參數。{\ displaystyle {F} _ {i} j} 被定義為基本矩陣, {\ displaystyle {A} _ {i}}和 {\ displaystyle {A} _ {j}} 作為內在參數矩陣。
分層[ 編輯]
最近,已經提出了基於分層概念的新方法。[10]從投射結構開始,只能通過對應計算,通過利用所有可用的約束,將這種投影重建升級為歐幾里德重建。有了這個想法,問題可以分為不同的部分:根據可用的約束數量,可以在不同的層面進行分析,投射,仿射或歐幾里德。
三維幾何的分層[ 編輯]
通常,世界被視為3D 歐幾里德空間。在某些情況下,不可能使用3D空間的完整歐幾里德結構。最簡單的是投射,然后是形成中間層的仿射幾何,最后是歐幾里德幾何。分層的概念與幾何實體的一系列變換密切相關:在投射層中是一系列投射變換(單應性),在仿射層中是一系列仿射變換,而在歐幾里得層是一系列的歐幾里德變換。
假設兩個或多個透視攝像機捕獲固定場景,並且已經給出了不同圖像中可見點之間的對應關系。然而,在實踐中,匹配是計算機視覺中必不可少且極具挑戰性的問題。在這里,我們假設{\ displaystyle n} 3D點 {\ displaystyle A_ {i}} 通過觀察 {\ displaystyle m}具有投影矩陣的相機 {\ displaystyle P_ {j},j = 1,\ ldots,m。}既不知道點的位置也不知道相機的投影。只有預測{\ displaystyle a_ {ij}} 的 {\ displaystyle i ^ {th}} 指向 {\ displaystyle j ^ {th}} 圖像是已知的。
投影重建[ 編輯]
簡單的計數表明我們有 {\ displaystyle 2nm} 獨立測量和唯一 {\ displaystyle 11m + 3n}未知,所以問題應該是可以用足夠的點和圖像來解決的。均勻坐標中的方程可以表示為:
{\ displaystyle a_ {ij} \ sim P_ {j} A_ {i} \ qquad i = 1,\ ldots n,~~ j = 1,\ ldots m} (2)
因此,我們可以將非奇異的4×4變換H應用於投影{\ displaystyle P_ {j}}→{\ displaystyle P_ {j} H ^ { - 1}} 和世界點 {\ displaystyle A_ {i}}→{\ displaystyle HA_ {i}}。因此,沒有進一步的約束,重建只是3D世界的未知投射變形。
仿射重建[ 編輯]
有關計算無限遠平面位置的更多詳細信息,請參閱仿射空間{\ displaystyle {\ Pi} _ {\ infty}}。 最簡單的方法是利用先驗知識,例如場景中的線條平行或者點是其他兩個點之間的三分之一的信息。
我們還可以使用先前的相機運動約束。通過分析相同點的不同圖像可以獲得運動方向上的線。幾條線的交點是運動方向上無窮遠處的點,以及仿射結構上的一個約束。
歐幾里德重建[ 編輯]
通過將投影重建映射到滿足一組冗余歐幾里德約束的投影重建,我們可以在等式(2)中找到投影變換H.這些方程是高度非線性的,並且需要對結構進行良好的初始猜測。這可以通過假設線性投影 - 平行投影來獲得,這也允許通過SVD分解容易地重建。[2]
代數與幾何誤差[ 編輯]
不可避免地,測量數據(即圖像或世界點位置)是嘈雜的,並且噪聲來自許多來源。為了減少噪聲的影響,我們通常使用比必要更多的方程,並用最小二乘法求解。
例如,在典型的零空間問題公式Ax = 0(如DLT算法)中,殘差的平方|| Ax || 用最小二乘法最小化。
通常,如果|| Ax || 可以認為是幾何實體(點,線,平面等)之間的距離,那么最小化的是幾何誤差,否則(當誤差缺乏良好的幾何解釋時)它被稱為代數誤差。
因此,與代數誤差相比,我們傾向於最小化幾何誤差,原因如下:
- 最小化的數量具有意義。
- 解決方案更穩定。
- 歐幾里德變換下的解是恆定的。
到目前為止,我們已經看到的所有線性算法(DLT和其他算法)都使代數誤差最小化。實際上,除了易於實現之外,沒有理由將代數誤差最小化,因為它會導致線性問題。幾何誤差的最小化通常是非線性問題,其僅允許迭代解決方案並且需要起點。
通常,基於代數殘差的線性解決方案充當幾何成本函數的非線性最小化的起點,這為解決方案提供了最終的“拋光”。[11]
醫學圖像的三維重建[ 編輯]
動機與應用[ 編輯]
2-D成像具有解剖學上彼此重疊的問題,並且沒有公開異常。3-D成像可用於診斷和治療目的。
三維模型用於規划操作,形態測量研究並且在整形外科中具有更高的可靠性。
在兩台相機上投影P.
問題陳述和基礎[ 編輯]
從多個角度的相機拍攝的二維圖像重建三維圖像。諸如CT掃描和MRI之類的醫學成像技術是昂貴的,並且盡管CT掃描是准確的,但它們可以誘導高輻射劑量,這對於患有某些疾病的患者是一種風險。基於MRI的方法不准確。由於我們在MRI掃描期間暴露於強大的磁場,因此該方法不適用於具有鐵磁金屬植入物的患者。這兩種方法只有在骨骼的整體結構發生變化的平躺位置才能完成。因此,我們討論了以下可以在站立時進行並且需要低輻射劑量的方法。
雖然這些技術是三維成像,但感興趣的區域僅限於切片; 獲取數據以形成時間序列。
1)基於立體對應點的技術[ 編輯]
該方法簡單並且通過在多視圖射線照片中手動識別點來實現。第一步是提取兩個X射線圖像中的對應點,第二步是使用離散線性變換等算法進行三維重建。[12]使用DLT,重建只在有SCP的地方進行。通過增加點數,結果得到改善[13]但是耗時。由於再現性和時間消耗低,該方法的准確度低。該方法取決於操作員的技能。該方法不適用於連續形狀的骨結構。該方法通常用作其他方法的初始解決方案。[14]
2)非立體聲對應輪廓法(NCSS)[ 編輯]
該方法使用X射線圖像進行3D重建,並開發在承重位置具有低劑量輻射的3D模型。
在NSCC算法中,初步步驟是計算初始解。首先定義來自通用對象的解剖區域。其次,執行射線照片上的手動2D輪廓識別。從每個射線照片中使用3D初始解決方案對象生成2D輪廓。初始物體表面的3D輪廓投影到其相關的射線照片上。[14]這2個設定點之間進行的2D關聯基於點至點的距離和輪廓推導顯影二維輪廓和3D輪廓之間的對應關系。下一步是優化初始解決方案。最后,通過將Kriging算法應用於優化解決方案來完成優化解決方案的變形。[15] 最后,通過迭代最后一步直到兩個設定點之間的距離優於給定的精度值,獲得重建的對象。
這種方法的優點是它可以用於具有連續形狀的骨結構,並且還減少了人為干預但是它們是耗時的。
3)表面渲染技術[ 編輯]
表面渲染技術將3D對象可視化為一組稱為等表面的表面。每個表面都有相同強度的點(稱為iso-value)。當我們想要看到分離的結構時使用它,例如頭部切片的頭骨,來自身體切片的血管系統等。該技術主要用於高對比度數據。重建的兩種主要方法是:
- 基於輪廓的重建:等高線附着在等表面上[16]
- 基於體素的重建:具有相同強度值的體素用於形成等值面。一種流行的算法是Marching Cubes。[16]可以考慮一些類似於Marching Thedrahedron,Dividing Cubes [16]的算法。
其他提出或開發的技術包括基於統計形狀模型的方法,參數方法,混合方法。