文章目錄
- 摘要
- 簡介
- 收集圖像
- 錄影機投影模型
- 來自運動中的結構
- 光束法平差
- 多視角立體視覺
摘要
本文介紹了多視圖立體視覺的動手視圖,重點介紹了實際算法。多視圖立體視覺算法能夠僅從圖像中建構高度詳細的三維模型。他們拍攝了一組可能非常大的圖像,并建構了一個三維合理的幾何圖形,在一些合理的假設下解釋了圖像,最重要的是場景剛性。本教程将多視圖立體視覺問題架構為一個圖像/幾何一緻性優化問題。它較長的描述了它的主要兩個成分:光度一緻性措施的魯棒實作,和有效的優化算法。然後,它介紹了這些主要成分如何被一些最成功的算法使用,應用到實際的應用程式,并作為行業産品部署。最後,它描述了利用特定領域知識的更先進的方法,如結構先驗,并概述了剩餘的挑戰和未來的研究方向。
簡介
從照片中重建三維幾何是一個經典的計算機視覺問題,研究人員已經研究了30多年。它的應用範圍從3D地圖和導航到網上購物、3D列印、計算攝影、計算機電子遊戲或文化遺産檔案。然而,直到最近,這些技術才足夠成熟,足以将實驗室控制環境進入野外,并提供工業規模的魯棒性、準确性和可伸縮性。
模組化真實對象或場景的三維幾何模組化是一項具有挑戰性的任務,目前已經應用了各種工具和方法,如計算機輔助設計(CAD)工具[3]、臂裝探針、主動方法和基于被動圖像的方法。其中,基于被動圖像的方法,即本教程的主題,提供了一種快速捕捉準确的3D内容的方法,其成本是其他方法的一小部分。圖像分辨率和品質的穩步增長使數位相機成為廉價和可靠的高分辨率傳感器,可以産生卓越品質的3D内容。
基于圖像的3D重建算法的目标可以描述為“給定一組物體或場景的照片,在已知材料、視點和光照條件的假設下,估計最有可能解釋這些照片的3D形狀”,如圖1所示。該定義強調了任務的困難,即假設材料、視點和照明是已知的。如果這些都不清楚,這個問題通常是錯誤的,因為幾何圖形、材料、視點和照明的多個組合可以産生完全相同的照片。是以,如果沒有進一步的假設,沒有一個算法可以單獨從照片中正确地重建三維幾何圖形。然而,在一組合理的額外假設下,例如。剛性的蘭伯特紋理表面,最先進的技術可以産生高度詳細的重建,甚至從數百萬張的照片。

