三維視覺 是什麼?
3D Vision:三維視覺 的完整解釋
利用多個視角或深度信息重構和理解三維場景的技術,包括物體形狀、位置和空間關係。
核心概念
三維視覺的核心問題是:給定一個或多個二維圖像,如何恢復三維信息?人類視覺系統利用雙眼視差(立體視覺)、運動視差、紋理透視等多種線索進行三維感知。計算機三維視覺系統也利用類似的線索。
三維視覺的主要信息源包括:
- 立體視覺:使用兩個視角的圖像計算視差,進而得到深度。就像雙眼視覺一樣。
- 運動視覺:利用相機運動或物體運動產生的幀間變化推導三維結構。
- 單眼線索:利用光照、紋理、邊界等二維特性推斷三維。
- 深度傳感器:直接測量像素深度(如 RGB-D 相機)。
運作原理
立體視覺與視差
立體視覺原理簡單:如果兩個相機從不同視角同時拍攝同一物體,物體在左右圖像中的位置不同。這個位置差(視差)與物體距離成反比。較近的物體視差大,較遠的物體視差小。
系統首先識別左右圖像中的匹配點(同一物體在兩幅圖中的像素),計算它們的視差,再根據相機參數(焦距、基線距)計算深度。
結構從運動(SfM)
當只有單個移動相機的多幀視頻時,系統可以同時估計相機運動軌跡和場景三維結構。原理是:相同物體在不同幀中的像素位置隨相機移動而變化;通過跟蹤這些點的運動,系統可以反推相機運動和三維點的位置。
深度估計
深度估計是指從單幅或多幅圖像預測每個像素的深度值。深度估計網絡(如深度 CNN)學習圖像中的視覺特徵與深度的關係。例如,紋理漸變和物體大小變化都是深度的線索。系統通過大規模監督學習(在配有深度地真值的數據上訓練)學會這些關係。
三維物體檢測
在三維空間中定位物體,輸出物體的邊界框(三維坐標 + 尺寸 + 方向)。方法包括利用多視圖信息、RGB-D 圖像或直接從單幅圖像的深度估計和二維檢測結果推導。
實際應用
自動駕駛
自動駕駛汽車需要準確理解周圍三維環境:前方車輛的距離和速度、行人的位置、道路邊界等。採用多相機、激光雷達和毫米波雷達的三維視覺系統提供實時環境感知。三維物體檢測和深度估計是核心模塊。
機器人操作
機器人手臂進行抓取操作時,需要知道物體的精確三維位置、形狀和方向。使用 RGB-D 相機,機器人可以掃描場景生成點雲,進行物體分割和姿態估計,指導夾爪實現精確抓取。
虛擬現實與增強現實
AR 應用需要在真實視頻上疊加虛擬物體。系統必須估計相機位置和方向(「我的手機現在看著哪個方向」),這樣虛擬物體才能正確定位在現實空間中。三維場景重構和相機定位是核心技術。
醫療影像
CT 和 MRI 掃描生成三維醫學影像。三維視覺技術用於重構器官三維模型,幫助醫生進行手術規劃。例如,從二維 CT 切片重構肝臟三維模型,醫生可以從各個角度觀察,更精確地規劃切除區域。
文物數字化與製造
考古或製造領域需要對物體進行三維掃描和數字化。使用結構光、立體視覺或激光掃描,可以生成高精度的三維模型,用於存檔、複製或虛擬展示。
無人機測量
無人機搭載相機飛行,拍攝地面的多張照像。使用結構從運動技術,可以重構整個測量區域的三維地形模型,用於土木工程、農業監測或地形製圖。
常見誤區
誤區 1:認為立體視覺總是比單眼深度估計準
立體視覺原理簡單、物理直接,但實踐中需要解決點匹配問題,這在紋理缺乏的區域(如白牆)非常困難。而深度估計網絡可以利用語義信息(「白牆通常較遠」)補償紋理缺乏。在某些情況下,特別是對於紋理差的場景,深度估計網絡可能比立體視覺更魯棒。
誤區 2:更多相機視角總是更好
增加相機數量確實增加信息,但同時增加計算複雜度、同步難度和成本。實踐中需要在精度和效率間取捨。許多系統(如自動駕駛)精心選擇少數關鍵視角的組合,而不是盲目增加。
誤區 3:三維視覺只用於靜態場景
很多人認為三維視覺只能重構不動的場景。實際上,許多方法可以處理動態場景:通過分離背景和運動物體、追蹤運動物體、或使用時間一致性約束。自動駕駛中的動態物體檢測就是動態三維視覺的典型應用。
誤區 4:深度值可以直接用像素值表示
初級做法可能將深度值簡單地編碼為像素亮度。這樣的編碼範圍有限,無法表現大尺度環境的深度變化(近距 1 厘米到遠距 100 米)。需要使用對數尺度、分層表示或其他編碼方式。
與相關技術的比較
與「深度估計」的區別:深度估計是三維視覺的一個子任務,專注於預測深度圖。三維視覺更廣,還包括相機定位、物體檢測、場景重構等多個任務。
與「點雲處理」的區別:點雲是三維視覺的一個數據表示(三維點集合)。點雲處理是在點雲上進行操作(分類、分割、補全)。三維視覺還包括如何從圖像生成點雲。
與「光流估計」的區別:光流估計是二維像素運動的估計,通常不涉及三維深度。三維視覺利用光流作為中間信息推導三維。
與「神經隱函數表示」的區別:神經隱函數(NeRF)是近年來的三維表示新方法,可以從圖像直接訓練神經網絡隱式表示三維場景。傳統三維視覺通常使用顯式表示(點雲、網格)。