聊聊三維重建-雙目立體視覺原理

2021-02-13 3D視覺工坊

作者:Tengfei Jiang

https://zhuanlan.zhihu.com/p/81016834

本文已由原作者授權,不得擅自二次轉載


前言三維重建是個跨多學科的應用領域,圍繞不同的尺度大小、不同速度要求、不同精度要求、不同硬體成本等要求發展出了各種各樣的技術方案。在這個應用領域,充分體現了,沒有最好的設備,只有最合適的方案。在本系列文章中,我嘗試解釋接觸過的不同技術方案,如有錯誤之處,敬請斧正。
雙目立體視覺原理視差 (Disparity) 及 深度計算

人依靠兩隻眼睛判斷深度(物體離眼睛的距離),具體是如何來判斷的呢,我們從小到大似乎並未接受過深度計算的訓練。視差(Disparity)是解釋原理的基本概念之一。我們可以做個簡單的實驗,將手指置於雙目之間,分別開閉左右眼。怎麼樣,是不是發現手指不在同一個位置?這就是視差。

 

可以參考上圖,當左右相機同時觀察三維點時,該點分別投影在左右相機的相平面上,這兩個投影點之間的差異就是視差:d=Xleft-Xright。這個公式看起來簡單直觀,其實有不少未解釋清楚的地方,比如這兩個x是在同一個坐標系內麼,這兩個像平面一定是平行擺放的嗎,為什麼可以直接減?等等。要解釋清楚這些問題,上圖還是略簡陋,讓我們換張圖來解釋。

 

圖中,P是三維物體的頂點坐標,其和左右相機光心CL、CR的連線與左右相平面的交點、即為投影點。注意現在說的所有坐標都是定義在同一個坐標系內,坐標原點與標架已經在圖中左下角標識出來了。現在問題來了,已知,已知d、b、f,求z。這是一個初中幾何題,答案很簡單:

從公式可以看出,視差 d和深度z成反比關係。視差越大,可以探測的深度越小。b是兩個相機光心的距離,又叫基線(baseline),f是相機的焦距。f、b與深度均成正比關係。

立體匹配

從上一節可以看到,如果要計算深度,我們需要知道視差、基線、焦距。另外注意,上文的推導是基於理想模型,比如不考慮相機的畸變,不考慮雙相機光軸不平行的情況。

在視差計算之前,我們首先給定了兩個投影點。但實際應用中,我們並不知道左右相機中哪兩個點是對應點。查找對應點是雙目立體視覺中非常核心的步驟,可以毫不誇張地說,大部分的結構光重建方案解決的都是如何準確快速地匹配對應點。在介紹具體方案之前,有些通用的背景知識稍微鋪墊一下。

對極幾何(Epipolar Geometry)是一個內容非常豐富的範疇(本文不想鋪展太多,只是選擇幾個概念簡單描述,詳細內容可以參考《計算機視覺中的多視圖幾何》一書)。對極幾何描述的是三維點與兩個相機相平面之間的特殊幾何關係,我們先看下圖的模型。

 

其中C0、C1為兩個相機中心,P為空間中一點,P在C0、C1對應像平面上的投影分別為X0、X1。C0、C1連線與像平面的交點e0、e1稱為極點(Epipoles),l0、l1稱為極線(Epipolar Lines),C0、C1、P三點組成的平面稱為極平面(Epipolar Plane)

這個模型有個有趣的性質。當三維點P沿著方向接近左相機時,我們發現其在左相機上的投影點X0並不會移動,但是其在右相機相平面上的投影點x1發生了變化,其移動軌跡一定是沿著極線l1。反過來,假設我們並不知道P點坐標,只知道X0是其在左相機上的投影,要尋找其在右相機相平面中的投影,則只需要沿著極線l1搜索即可。這個性質使得對應點匹配的搜索空間直接從2維降低到1維。

