三維視覺與幾何

視差圖

視差圖(disparity map)是一張影像,其中每個像素的值不是顏色而是一個數字:該像素的場景點在校正後左右立體視角之間橫向位移了多少。以灰階或熱度圖顯示時,它看起來像一張深度圖——近的表面發亮(視差大)、遠的表面變暗(視差小)——因為依立體方程式,視差與深度成反比。它是立體視覺的核心中間產物:把視差圖算好,度量深度就能用每像素一次簡單除法得到。

具體來說,若左影像第 u 行的像素匹配到右影像第 u 減 d 行的像素(校正後兩者的列相同),那麼 d 就是該像素的視差。由於深度 Z = f·B/d,這個關係是非線性的:視差上等步長並不對應深度上的等步長。視差解析度在近處豐富(視差變化一個像素只是很小的深度變化),在遠處粗糙(視差一個像素可能橫跨許多公尺),這正是立體視覺近處精確、遠處愈來愈不確定的原因。次像素視差估計——在匹配成本的最小值附近擬合一條拋物線——是緩和這種量化誤差的標準做法。

產生一張乾淨的視差圖才是真正的工程挑戰。區塊匹配快但雜訊大;半全域匹配(SGM)至今仍是強而被廣泛部署的經典方法,會施加分段平滑;學習式網路如今則主宰準確度排行榜。無論用哪種方法,某些區域天生困難,通常會被標記為無效:遮蔽(只有一台相機看得到,因此無物可匹配)、無紋理或重複的表面(許多同樣好的匹配),以及鏡面反光(外觀在不同視角間改變)。好的流程會在視差之外輸出一張信心或有效性遮罩,並施加左右一致性檢查——無論由左算到右或由右算到左,視差都應一致——以偵測並丟棄不可靠的像素。

視差與深度即使外觀相似也不是同一張圖。視差是立體視覺直接量到的;深度是推導出來的。把兩者搞混——例如把視差圖餵給期待度量深度的網路——會悄悄地破壞下游一切,因為兩者的關係是倒數而非線性。

又称
disparity image