人類之所以能夠駕馭這個世界,是因為具有三維(3D)感知能力,而這個能力也可以賦予給機器人。但人類感知3D的方式也許並不適用於機器,要引導機器人運用深度感測視覺,需要考慮三個關鍵方法:立體視覺、結構光和飛行時間(ToF)。

機器人系統已經存在了幾十年,但直到最近它們大多都是盲目工作。只需為機器人配備接觸感測器、接近感測器和位置感測器,它們就可以優雅地進行精心編排的、無休止的重複動作,可以操縱重型材料、執行精密裝配,或焊接複雜的結構。但是,它們工作的成功與否,取決於其環境的精確性、必用材料的精確放置,以及對其運動軌跡的仔細繪製和程式設計。

然而,這種情況正在發生變化。機器視覺和視覺智慧方面的研究、半導體製造的進步,以及影像感測器在手機市場上的應用,簡化了視覺系統的開發並降低了其成本,使其成為了一種擴展機器人功能的越來越具成本效益的選擇。借助視覺(特別是3D視覺)的引導,機器人將變得更能夠與自由世界互動,工作起來更靈活,也更容易適應新的任務。

特定的機器人所需的視覺特性高度取決於應用。例如,對於那些必須透過視覺引導在雜亂的倉庫裡移動的機器人來說,它們需要對動態環境進行遠端感知,但只需要提供適當的精準度。固定機器人的需求則可能完全不同,例如有些機器人用來將箱子裡所混合的零件取出,並依相同類型進行堆放,這可能只需要在有限的範圍內提供高精準度的視覺,而執行精密裝配的機器人則又有另一套需求。因此,要確定採用哪一種3D視覺方法,首先要對機器「觀看」的工作方式有所理解。

立體機器視覺

由於和人類觀看的方式相似,最容易理解的3D方法是立體視覺。這是一種三角測量法,即用相隔一定距離的攝影鏡頭去獲得兩個(或多個)影像(或用一個攝影鏡頭在影像之間移動),然後透過比較來確定攝影鏡頭視場中物體的距離。將攝影鏡頭分離會產生視差,這樣,較近物體相對遠處背景的對齊就會不同——物體越接近攝影鏡頭,視差越大。

圖1提供一個簡單的示例。圖中的兩個攝影鏡頭沿平行軸指向相同方向,其感測器對齊並相隔基線距離B,每個攝影鏡頭都會擷取一個3D空間(X,Y,Z)的點(P)影像。獲得的影像中,該點在其2D影像平面上的位置將會不同(uL和uR)。幾何上,該位置相當於從P點向攝影鏡頭引一條射線,穿過一個垂直於攝影鏡頭光軸(ZA)、距離等於攝影鏡頭鏡頭焦距(f)的平面所得的交點。

20190610EDNNT31P1 圖1 簡單的立體視覺幾何圖。

如果取每個攝影鏡頭的ZA與該平面相交的點作為每個影像2D坐標系的原點,那麼計算兩個成像點之間的距離,就可以獲得該點的視差(d)。然後,就可以很容易地計算出該點到影像平面的距離(深度):

深度 = f B/d

但是通常現實世界中的系統不是那麼容易對齊。圖2顯示了一種更通用的設置,其中,每個攝影鏡頭都有自己的坐標系,它們以其光軸方向和影像感測器畫素閘格的旋轉方向來界定。確定影像點視差要比簡單的距離計算更複雜,這涉及到座標變換和幾何校正,但三角測量原理相同。

20190610EDNNT31P2 圖2 現實世界中的立體視覺幾何圖。

幸運的是,有大量的商用和開放原始碼軟體可以處理這些計算。還有一些軟體可使用攝影鏡頭閘格影像來確定所有必要的座標變換,這樣開發人員就不需要精確地確定攝影鏡頭方向。因此,計算空間中單個點的深度資訊就變成了機器視覺系統中相對簡單的一項運算。

但是,這當中仍然存在許多其他的運算挑戰。其中最重要的一個是讓系統確定不同攝影鏡頭影像中是哪個點對應於空間中的相同物理點,這個確定過程可能涉及極為複雜的相關過程,需要將來自一幅影像的一小組畫素與構成另一幅影像的所有畫素組進行比較來確定哪些組匹配,然後對構成第一幅影像的所有小畫素組重複該過程。

結構光深度測定

第二種3D視覺方法——結構光——可簡化上面這個相關過程,設計人員應當留意這個優勢。這種方法在三角測量工作中用投光機取代了其中一個攝影鏡頭,投光機生成一個已知的光斑,然後系統將攝影鏡頭影像與這個已知光斑進行比較。所擷取影像中的結構光光斑會因為被測物件上的每個點深度不同而產生失真(圖3)。在這個例子中,可以使用基線和兩條射線之間夾角計算出P點的深度(R):

R = B (sin α)/sin (α + θ)

20190610EDNNT31P3 圖3 結構光系統根據已知光斑產生的反射光失真來計算深度。

目前業界已針對場景的深度資訊提取開發出各種各樣的結構光方案(圖4),但其中有許多針對的是物體掃描而不是機器人運動控制。其中一些結構光方案產生影像序列所使用的光斑包含若干條紋,寬度從一個影像到下一個影像依次減半(二進位編碼)。還有類似採用格雷碼(Gray Code)或相移條紋的連續光斑也有使用。要利用單個影像取得深度資訊,可以利用連續變化的顏色編碼圖案,或對條紋圖案編制索引,即每個條紋都與其他條紋不同。使用雷射或微鏡光控制器可以很容易地創建這樣的圖案,而艾邁斯半導體(ams)、Finisar和德州儀器(TI)等公司也都專門針對結構光光源製造元件和控制器。