有許多線索可以用來從照片中提取幾何圖形:紋理、脫焦、陰影、輪廓和立體對應。後三種都非常成功,立體通信在魯棒性和應用程式數量方面是最成功的。多視圖立體聲(MVS)是對一組技術使用立體相對作為其主要提示和使用兩個以上圖像的一般術語。
以下章節中描述的所有MVS算法都假設了相同的輸入:一組圖像及其相應的相機參數。本章僅從照片開始概述了MVS管道。本章的一個重要的可帶回家的資訊很簡單:一個MVS算法隻與輸入圖像和相機參數的品質一樣好。此外,MVS最近的成功在很大程度上是由于計算相機參數的底層運動結構(SFM)算法的成功。
圖1.2提供了通用MVS流程的草圖。不同的應用程式可能使用每個主要塊的不同實作,但總體方法總是相似的:
- 收集圖像
- 計算每張圖像的照相機參數
- 從一組圖像和相應的照相機參數中重建場景的三維幾何圖形。
- 可選擇重建場景的材質
在本章中,我們将更深入地了解MVS的前三個主要階段:圖像收集、相機參數估計和三維幾何重建。第二章提出了光一緻性作為MVS算法正在優化的主要信号的概念。第三章介紹并比較了一些最成功的MVS算法。第四章讨論了領域知識的使用,特别是在提高重建品質方面的結構先驗。第5章概述了成功的應用程式、可用的軟體和最佳實踐。最後,第6章描述了MVS目前的一些局限性,以及解決這些問題的研究方向。
收集圖像
我們可以将MVS捕獲設定大緻分為三類(見圖1.3):
- 實驗室設定
- 戶外小型場景捕捉
- 使用車隊或衆包資源進行的大型場景捕捉,如汽車、飛機、無人機和網際網路。
MVS算法首先開始于實驗室設定,在那裡光條件可以很容易地控制,相機可以很容易地校準,例如。從機械臂,旋轉表,基準标記,或早期的SfM算法。MVS算法經曆了兩個主要的發展,把他們帶到他們目前的狀态:他們離開實驗室的設定到一個小規模的戶外場景,例如。一個建築立面或一個噴泉,然後擴大到更大的場景,例如。整個建築和城市。
這些重大的變化不僅僅是由于MVS領域本身的發展。它是一個新硬體的組合來捕獲更好的圖像,更多的計算能力,和可伸縮的相機估計算法。
硬體的改進:硬體改進的兩個領域對MVS的影響最大:數位相機和計算能力。數位攝影成為主流,圖像數字傳感器在分辨率和品質方面不斷提高。此外,地理定位傳感器(GPS)的大規模生産和小型化使它們在數位相機、平闆電腦和手機中普遍存在。雖然商業單元的精度對于MVS的目的還不夠,但它确實提供了對相機參數的初步估計,可以改進這些參數,使用計算機視覺技術。第二個重要的硬體改進是計算能力。廉價計算機叢集或GPU通用計算的興起使SfM算法和MVS算法能夠輕松地處理成千上萬的圖像。
運動結構算法的改進:研究人員已經緻力于視覺重建算法幾十年。然而,直到相對最近,這些技術才足夠成熟,足以用于大規模的工業應用。如今,工業算法能夠估計數百萬幅圖像的相機參數。近年來,兩種略有不同的技術取得了巨大進展:運動結構(SFM)和視覺同步定位和映射(VSLAM)。兩者都依賴于對應的線索和場景是剛性的假設。SfM最常用于計算無序圖像集的相機模型,通常是離線的,而VSLAM專門從視訊流計算相機的位置,通常是實時的。在本教程中,我們主要關注SfM算法,因為大大多數MVS算法被設計用于處理無序圖像集,并依賴SfM來計算相機參數。但是,請注意,VSLAM最近在MVS方面取得了非常快的進展。
術語“相機參數”是指描述相機配置的一組值,即由位置和方向組成的相機姿勢資訊,以及相機的固有特性,如焦距和像素傳感器的大小。有許多不同的方法或“模型”來參數化此相機配置。在下面的部分中,我們将讨論在MVS應用程式中使用的一些最常見的相機投影模型。
錄影機投影模型
如前言所述,MVS算法需要額外的知識,才能很好地提出重建問題。特别地,MVS算法要求每個輸入圖像都有一個相應的相機模型,該模型充分描述了如何将世界上的三維點投影到特定圖像中的二維像素位置。MVS最常用的相機模型是針孔相機模型,它完全由一個3x4投影相機矩陣[88]來解釋,定義到一個比例。這是通常用于非數位相機捕捉靜止照片的模型。任意3×4投影矩陣P均可分解為3×3上三角形矩陣K和3×4姿态矩陣的乘積[R|T]。
矩陣K通常被稱為内部矩陣,因為它由相機固有的量組成:垂直和水準焦距(fx、fy)、主點(cx、cy)和斜s。矩陣[R|T]通常稱為外部矩陣,其中R是相機的旋轉,T是相機的平移。請注意,由于數字傳感器的品質,人們很少估計投影矩陣的11個參數。特别是,假設像素沒有偏斜(s=0),并且是正方形(fx=fy)。此外,如果沒有裁剪圖像,則可以安全地假設主點位于圖像的中心。是以,一個常見的針孔照相機模型僅由7個參數組成:焦距f、旋轉矩陣R和平移向量T。
如果附加的透鏡品質低,或廣角(見圖1.4左),純針孔模型不夠,通常使用徑向畸變模型進行擴充。徑向失真對于高分辨率的照片特别重要,其中與純針孔模型的小偏差可以等于圖像邊界附近的多個像素。
徑向失真通常可以在照片進入MVS管道之前消除。如果估計了圖像的徑向畸變參數,則可以通過重新采樣消除圖像失真,就像使用理想的鏡頭沒有失真一樣(見圖1.4左下角)。不扭曲的圖像簡化了MVS算法,并經常導緻更快的處理時間。一些照相機,例如。在手機中,結合專用硬體來消除圖像捕獲後處理過程中的徑向失真。但是請注意,整正廣角圖像将引入重采樣工件以及視場裁剪。為了避免這些問題,MVS管道可以直接支援徑向失真和更複雜的相機模型,而是犧牲了額外的複雜性。
最後,滾動快門是另一個對視訊處理應用特别重要的複雜性來源(見右圖1.4)。帶有電子卷簾快門的數字傳感器在稍微不同的時間曝光每一行圖像。這與整個圖像同時曝光的全局百葉窗形成了鮮明對比。滾動快門通常提供了更高的傳感器吞吐量,而犧牲了一個更複雜的相機模型。結果,如果相機或場景在拍攝圖像時移動,圖像的每行有效地捕捉稍微不同的場景。如果照相機或場景的動作很慢,等等。快門速度,滾動快門效果可以小到可以忽略。否則,相機投影模型需要結合這些效果。
來自運動中的結構
有大量關于運動結構算法的文獻,我們不打算在這裡全面回顧它。下面,我們将讨論SfM的一些關鍵方面,以及它們如何與MVS算法的關系。
SfM算法以一組圖像作為輸入,産生兩件事:每幅圖像的相機參數和圖像中可見的三維點,通常被編碼為軌迹。軌迹被定義為重建的三維點的三維坐标和在輸入圖像的子集中相應的二維坐标的清單。目前大多數最先進的SfM算法共享相同的基本處理管道。
- 檢測每個輸入圖像中的二維特征
- 比對圖像之間的二維特征
- 從比對項中建構二維軌道
- 從二維軌道中求解SFM模型
- 使用線束調整來細化SfM模型
關于SfM的最初工作主要集中在剛性場景[88]假設下的兩個和三個視圖的幾何圖形上。卡羅Tomasi對視覺重建算法的技術視角[182]提出了早期工作的概述。SfM的關鍵發展之一是使用RANSAC[61]穩健地估計給噪聲比對的兩個到三個視圖之間的上極幾何。
然後,工作集中在SfM算法的兩個關鍵組成部分:1)從多個錄影機計算歐幾裡得重建(最高規模),即估計錄影機參數和軌道的三維位置,以及2)建構更長的二維軌道。到20世紀末,SfM算法能夠從大型結構化的圖像集中穩健地計算模型,例如。從圖像序列或視訊序列[62,152]和第一個SfM工業解決方案開始商業化,如電影編輯和特效[4]。
這些初始系統主要是為結構化的圖像集而設計的,即圖像順序重要的圖像集,如視訊序列。雖然一些MVS應用程式可以定義這樣的順序,例如,谷歌的街景[81]或微軟的街景[143],但最近的許多MVS應用程式也使用在不同時間使用不同硬體捕獲的無序圖像集,例如。從航空圖像中獲得的三維地圖,[108,144,30]。快速和高品質的特征檢測器[87,135,57]和描述符[135,36,159,130,26]的開發是使SfM使用非結構化資料集的一個關鍵發展。高品質的描述符允許從以非常不同的姿勢和照明拍攝的圖像中建構更長和更高品質的軌道。
解決大規模非結構化照片集合的SFM的最終要素是改進比對階段。在非結構化照片收集的情況下,一個人不知道任何應該比對的候選圖像。是以,每一幅圖像都必須與其他圖像相比對,這在計算上非常昂貴。高效的索引[146]與高品質的描述符相結合,允許數百萬幅圖像的高效成對比對。關于簡化軌道[172]和并行化[25,64]的進一步工作,導緻了業界最先進的SfM管道,例如微軟的光合用[16]和谷歌的照片之旅[15](見圖1.6)。
光束法平差
雖然捆綁調整[183]并不是嚴格的SfM的一部分,但它是用于細化初始SfM模型的一個非常常見的步驟。給定一組相機參數{Pi}和一組軌迹{Mj,{mji}},其中Mj表示軌迹的三維坐标,mji表示其在相機中圖像投影的二維圖像坐标,光束法平差最小化以下非線性最小二乘誤差:
V(j)是點Mj可見的相機索引清單,而Pi(MJ)使用相機參數Pi表示相機I中三維點Mj的投影二維圖像坐标。
E(P,M)通常以平方像素測量,但表示估計精度的一個更常見的度量是使用均方根誤差或RMSE,它以像素測量并定義為:
其中,N是用(1.2)彙總的剩餘項數。光束法平差前的典型RMSE值是幾個像素的順序,而光束法平差後的值通常是子像素。
光束法平差架構允許在一個有原則的優化架構中将多個傳感器與SfM目标相結合。将GPS和IMU限制與SFM限制融合的一種方法是簡單地在(1.2)中添加額外的術語,以懲罰Pi與預測相機模型與GPS和IMU信号的偏差。
MVS算法對估計的相機模型的精度非常敏感。原因是,為了提高效率,他們使用相機模型定義的上極性幾何圖形将二維比對問題限制為一維比對問題(詳情請參見第1.5節)。如果重投影誤差很大,那麼一個像素可能永遠不會與它的真實比對進行比較,進而顯著降低了MVS的性能。MVS對相機重投影誤差的魯棒性主要取決于比對标準(即第2章中提出的光一緻性度量)對不對齊的容忍性。通常,光一緻性測度量的域Ω越大(見方程2.1),測度越魯棒。不幸的是,大域也傾向于産生平滑幾何,是以精度準确性和魯棒性之間存在妥協。
由于MVS對重投影誤差非常敏感,束調整通常是MVS的要求,其目标是亞像素重投影誤差。請注意,由于重新投影誤差是用像素測量的,是以可以對輸入圖像向下采樣并重新調準相機參數,直到重新投影誤差下降到某一門檻值以下。隻要下采樣的圖像仍然包含足夠的紋理和細節,讓MVS為[72]工作,這種方法就可以工作。
多視角立體視覺
多視點立體視覺的起源可以追溯到人類立體視覺,第一次嘗試作為計算問題解決立體比對問題[139]。直到今天,雙視圖立體視覺算法一直是一個非常活躍和富有成果的研究領域[162]。多視圖版本的立體視覺最初是對雙視圖情況的自然改進。而不是從其中捕捉兩個不同的視角的兩張照片,而是多視圖立體聲将在兩者之間捕獲更多的視點,以增強魯棒性,例如。到圖像噪聲或表面紋理[184,147]。它最初是一種改善雙向立體視覺的方法,現在已經演變成一個不同類型的問題。
雖然MVS與這種經典立體算法具有相同的原則,但MVS算法被設計用來處理更不同視點的圖像,比如圍繞對象的圖像集,也處理大量的圖像,甚至在數百萬數量級。MVS問題本質上的差異最終産生了與經典立體視覺問題顯著不同的算法。例如,3D映射[108,144,30]的工業應用,一次處理數百公裡以上的數百萬張照片,有效地重建了大都市地區、國家,最終重建了整個世界。
比對圖像之間的像素是一個具有挑戰性的問題,不是立體或多立體聲獨有的。事實上,光流是計算機視覺中另一個非常活躍的領域,解決了跨圖像[33]的密集對應問題。與MVS的主要差別在于,光流通常是一個雙圖像問題(類似于雙視圖立體聲),相機沒有被校準,其主要應用是圖像插值,而不是三維重建。
請注意,在MVS的情況下,其中相機參數是已知的,解決場景的三維幾何圖形完全相當于解決跨輸入圖像的對應問題。要了解原因,請考慮屬于三維場景幾何圖形的三維點(參見左圖1.7)。将三維點投影到一組可見錄影機中,在每個圖像上的投影坐标之間建立了一個獨特的對應關系。
給定圖像中的一個像素,在其他圖像中找到相應的像素需要兩種成分:
- 在其他圖像中生成可能的候選像素的一種有效方法。
- 衡量給定候選人正确比對可能性的方法。