聰明的同學看到這肯定會問了,沒有P點怎麼知道極線在哪,這不是因果不分麼?事實上極線的位置僅和X0以及相機的內外參有關,和P點位置無關。這就引出了接下來的約束。在對極幾何中有個非常著名的約束---對極約束(Epipolar Constraint)形式化地描述了對應點 X0、X1之間的幾何關係:

其中F是基礎矩陣(Fundamental Matrix)。這個式子是如此簡潔,以至於忍不住想要推導一番,推導過程見附錄1。

極線矯正 對極約束描述了對應點匹配可沿極線搜索。在實際應用中,兩個相機擺放一定是不平行的,因而相平面中的極線大概率是條斜線,這就給搜索過程帶來了不便,為了簡化過程,還需要引入額外的極線矯正步驟,使得兩相機的極線共線且平行於相平面的X 軸。矯正前後的效果如下面兩張圖所示,應該比較直觀。

 

 

對應點查找經過上述處理後,要生成視差圖,最核心的步驟就是在相平面的同一行上,查找對應點了。查找的方法有多種,大體上可以分成兩類。

(1)提取圖像特徵該類方法可以對每張圖像單獨進行分析,提取「特徵」。這裡特徵可以有不同的表示方法,如邊緣、角點等,也可能來自其他主動投射的結構光信息,如正弦條紋相位值、編碼值等,通過在雙目圖像之間查找相同(相似)特徵來確定對應點。

(2)使用相關關係 該類方法假設對應點小領域內有相似的亮度模式,因而可以用兩者的相關關係來定位。為了增加額外的亮度變化信息,通常會通過主動光源投射隨機散斑這類圖案。

具體的結構光重建原理會在後續文章中展開討論。

參考

附錄

對極約束證明:

上述內容,如有侵犯版權,請聯繫作者,會自行刪文。

交流群

歡迎加入我們公眾號讀者群一起和同行交流,目前有3D視覺深度學習雷射SLAM、VSLAM、三維重建、點雲後處理、圖像處理、手眼標定、自動駕駛、位姿估計等微信群,請掃描下面微信號加群,備註:」研究方向+學校/公司+暱稱「,例如:」3D視覺 + 上海交大 + 靜靜「。請按照格式備註,否則不予通過。添加成功後會根據研究方向邀請進去相關微信群。

知識星球

學習3D視覺核心技術,掃描查看詳情,3天內無條件退款

圈裡有高質量教程資料、可答疑解惑、助你高效解決問題

