隨着機器視覺、自動駕駛、機器人的火爆,采用深度相機采集環境的深度信息然后進行物體識別、環境建模等越來普遍;相對於傳統2D相機,3D相機增加了一維的深息,因而,能夠更好的對真實世界進行描述;在許多領域如安防、監控、機器視覺、機器人等,拓展了更多的可能;如自動駕駛中的物體識別和障礙物檢測,工業中散亂碼放物體的識別、分揀、拆垛、碼垛,物流場景中物體的貨架抓取等等。
深度相機,顧名思義,指的是可以測量物體到相機距離(深度)的相機,如微軟的Kinect, Kinect 2, Intel 的 RealSense甚至包括激光雷達也可以歸為深度相機。
從原理上來講,深度相機測量深度主要分為兩大類:
1) 基於特征匹配的深度測量原理,如基於紅外散斑結構光原理的Kinect 1, 基於紅外條紋結構光的Intel RealSense, 基於可見條紋結構光的Enshape,甚至單純采用雙目視覺的BumbleBee等等;上述幾類相機無論采用哪種結構光或者不采用結構光,其最終計算深度時本質上采用的均可以看作是特征匹配的方法;
2) 基於反射時間的深度測量原理,如Kinect 2.0, MESA 的 SR4000,SR4500,Google Project Tango 采用的PMD Tech 的相機 ,Intel 的 SoftKinect DepthSense 甚至包括無人駕駛領域L3和L4的分水量激光雷達等等;上述幾類相機在計算深度信息時無一例外地均采用發射光與反射光之間的時間差計算深度;
下面分別對基於特征匹配的深度測量原理以及基於反射時間的深度測量原理進行詳細的描述;
基於特征匹配的深度測量原理
無論是主動投影光斑的結構光深度相機還是基於被動雙目視覺原理的深度相機,其本質上均為首先對投影儀投射的光斑與相機之間拍攝圖像(或雙相機拍攝圖像)進行特征匹配,然后在此基礎上基於三角測量原理(通過測量三角形3條邊3個角中的三個量:如角邊角,邊角邊等計算其余三個量)計算特征點距離相機的距離。如下圖所示:

上圖中O所在位置為Projector光源所在位置或者雙目視覺中左相機光心,(b,0,0)所在位置為右相機光心;(x0,y0,f0)和(x1,y1,f1)分別為特征點在左相機像平面和右相機相平面中的投影;
根據成像原理,O,(x0,y0,f0),(x,y,z)共線,O,(x1,y1,f1),(x,y,z)g共線;
根據射影原理:


根據上述兩式便可以計算得到:



根據上述原理,在特征點已經匹配的基礎上,無論是主動投影結構光深度相機還是純被動雙目相機,均可以計算出特征點的深度信息;
然而,特征點的匹配並不是一件非常簡單的事情,尤其是純雙目視覺中特征點的匹配,涉及到非常復雜的計算過程;
a) 主動投射結構光深度相機;
為了更加簡單方便的對匹配特征點,許多學者和公司采用主動投影方法,提出了多種不同的方案,如投射激光散斑、投射可見光條紋、投射激光條紋、投射包含顏色信息的編碼條紋等等;甚至有學者提出使用一個簡單的金屬桿模擬激光線條等,方法不一而足,但組中目的都是為了能夠簡單快速的匹配特征點;

各種不同的特征
上述基於主動投射光源的深度相機,由於特征經過特殊設計,因而,特征的提取與匹配非常簡單;同時,經過合理的設計,能夠在一定范圍內達到較高的精度,因而,在實際應用中使用相對較多,如Kinect 1.0, Intel RealSense, Enshape, Ensenso等,采用的均為主動投射光源的x方案;但,同時,可以想見,在投射光源的特征固定的情況下,物體距離相機越遠,光斑越大,因而,相對應的測量精度越差,即相機精度隨着距離的增大而大幅降低;因而,基於主動投影的深度相機往往在測量距離較近時應用較多;
另外,基於主動投射光源的深度相機,由於存在外部光源,因而非常適合在黑暗環境中使用;但如果應用在室外環境中,則對主動投射光源的功率有較高要求;常見的低成本的結構光相機如Kinect 1.0, Intel RealSense, Ensenso在室外強光環境中均為產生較大的測量誤差;采用較大功率的主動投射光源則意味着成本的大大增加;
再者,基於主動投射光源的深度相機,由於主動投射光影,因而,反光平面的影響不可避免;如果投射的為大面積的散斑結構光,那么不可避免的會在反光平面產生比較大的干擾;如果投射光源為線激光、條紋結構光等,影響相對較小,但同樣不可避免;總而言之,采用主動投射光源的深度相機,反光影響肯定存在,但可以通過合理的設計降低其影響;
b) 被動雙目深度相機
被動雙目深度相機不對外投射光源,類似人類雙眼不布置,通過兩個位置已經標定好的2D相機觀察同一環境,然后再拍攝到兩幅圖像根據圖像內容進行特征點匹配,進而計算深度。由於不存在任何先驗知識,僅依賴於環境圖像進行特征匹配,因而,被動雙目立體視覺方案比較適合用於光線良好、圖像特征比較豐富的領域;
由於直接采用環境光采集圖像,因而,其非常適合於室外環境中使用,在室內環境中使用時,則需要外部光源的輔助;同時,反光的影響大大降低;
對於一些圖像特征非常不明顯的領域,如平整的地面,一望無際的沙漠等,采用雙目視覺進行匹配,則相對比較困難;
采用純被動雙目視覺目前最大的問題在於,分別基於兩幅圖像,從圖像中尋找特征點,進一步的進行特征匹配,整個過程中需要大量異常復雜的算法,巨大的計算量,並且最終的計算結果並不穩定。
就目前來看,被動雙目深度相機目前還正處在產品應用與開發的早期階段,一些公司推出的如STEROLABS 推出的 ZED 2K Stereo Camera, Point Grey 公司推出的 BumbleBee,以及一些國內創業公司推出的一系列被動雙目相機,目前還都處於實驗結果,距離穩定可靠的產品以及大規模的應用還具有一定的距離。

