1.簡介
3D 飛行時間技術是機器視覺領域的革新,它採用低成本的 CMOS 點陣和有源調製光源,提供了 3D 成像方法。飛行時間相機結構緊湊,簡單易用,高精度,高幀率,是一種非常有吸引力的方案,應用廣泛。本文先介紹飛行時間相機的基本原理,對比了飛行時間相機和其他2D/3D 技術。然後,介紹了飛行時間相機各種有價值的應用,比如手勢感應,3D 掃描和列印。最後,提供了開發飛行時間相機的各種資源。
2.原理
3D 飛行時間相機通過一個調製光源和檢測反射光來照亮場景。檢測發射光和反射光之間的相位移動,並換算成距離。圖 1 顯示了基本的飛行時間相機原理。
圖1: 3D 飛行時間相機原理
通常,固態雷射或者 LED 的發射光源是近紅外波段(~850nm),對人眼不可見。圖像傳感器需要能夠響應相同的波段,接收光,將光能量轉化為電流。注意,進入傳感器的光同時包括了環境光和反射光。距離(深度)信息只存在於反射光中。因此,過多的環境光會降低信噪比(SNR)。為了檢測發射光和發射光之間的相位移動,光源是脈衝波或是調製過的連續波,光源通常是正弦波或方波。方波調製更通用,可以通過數字電路很容易實現。
通過集成的光電轉換器從反射光中獲取脈衝調製,或在反射的第一個檢測中啟動快速計數器。快速計數器需要一個快速光檢測器,通常是一個單光子雪崩二極體(SPAD)。這種計數方法需要快速電子脈衝,1 毫米的精度需要的時鐘脈衝間隔是 6.6 皮秒。這種級別的精度在室溫下的晶片上是無法獲得的。
圖 2: 兩種飛行時間方法:脈衝(上)和連續波(下)
脈衝方法是比較直觀的。在一個比較短的時間內,光源照射時間為(Δt),採用兩個異相窗口,C1 和 C2,在相同的時間間隔Δt 內,同時並行對每個像素點的反射能量進行採樣。在這些採樣時間內,電流持續充電,測量 Q1 和 Q2 用下面公式計算距離:
連續波方法每次測量獲取多個樣本,每個樣本相位差 90 度,共 4 個樣本。使用這種技術,發射光和反射光之前的相位角為,φ,距離 d 可以通過下式計算:
接著,待測量像素的亮度(A)和偏移(B),計算為:
在所有的公式中,c 是光速 30 萬千米每小時。第一眼看,相比脈衝波,連續波方法的複雜度看似不合理,但仔細看連續波的公式, 就會
發現(Q3 − Q4)和(Q1 − Q2)減少了測量中的偏移常量。還有就是,相位角公式中的商值可以減少距離測量中的增益常量的影響,比如,系統中的放大或衰減,或者反射的強度。
反射亮度(A)和偏移(B)會影響深度測量的精度。深度值方差可以用以下公式估計:
調製常量 cd 描述了飛行時間傳感器分離和收集光電信號的好壞程度。反射光強,A,是光強的函數。偏移,B,是環境光和系統內部偏移的函數。可以從公式 6 得到結論是高幅度,高調製頻率和高調製對比度,可以增加精度;但高偏移會導致相機飽和從而降低精度。
高頻情況下,由於晶片矽半導體的特性,調製對比度會衰減。這是調製頻率的實際上線。具有快速下降沿頻率的飛行時間相機精度更高。
連續波測量基於相位,每 2π重複一次,意味著距離就會產生鋸齒。產生鋸齒的距離,稱為模糊距離,damb,用公式 7 表示:
距離出現循環,damb 就是最大的觀測距離。如果需要增加觀測距離,就需要減小調製頻率,根據公式 6,就會減小精度。
如果不想妥協,高級飛行時間系統就會採用多頻技術增加距離而不減小調製頻率。增加一個或多個調製頻率混合可以生成多頻技術。每個調製頻率都有一個不同的模糊距離,但真正的位置是多個頻率相交的地方。兩個調製頻率相交,稱為差(分)頻(率),通常很低,對應一個較長的模糊距離。雙頻技術方法如下所示。
圖 3: 用多頻技術增加距離
3.點雲
飛行時間傳感器,測量 2 維可尋址的陣列傳感器中的每個像素的距離,生成深度圖。深度圖是 3 維點雲的集合(每個點稱為一個體素)。比如,QVGA 傳感器的深度圖有 320x240 個體素。深度圖的 2 維表示是一個灰度圖,如圖 4 易拉罐所示,亮度比較亮,比較近的體素。圖4 顯示了一組易拉罐深度圖。
圖 4: 易拉罐深度圖
另外,深度圖可以通過一系列的點組成的三維空間來渲染,或者點雲。3D 點可以連接形
成網格,表明影射有材質貼圖。如果有同一物體的實時彩色圖像生成材質,就可以渲染出逼真的 3D 物體,如圖 5 所示。圖片中的人可以旋轉人像看不同的透視圖。
圖 5: 從點雲生成的人像
4.其他的視覺技術
飛行時間技術並不是唯一的視覺技術。這節我們將對比飛行時間技術和經典的 2D 機器視覺和其他的 3D 視覺技術。本節最後對這一比較作了總結。
2D 機器視覺
目前大部分機器視覺都是 2D,性價比高,光照容易控制。非常適合質量檢驗,瑕疵可以通過圖像處理檢測,比如邊緣檢測,模板匹配和形態學打卡/關閉。這些算法提取關鍵特徵參數,對比資料庫用於瑕疵檢測。為了檢測 Z 軸方向的瑕疵,需要加一個 1D 傳感器或 3D 視覺傳感器。
2D 視覺可用於無結構環境中,需要藉助高級圖像處理算法處理複雜的光照和陰影。如圖 6所示,這些圖像時同一張臉,但是不同的光照。陰影不同使得人臉面部識別非常困難。
相反,飛行時間傳感器生成的點雲用於計算機識別不會受到陰影的影響,因為光照是飛行時間傳感器自己提供的,深度信息使從相位數據中提取的,而不是圖像亮度。
圖 6: 同一張臉,不同的陰影
3D 機器視覺
魯棒的 3D 視覺克服了 2D 視覺的很多問題,深度信息可以輕鬆地分離前景和背景。這對場景的理解非常有用,其第一步就是從圖像的其他部分(背景)分割出興趣目標物體(前景)。
比如,手勢識別,就涉及到場景理解。用距離作為一個分類器,飛行時間傳感器就可以將人臉,手和手指從圖像中的其他部分分離出來,所以,手勢識別非常容易。
圖 7: 3D 視覺對比 2D 的優勢
接下來,我們將對比 ToF 和另外兩種 3D 視覺技術:立體視覺和結構光。
立體視覺 vs. ToF
立體相機通常使用兩個相機,類似於人的雙眼。給定空間中的 3D 點,分開的相機可以測量兩個相機圖像中的目標的視差。用針孔相機模型,可以計算每幅圖像中的目標位置,如圖所示,分別用α和β表示。根據角度,深度值,Z 就可以計算出來了。
圖 8: 視差測量計算立體視覺深度
立體視覺的主要調整是解決對應問題:給定一幅圖像中的一個點,如何找到另一相機圖像中相同的點?如果沒有對應關係,視差和深度值就無法精確地算出來。對應關係問題比較複雜,需要使用特徵提取和匹配中的算法。特徵提取和匹配也需要足夠的亮度和顏色。如果缺少這些變量,立體視覺效率就會下降,比如,測量同一顏色的牆面之間的距離時。ToF 相機就不會有這些限制,它並不依賴於顏色或紋理測量距離。
在立體視覺中,深度解析度誤差是距離的二次函數。相比 ToF 相機,作用於反射光,也對距離敏感。但不同的是,ToF 的這個弱點可以增加光照亮度來彌補;ToF 使用的亮度信息是用於增加精度的有效特徵,使用的是類似卡爾曼濾波這樣的技術。
立體視覺也有一些優勢。成本低,可以使用現有的相機。雙目相機符合人眼的直覺,他們可以看到相同的圖像。
結構光 vs. ToF
結構光是投射已知模板的光到物體上,檢查模板的變形。多個連續的代碼或相位移動模板
用於提取一幀深度圖,幀率非常低。低幀率就要求被拍物體保持不動,以避免模糊。
反射模式
對環境光的幹擾非常敏感;因此,結構光更適用於室內應用。結構光的主要優點是可以使用現有的 DLP 投影儀或高清彩色相機獲得相對高的空間(X-Y)解析度。
圖 9: 結構光原理
ToF 對機械結構上的設計和環境光相對不敏感,結構設計更緊湊。目前 ToF 技術解析度低於結構光技術。
ToF,立體相機和結構光的總結如表 1 所示。ToF 的主要優勢是性價比高,結構緊湊,深度圖像不受環境光影響,非常方便分離場景理解中的前景和背景。這使得 ToF 應用非常廣泛。
表 1: 3D 成像技術對比
ToF 可應用於汽車,工業,健康,智能廣告,遊戲和娛樂。ToF 傳感器也可以作為優秀的輸入設備用於靜態和移動計算設備。在汽車領域,ToF 傳感器可以實現自動駕駛,增加對環境安全的感知。在工業領域,ToF 傳感器可以作為 HMI,用於強制安全措施。在智能廣告中,ToF 傳感器可以識別人類手勢。在健康領域,手勢識別可以提供非接觸操作。手勢非常適合消費電子,尤其是遊戲,移動計算和家庭娛樂。ToF 傳感器天然地提供第一人稱直覺遊戲界面。可以用於遠程控制,滑鼠和觸控螢幕。總的來說,ToF 傳感器應用可分為手勢和非手勢。手勢應用強調人的交互和速度;非手勢偏重測量精度。
圖 10: ToF 技術應用於各種應用
手勢應用
手勢應用將人的活動(面部,手,手指或身體)轉換成指令控制遊戲機,智能電視或移動計算設備。比如,切換頻道可以滑動手指。這些應用要求快速的反應時間,中小距離,釐米級的精度和低功耗。
圖 11: 使用 3D-ToF 傳感器和 SoftKinetic iisu®軟體的手勢識別
非手勢應用
ToF 傳感器也用於非手勢應用。比如,汽車輔助駕駛中,ToF 傳感器當檢測到行人和物體時可以提醒司機確保安全。在機器人和自動化中,ToF 傳感器可以檢測產品瑕疵,當人和機器靠得太近時可以確保安全。ToF 傳感器可以 3D 掃描使 3D 列印價格下降。在這些應用中,空間精度非常重要。
6.開始設計
TI 的 3D-ToF 方案基於連續波方法,在功耗和精度上有所加強。
硬體
這套方案是 3 顆晶片:ToF 圖像傳感器,模擬前端和 ToF 控制器。提供了一套相機開發工具。圖 12 是系統框圖。
圖 12: 3D-ToF 系統框圖
軟體
SoftKinetic: http://www.softkinetic.com
Point-Cloud Library: http://www.pointclouds.org
OpenCV: http://www.opencv.org
7.總結
本文總結了 ToF 技術的原理。對比了 ToF 傳感器和 2D,其他 3D 機器視覺技術。探索了相關應用,提供了開發需要用的軟體。
參考文獻
[1] E. Charbon, M. Fisburn, R. Walker, R. Henderson, C. Niclass, SPAD-Based Sensors.
[2] D. Van Nieuwenhove, W. Van der Tempel, R. Grrotjans, M. Kuijk, 「Time-of-flight Optical RangingSensor based on a Current Assisted Photonic Demodulator」, Proceedings Symposium, IEEE/LEOSBenelux Chapter, 2006, Eindhoven.
[3] SoftKinetic DepthSenseTM sensors, http://www.softkinetic.com/en-us/products/depthsensesensors.aspx.
[4] J. Geng, 「Structured-Light 3D Surface Imaging: a Tutorial」, Advances in Optics and Photonics 3,128-160 (2011).
[5] M. Hansard, S. Lee, O. Choi, R. Horaud, 「Time-of-Flight Cameras: Principles, Methods andApplications」, Springer Brief in Computer Science, 2012.
[6] A.P.P Jongenelen, D. G. Bailey, A.D. Payne, A.A. Dorrington, D.A. Carnegie, Analysis of Errors in ToFRange Imaging with Dual-Frequency Modulation, IEEE Transactions on Instrumentation andMeasurement, Vo. 60, No. 5, May 2011, SSN0018-9456.
【版權聲明】泡泡機器人SLAM的所有文章全部由泡泡機器人的成員花費大量心血製作而成的原創內容,希望大家珍惜我們的勞動成果,轉載請務必註明出自【泡泡機器人SLAM】微信公眾號,否則侵權必究!同時,我們也歡迎各位轉載到自己的朋友圈,讓更多的人能進入到SLAM這個領域中,讓我們共同為推進中國的SLAM事業而努力!
【注】商業轉載請聯繫劉富強(liufuqiang_robot@hotmail.com)進行授權。普通個人轉載,請保留版權聲明,並且在文章下方放上「泡泡機器人SLAM」微信公眾帳號的二維碼即可。
【編輯】張韻