相關焦點

  • 雙目立體視覺的數學原理
    1.前言戲說雙目立體視覺是基於視差原理,由多幅圖像獲取物體三維幾何信息的方法。
  • INDEMIND雙目視覺慣性模組助力立體視覺應用升級
    INDMEIND雙目視覺慣性模組是目前業界首款可連續輸出200幀圖像及IMU數據的雙目慣性相機,用戶可自行調節1280*800解析度下25/50/100FPS、640*400解析度下25/50/100/200FPS不同圖像輸出,可為三維重建、深度解算、視覺SLAM等應用研發提供更精準、豐富的環境圖像信息。
  • 雙目立體視覺中靶標的設計與識別
    0 引言本文引用地址:http://www.eepw.com.cn/article/103908.htm  雙目立體視覺測量是基於視差原理,由多幅圖像獲取物體三維幾何信息的方法。在計算機視覺系統中,雙目立體視覺測量一般由雙攝像機從不同的角度同時獲取周圍景物的兩幅圖像,或有單攝像機在不同時刻從不同角度獲取周圍景物的兩幅數字圖像,並基於視差原理即可恢復出物體的三維幾何模型,重建周圍景物的三維形狀與位置。  在雙目立體視覺測量的許多應用中,可以在待測物體表面分布一些具有明顯特徵且易於識別的元素作為標記點,如圓、十字刻畫線等。
  • 基於雙目立體視覺伺服的智能車室內彎道控制
    基於雙目立體視覺伺服的智能車室內彎道控制 秩名 發表於 2014-01-20 10:28:51   0 引言   智能車環境感知系統的一個重要任務就是實時地提供車輛在行使過程中的位置信息
  • 元橡科技雙目立體視覺 全視全知全行業賦能
    據了解,機器視覺產業將迎來黃金髮展期,2023年中國市場規模或將達到197億元,CAGR達14%。在人工智慧帶來的諸多產業升級價值中,基於視覺交互的智能解決方案在智能化體系中佔比80%以上。雙目立體視覺作為機器視覺的關鍵之一,越來越成為人工智慧交互的重要力量。
  • 揭秘三維視覺之結構光原理
    線掃描結構光線掃描結構光較之面陣結構光較為簡單,精度也比較高,在工業中廣泛用於物體體積測量、三維成像等領域。1.1 數學基礎通過上圖可以看到線掃描結構光裝置的一個基本結構。主動光源L緩慢掃過待測物體,在此過程中,相機記錄對應的掃描過程,最後,依據相機和光源在該過程中的相對位姿和相機內參等參數,就可以重建出待測物體的三維結構。其中,
  • 3D視覺傳感技術
    被動測距法被動測距技術不需要人為地設置輻射源,只利用場景在自然光照下的二維圖像來重建景物的三維信息,具有適應性強、實現手段靈活、造價低的優點。但是這種方法是用低維信號來計算高維信號的,所以其使用的算法複雜。被動測距按照使用的視覺傳感器數量可分為單目視覺、雙目立體視覺和多目視覺三大類。
  • 三維視覺之結構光原理詳解
    為投影裝置的朝向。 2.通過投影器向被測空間中投射亮度不均和隨機分布的點狀結構光,通過雙目相機成像,所得的雙目影像經過極線校正後再進行雙目稠密匹配,即可重建出對應的深度圖。如下圖為某種面陣的紅外結構光。
  • 一個超乾貨的3D視覺學習社區
    想請問下有沒有無人機三維建模的開源項目?……三維重建篇基於圖像的三維重建中,由稀疏點雲獲得稠密點雲的原理和實現的技術方式都是什麼呢?可以用MATLAB做基於多視角圖片的三維重建嗎?就是用SFM+MVS。或者,老師有推薦的建模工具嗎?使用mvsnet做三維重建,在估計自採數據的深度範圍時,有合適的取值範圍參考嗎?近期,室內三維重建融合語義的開源方案有哪些?
  • 港科大教授權龍:計算機視覺下一步將走向三維重建 | CCF-GAIR 2018
    他談到,當下因為深度學習技術的發展,人工智慧變得非常火熱,計算機視覺作為人工智慧的一個領域,也變得異常火熱。不過目前計算機視覺的研究和應用主要集中在「識別」,「識別」只是計算機視覺的一部分。如果要去做一些交互和感知,必須先恢復三維,所以在識別的基礎上,下一個層次必須走向「三維重建」。
  • 港科大教授權龍:三維視覺重新定義人工智慧安防
    縱使CNN的特徵提取能力極其強,但是我們不要忘記建立在CNN基礎上的計算機視覺是單目識別,而人類是雙目。我們的現實世界是在一個三維空間,我們要和三維打交道。拿著二維圖像去做識別,這遠遠不夠。在雙目視覺下,要包含深度、視差和重建三個概念,它們基本等價,使用哪個詞彙取決你處在哪個群體。
  • 卡內基梅隆大學機器人學院博士後胡耀鈺:基於深度學習的雙目深度...
    傳統多視圖幾何的三維重建,按照深度圖的獲取方式可以分為主動式三維重建和被動式三維重建。被動式三維重建是依靠多視圖幾何原理基於視差進行計算,按照採集設備的不同可以分為單目視覺、雙目視覺和多目視覺。單目視覺使用單一攝像頭作為採集設備,依靠一段時間內獲得的連續圖像的視差來重建三維環境,然而單張圖像可能對應無數真實物理世界場景,因此從圖像中估計深度進而實現三維重建的難度較大。雙目視覺則主要利用左右相機得到的兩幅校正圖像找到左右圖片的匹配點,然後根據幾何原理恢復出環境的三維信息,其可以較為精確的恢復深度信息。
  • 多視圖幾何三維重建技術背後的原理解析與實踐
    「CV研究合輯」,是智東西公開課針對計算機視覺推出的一檔合輯,聚焦於計算機視覺前沿領域研究成果與進展的講解。每一講由主講與答疑兩個環節組成,其中,主講60分鐘,採用視頻直播形式,答疑30分鐘,將在相應交流群進行。
  • 斜視神經科學家成功恢復「三維視覺」
    現任麻省曼荷蓮女子學院(Mount Holyoke)生物系腦神經科學教授,研究課題為立體視覺和腦神經可塑性。她最近出版了關於自己探索三維視覺過程的著作《視力恢復的故事:尋找三維的科學之旅》。 編譯/本報記者 金煜   從小看不到三維世界   20歲時,貝利已是一名醫學院的學生。
  • 裸眼3D,讓醫學影像更立體(科技大觀)
    裸眼3D,就是在不需要任何輔助設備的情況下,用人眼直接獲得具有空間、深度的逼真立體影像。早在100多年前,人們便用光柵或透鏡的方式將影像分別投影到空中。但這種方式存在一些局限,因為它形成的圖像並不是完整的信息,只是讓人產生視覺上的視差,通過這種視差合成為三維的影像。
  • 三維視覺之結構光
    主動光源L緩慢掃過待測物體,在此過程中,相機記錄對應的掃描過程,最後,依據相機和光源在該過程中的相對位姿和相機內參等參數,就可以重建出待測物體的三維結構。其中,  為投影裝置的朝向。  則需要通過對應像素的像素坐標  和焦距f來確定。
  • 計算機視覺基於圖像的三維重建入門介紹
    在介紹三維重建之前先來講一下基於傳統幾何的計算機視覺相關的學習路線。三維重建在計算機視覺領域中處於核心位置,香港科技大學權龍教授曾說「三維重建才是計算機視覺的靈魂」。在無人駕駛、增強現實、虛擬實境等領域中,都需要三維重建技術,在增強現實中,需要重建出物理世界,並把虛擬物體與真實物體結合,構建出周圍的環境,才能與其進行相互的交流,給人以逼真的感受。
  • 王強:AI金融偽場景眾多,為何應重倉三維視覺與開放金融平臺? | CCF...
    三維視覺技術關鍵之一:三維重建三維重建分為接觸類、非接觸類和透視類三大類。非光學三維重建,比較常見為雷射雷達和聲納等方式,現在雷射雷達的發展非常迅速,但它的最大問題是效率較低;而聲納的優勢在於掃描寬度很大,但精度不夠。雷射雷達和聲吶的三維重建更多用於工業場景,對於生活場景和金融場景是做不到的。光學重建有分為被動光學和主動光學的重建。
  • 計算機視覺如何尋找突破口?三維重建或許是一個
    不過當前計算機視覺的研究和應用主要集中在「識別」上,「識別」只是計算機視覺的一部分,如果要去做一些交互和感知,必須先恢復三維,所以在識別的基礎上,下一個層次必須走向「三維重建」。一.英偉達研發了GPU,GPU最早是為遊戲而不是人工智慧誕生的。
  • ToF技術與結構光技術、雙目立體視覺技術有什麼區別?
    和現在大熱的結構光技術、雙目立體視覺技術到底有什麼區別?分別都有哪些特性?x0Lednc一、ToFToF(Time of Flight)飛行時間x0Lednc字面理解就是通過光的飛行時間來計算距離x0LedncToF的基本原理是通過紅外發射器發射調製過的光脈衝,遇到物體反射後,用接收器接收反射回來的光脈衝,並根據光脈衝的往返時間計算與物體之間的距離