20190610EDNNT31P4 圖4 3D結構光的種類。(資料來源:OSA,《Structured-light 3D surface imaging: A tutorial》)

最近越來越流行的一種結構光方法是以偽隨機圖案來排列編碼形狀或二進位點所組成的閘格。系統使用人眼看不見的紅外線(IR)光來投射這種閘格圖案,並且因為閘格是靜止的,所以可以使用簡單的全息光閘來創建圖案。使用這種方法的商用深度感測攝影鏡頭系統現已上市。(請參見EDN姊妹刊物Electronic Products上發表的《Designer’s guide to robot vision cameras》一文)。

紅外線光的使用在視覺引導機器人應用中具有兩個明顯優勢。首先,它可以使視覺系統與人類一起工作,而不會因結構光投射而為人類帶來的視覺混亂。其次,使用紅外線光還可簡化將結構光與環境光分離的工作。

ToF深度測量

第三種3D視覺方法——ToF——完全沒有使用三角測量法。ToF 3D成像是直接測量深度,也就是確定光從光源到達環境中的物體然後返回所用的時間。在這方面,ToF類似於光達(Lidar)。然而,ToF方法不是用窄雷射光束掃描環境來構建深度影像,而是針對整個視場同時確定距離。半導體技術在不斷進步,如今的感測器設計已經可以實現每個畫素都可以向控制電子邏輯提供自己的訊號,進而提取出計時資訊。

ToF的一個挑戰在於能夠在有意義的範圍內實現精確計時,從而獲得精確的深度資訊。光在空氣中的傳播速度約為1ft/ns,因此光脈衝必須使用數GHz時脈,才能分辨小於1ft的尺寸。類似地,感測器訊號必須以亞奈秒(ns)精準度進行測量。但是,這麼短的脈衝所含光子數量有限,也即感測器接收到的光子數太少,從而導致訊噪比(SNR)不佳。

儘管如此,仍有感測器使用直接時間測量法。Teledyne e2v的1.3MP BORA CMOS影像感測器提供距離選通成像,其全域快門開關可使感測器僅在很短的一段時間內針對特定深度平面收集光子。透過結合多次光照的結果,該感測器可以建立更強的訊號用於處理。若在整個系統範圍內掃描快門計時,該系統就可以在其深度範圍內構建完整的深度圖。

然而,更常見的一種方法是檢測發射訊號與反射訊號之間的相位差來獲取深度資訊。圖5提供了這種方法,反映了反射訊號與方波發射脈衝(也可以是其他調變波)之間的關係。物距越大,關聯訊號越短,並且訊號在多個週期內的積分值越低。由於對訊號強度進行積分測量起來會比暫態計時更加精確,因此這種方法的深度測量精準度會比簡單計算訊號返回時間更高。目前,英飛凌(Infineon)、pmd和TI等公司都提供這類ToF感測器,其中一些更具有可執行所有深度運算的內建電路。

20190610EDNNT31P5 圖5 ToF透過比較反射訊號與發射訊號的時序來直接測量距離。

不幸的是,這兩種方法均存在深度混疊的問題。ToF方案中,光源的調變頻率(f)決定了最大不模糊距離,為R = c/2f。假如光脈衝速率是100MHz,則感測器可以清楚分辨的最大範圍是5ft(10ns往返)。如果一個物體在6ft以外,其相關訊號與1ft外的物體別無二致。也就是說,6ft遠的物體對脈衝N的反射光線,其到達感測器的時間與1ft遠的物體對脈衝N+1的反射相同。

降低調變頻率可增大不模糊距離,但釋放的光子數較少,會使訊噪比變差,或需要增加積分時間。

有一種解決方案是透過在光源中混合兩種調變頻率,來實現訊號的去混疊,然後,感測器訊號處理可以在對訊號進行積分之前分離頻率。其總返回訊號較高,可提供良好的訊噪比;不同的頻率所混疊的距離不同,有助於解決距離模糊問題。該方案的最大模糊距離為光速除以兩個頻率最大公分母的兩倍。

R = c/2 GCD (f1, f2)

根據需求匹配優勢

上述3D視覺方法各有優劣,開發人員應根據其應用需求進行評估和選擇;瞭解各種3D視覺技術的含義對於選擇正確的方法也至關重要。例如,立體視覺系統可以使用傳統的攝影鏡頭,並且無需使用整合式光源,所以這種方法成本低廉並且更容易整合到設計中。但是立體視覺系統的深度精準度取決於其在多幅影像中找到對應點所需的運算性能,而且物體距離越遠,深度解析度越差。立體視覺系統在應對光滑表面和重複圖案上也存在問題,這兩者都使找到對應點的任務變得更複雜。

另一方面,結構光方法也使用傳統攝影鏡頭,但只需要一個。其不需要有很強的運算性能,因此有助於降低成本。但其需要使用整合式光源,其強度會影響工作距離。在環境光可控或被濾除的情況下,其效果最佳,例如在封閉空間中。

ToF系統的運算強度最低,由於攝影鏡頭通常直接向系統主機提供深度資訊,因此大大降低了計算需求。然而,與結構光一樣,系統需要使用整合式光源,其功率會影響系統的距離,環境光不受控也會導致問題。此外,光源的調變頻率也會影響距離。

無論哪種方法最適合你的應用,為機器人配備視覺引導正變得越來越容易,現在攝影鏡頭系統和視覺軟體(商用和開放原始碼)也使事情變得更簡單。此外,為下一代智慧型手機提供3D視覺功能的研發,可望進一步降低3D視覺的成本和複雜性。

(參考原文: 3D vision gives robots guidance,by Richard Quinnell)