立體視覺
立體視覺(stereo vision)回復深度的方式就像你自己的雙眼:比較同一場景兩個略有差異的視角,並量測每個點在兩者之間位移了多少。把手指靠近臉,輪流眨左右眼——手指會跳得很厲害;遠處的牆幾乎不動。這個表面上的橫向位移稱為視差(disparity),正是立體視覺轉換成距離的原始訊號。近的東西位移大;遠的東西位移小;無限遠的東西完全不位移。
在機制上,你把兩台相機相隔固定距離(基線,baseline)擺放,朝向大致相同的方向。第一個關鍵步驟是校正(rectification):利用已知的相機校正,把兩張影像扭轉到對應點永遠落在同一水平列上。校正後,把左影像的某個像素匹配到右影像的夥伴,就變成沿單一掃描線的一維搜尋——這正是對極幾何的實用回報。對每個左像素,你沿著右掃描線滑動尋找最匹配的影像區塊,匹配最佳處的水平偏移量就是該像素的視差。
把視差換成深度的幾何是一個乾淨的反比關係。深度 Z 等於焦距 f 乘以基線 B 除以視差 d,寫成 Z = f·B/d。視差加倍,深度減半。這條公式也揭露了極限:較寬的基線 B 或較長的焦距 f 能在遠距離銳化深度解析度,但極寬的基線會造成更多遮蔽(一台相機看得到、另一台看不到的部分),也讓匹配更困難。沒有單一最佳基線——這是依工作範圍調校的取捨。
困難之處在於匹配本身。無紋理的牆面、重複圖案(像磚牆立面或柵欄)、反光,以及在某一視角被遮蔽的區域,都會破壞天真的影像區塊匹配。經典補救法加入平滑假設:半全域匹配(Semi-Global Matching)沿多個方向聚合匹配成本,在局部證據與全域一致性間取得平衡。現代深度立體網路(PSMNet、RAFT-Stereo 及其後繼)建立學習式成本量並用卷積或循環式精煉加以正規化,對弱紋理與細小結構處理得好上許多,代價是需要訓練資料與運算。
一組立體相機,焦距 f = 800 像素、基線 B = 0.12 公尺:在校正後左右影像間位移 d = 40 像素的點位於深度 Z = 800 × 0.12 / 40 = 2.4 公尺。較遠、僅位移 8 像素的點則在 12 公尺——注意視差小 5 倍意味著距離遠 5 倍。