機器人視覺與感知

立體視覺

立體視覺是一種測量物體遠近的方法,它用並排放置的兩台攝影機,靠的正是你兩隻眼睛用的同一個小竅門。豎起一根手指,先閉一隻眼看它,再換另一隻眼:手指看起來會相對背景往旁邊跳一下。近的東西跳得多,遠的東西幾乎不動。立體視覺就是把這個「跳動」換算成距離。兩台攝影機相隔一段固定的距離、朝同一方向架好,在同一瞬間各拍下場景的一張照片,系統再去比較這兩張圖。

每個點在左圖和右圖之間看起來移動的幅度,叫做視差,它是這套方法的核心。一個點如果在一張圖裡落在很靠某一側、在另一張圖裡卻落到另一側很遠的地方,它的視差就大,這意味著它離攝影機很近;而一個點如果在兩張圖裡幾乎落在同一個位置,它的視差就很小,說明它很遠。由於兩台攝影機之間的間距(叫做基線)和它們的焦距都已透過校正得知,簡單的幾何就能把每一個視差值直接換算成以公尺為單位的真實距離。難點在於「匹配」:對於左圖裡的每一個點,系統都必須在右圖裡找到那個一模一樣的點——這正是特徵和描述子大顯身手的地方。

對整張圖上的許多點都做一遍這樣的匹配,你就得到一張深度圖——一張每個像素存的不是顏色而是距離的圖。有了這張圖,機器人單憑普通攝影機、不靠雷射也不靠特殊照明,就能判斷牆、桌子或人有多遠。其代價是:立體視覺需要看得見的紋理才能匹配,一面空白的白牆沒有任何東西可供對齊,那裡的深度就變得不可靠;而對於非常遙遠的物體,它們的視差縮向零,精度也會隨之下降。

機器人頭上一對相距幾公分的攝影機盯著桌上的一隻杯子;杯子在兩張圖之間明顯地移了位,而遠處的牆幾乎沒動,於是機器人就讀出:杯子近、牆遠。

移得多就近,幾乎不動就遠。

兩台攝影機之間的間距越大(基線越長),測量遠處距離就越準,但代價是很近的物體沒法同時落進兩個畫面裡。

又稱
binocular visionstereopsis双目视觉雙目視覺