基於反射時間長度的深度測量方法
反射時間測量原理(Time of Flight, 簡稱TOF)通過 將調制光源投射到被觀測物體上,然后觀察反射光與入射光之間的時間差計算物體到相機的距離。如下圖所示:

TOF相機原理
TOF相機中包含一個激光發生器和一個由光敏而激光或雪崩二極管組成的感光單元,如上圖所示,激光發生器發射激光后,遇到障礙物反射回來,相機中的感光單元感受到反射光后,計算出激光從發射出去到接收到反射光所需的時間,進而根據飛行時間乘以光速得到障礙物距離相機的距離。
為了測量入射光與反射光之間的時間差,一般將光源調制為連續脈沖光源,如下圖:

即如上圖所示,正弦波脈沖TOF相機通過向場景平面發射一束調制頻率為
正弦波信號,入射信號被場景表面反射並被傳感器吸收。當信號到達被接收后,由於能量衰減,其振幅衰減,並且產生一個相位延遲,記作
根據相位延遲,便可以計算得到入射信號與反射信號的時間差,進而計算環境的深度值;

上述正弦波脈沖方法基於亮度調制光源的相位長度測量時間差,方法較為成熟,是目前主流的方案,但此方法中芯片較大,因而只能工作在較低分辨率下工作;
對於方波脈沖TOF相機,首先相機上的控制單元打開光源然后關閉,形成一束光脈沖,在同一時刻,控制單元打開芯片上的電子快門
,由光脈沖產生的電荷存儲在芯片上Q0;然后,在光源被關閉的時刻,打開快門S1,由光脈沖產生的電荷也被存儲在芯片上,記作Q1;
然后,根據Q0,Q1的數值便可以計算入射光與反射光的延遲時間,進而計算環境的深度值:
2) 基於反射時間的深度測量原理,如Kinect 2.0, MESA 的 SR4000,SR4500,Google Project Tango 采用的PMD Tech 的相機 ,Intel 的 SoftKinect DepthSense 甚至包括無人駕駛領域L3和L4的分水量激光雷達等等;上述幾類相機在計算深度信息時無一例外地均采用發射光與反射光之間的時間差計算深度,其差別僅僅在於發射的波不同而已;
上述方波脈沖TOF相機根據單脈沖的傳播時間測量距離,因而,需要非常快速和精確的電子元件,但同時也可以達到較高的精度和分辨率,代表當前的最高水平。
值得注意的是,TOF相機對上述時間測量的精度要求非常高,即使相機的電子快門打開僅僅比預期的時間晚了33ps,那么計算出的距離也已經短了1cm,因而,即使采用最高精度的電子元器件,TOF相機也很難達到mm級的精度,這也限制了其在一些高精度領域的應用。
但根據上述原理可以看出,由於通過反射時間測量距離,因而,TOF相機可以通過調節發射脈沖的頻率改變相機測量距離,因而,在測量距離要求比較大的場合,如無人駕駛領域的激光雷達,TOF相機具有非常明顯的優勢;
同時,與基於特征匹配的深度相機不同,TOF相機的精度不會隨着測量距離的增大,誤差增大,其測量誤差在整個測量范圍內基本上是固定的;
就目前來看,在近距的應用領域,許多公司已經基於TOF原理推出了一些列商用的產品,如微軟的Kinect 2.0, MESA 的 SR4000 , Google Project Tango 中使用的PMD Tech 的TOF相機,Intel 的 SoftKinect DepthSense, Basler基於松下的芯片開發的TOF相機以及國內一些初創公司基於TI的方案開發的TOF相機等等;這些產品已經在民用的體感識別,環境建模等領域取得了大量應用;但總的來說,在近距測量領域,尤其是1m左右范圍內,TOF相機的精度與基於特征匹配的精度還具有較大的差距,從而限制了其在一個高精度領域的應用。

在遠距的應用領域,如無人駕駛中的激光雷達等,目前基本上所有的方案都是基於TOF原理,基於TOF原理的深度測量方法在遠距領域具有明顯的優勢。

激光雷達
綜上所屬,常用的三種類型的深度相機:基於主動投射結構光的深度相機、被動雙目相機以及TOF相機,其主要優缺點總結如下:

在實際應用中,應該首先確定測量范圍與測量精度要求:如果測量范圍較大,優先選擇TOF類相機;如果測量范圍較小,優先選擇主動投射結構光類相機,然后根據精度要求選擇不同的投射方案;如果外界環境不允許投射光線或者具有良好的外界環境光,可以選用被動雙目視覺方案;
最后,強行安利一波,梅卡曼德機器人基於 3D視覺的機器人混雜分揀解決方案,可用於分揀、拆垛、碼垛、上下料等應用。基於先進的算法,梅卡曼德智能分系統在保證工作節拍和可靠性的前提下,價格比市場上常見方案低一個數量級。技術詳解詳見媒體報道:梅卡曼德技術詳解:如何做出一個智能機器人。
文章由公眾號 機器人科技雜談 整理發布,歡迎關注。

