一文詳解深度相機之TOF成像
以下文章來(lái)源于CV研習社 ,作者愛(ài)做菜的煉丹師
本文通過(guò)介紹TOF相機的成像過(guò)程,帶大家了解TOF相機中脈沖法和連續波調制這兩種技術(shù)原理,并詳細的分析每種方法的實(shí)現細節和各自?xún)?yōu)缺點(diǎn),對連續波調制方法深入其相位差原理,單頻相位測距的限制及如何解決模糊距離等問(wèn)題。
0 前情回顧
小編過(guò)了一個(gè)咸魚(yú)般的五一,躺尸在家被五大過(guò)程組,十大知識體系折磨個(gè)半死,做題全憑感覺(jué)。
記得放假前一天和朋友吃飯,被問(wèn)到TOF的原理是什么?小編弱弱的回答****脈沖波打到物體返回后統計光的運行時(shí)間從而計算距離。被大佬用質(zhì)疑的眼神瞄了一下,然后啪嗒啪嗒給我解釋了一番連續調制波的原理。
小編總感覺(jué)哪里有些問(wèn)題,做了這么久激光雷達感知算法,那些Velodyne-16,Horizon確實(shí)是基于脈沖波的技術(shù)原理呀,不過(guò)再往下問(wèn)具體傳感器內部是怎么工作的,小編也是一知半解。
下面我們來(lái)好好補一補有關(guān)TOF相機的基本知識,劇透一下原來(lái)TOF相機既可以基于脈沖波的光學(xué)快門(mén)方法又可以基于連續調制波的方法。
1 什么是TOF相機
在雙目成像的文章中,我們說(shuō)過(guò)雙目相機是一種被動(dòng)接收自然光的傳感器,通過(guò)接收自然光利用三角測距的方式描述三維環(huán)境。本文的TOF相機則是一種主動(dòng)****紅外光的傳感器,通過(guò)****光脈沖并接收打到物體反射回來(lái)的脈沖信號,最后計算光脈沖的飛行時(shí)間得到目標物體的距離。
說(shuō)到這里我們可能第一反應是這不就是激光雷達的工作原理嘛!確實(shí)很相似,但是機械式或混合固態(tài)激光雷達采用逐點(diǎn)掃描的方式感知環(huán)境信息,而TOF相機以面陣的方式得到深度圖。
小編最早接觸的TOF相機就是微軟的Kinect 2.0。Kinect系列很有意思,第一代基于結構光原理做的深度相機,第二代基于TOF原理做的深度相機,當時(shí)小編以為第三代是不是要用雙目原理做深度相機了,誓把深度成像的技術(shù)都玩個(gè)遍的時(shí)候它停產(chǎn)了。如下圖所示:上面是Kinect 1.0,下面是Kinect 2.0(長(cháng)得太丑)
TOF相機輸出的深度圖在2D空間表示為灰度圖像,每個(gè)像素點(diǎn)對應一個(gè)距離值,其中強度越亮表示距離越近,如果光源被吸收或者未收到反射信號則呈現黑色。如下圖所示:
在深度圖的基礎上,配合相機的外參數據可以轉換三維點(diǎn)云。假如你又同時(shí)有一顆RGB相機,能夠將物體表面紋理映射到點(diǎn)云體素上,那么一張栩栩如生的三維渲染模型就出來(lái)了,如下如所示:
2 TOF相機的技術(shù)原理
****模塊和接收模塊是TOF相機的核心部分,通過(guò)內部的數據處理計算出深度信息。至于采用什么技術(shù)計算深度信息,我們提到了兩種方法:
基于脈沖法原理簡(jiǎn)單:類(lèi)似于我們有一個(gè)計時(shí)器,按下開(kāi)始鍵****一束脈沖波出去,當遇到障礙物后返回,當被接收器收到后按下停止鍵。根據計時(shí)器記錄的時(shí)間和光的速度可以計算出相機到物體的距離。
公式如:Distance = 1/2 × c × Δt
其中c表示光在空氣中傳播的速度,Δt表示脈沖信號從相機到目標往返的時(shí)間。
通過(guò)一個(gè)高頻率的時(shí)鐘驅動(dòng)計數器對收發(fā)脈沖之間的時(shí)間進(jìn)行計數,使得計數時(shí)鐘的周期必須遠小于發(fā)送脈沖和接收脈沖之間的時(shí)間才能夠保證足夠的精度。但是如果要達到毫米級別的測量,對控制時(shí)鐘,****單元等電子元器件的精度都是一項挑戰。這就是為什么無(wú)人駕駛中應用的激光雷達傳感器?;诿}沖法,因為該方法比較適合中遠距離的測量。
但是在機器人等應用中使用的TOF相機大多采用的是連續波調制的方法:使用調制光照射場(chǎng)景, 并測量通過(guò)場(chǎng)景中的物體反射后返回光的相位延遲。得到相位延遲后, 再使用正交采樣技術(shù)測量間接得到距離。
公式如:Distance = 1/2 × c × ? × T/2π
其中c表示光在空氣中傳播的速度,T表示調制周期,?表示****和接收波形的相位差。
該方法比較適合中短距離的測量,精度往往可以達到毫米級。
通過(guò)對比上述兩種方法的基本原理,我們不難發(fā)現:
脈沖法測量方式簡(jiǎn)單,占空比窄檢測距離遠;但是它易受環(huán)境光和元器件精度影響,測量精度相對較低。
相位差可以消除測量器件帶來(lái)的固定偏差但是采樣次數多,導致測量耗時(shí)幀率低。
3 如何將相位偏移轉換成距離?
仔細看兩種方法的距離求解公式,其實(shí)很相似,最終都是距離 = 速度 × 時(shí)間。唯一區別在于時(shí)間是怎么得到的?
脈沖法求時(shí)間比較直接,這里沒(méi)有什么好解釋的,就是到達時(shí)間-****時(shí)間即可。
相位差也是可以轉換成時(shí)間的,通常某一定頻率 f 的相位差時(shí)間 = 相位差的度數 / 2πf 。這里就有小伙伴會(huì )問(wèn)相位差的度數是怎么求的?
在連續波調制過(guò)程中通常將連續波近似為正弦波劃分成4個(gè)窗口進(jìn)行采樣,并且采樣時(shí)間間隔相同。如下圖所示:
推導過(guò)程就不貼了,最終的結果為:
? = arctan((Q3-Q4) / (Q1-Q2))
相位差求取中的(Q3-Q4)和(Q1-Q2)相對于脈沖調試法消除了由于測量器件或者環(huán)境光引起的固定偏差。并且方程中求商的過(guò)程減少了來(lái)自距離測量的恒定增益影響,比如系統放大和衰減或者反射響度等問(wèn)題。
4 重復周期下的相移如何計算距離?
在信號與系統中提到過(guò)相位與延時(shí)的關(guān)系,其中2π為一個(gè)符號周期時(shí)間,如果采用相位差法測距,怎么判斷目標位于第幾個(gè)周期呢?
事實(shí)上采用單一頻率進(jìn)行相位測距,確實(shí)無(wú)法分辨超過(guò)一個(gè)周期的距離值。簡(jiǎn)單粗暴一點(diǎn)的做法就是根據最大測量距離來(lái)調節頻率,不過(guò)頻率越高意味著(zhù)距離分辨率越低,從而測量精度越低。所以在單一頻率下會(huì )出現距離和精度無(wú)法同時(shí)滿(mǎn)足的情況。
為解決單頻造成的模糊距離問(wèn)題,可以采用多頻率技術(shù)來(lái)延長(cháng)測量距離同時(shí)不降低調制頻率。多頻率技術(shù)的工作原理就是將一個(gè)或多個(gè)調制頻率添加到混合。每個(gè)調制頻率將有不同的模糊距離,但真正的位置是在不同的頻率一致。當兩個(gè)調制一致的頻率,稱(chēng)為拍頻,通常是較低的,并對應一個(gè)更長(cháng)的模糊距離。如下圖所示:
此解釋來(lái)源于2014年的一篇文章:Time-of-Flight Camera – An Introduction
有興趣的小伙伴可以私我要文章(還有一篇更詳細的原理解釋?zhuān)篢OF Camera Principles Methods and Applications)
5 TOF相機的特性對比
市場(chǎng)上比較常見(jiàn)的視覺(jué)傳感器包括單目相機、雙目相機、結構光相機、全景相機、紅外相機、TOF相機等。通常在談到深度相機時(shí)會(huì )把TOF和結構光、雙目這三種技術(shù)拿出來(lái)進(jìn)行對比。
TOF技術(shù)相比結構光實(shí)現難度較低,****信號遇到目標返回即可,不像結構光需要先打出激光散斑編碼,然后再去提取編碼特征。而且TOF受環(huán)境影響較小,不存在結構光激光散斑在戶(hù)外會(huì )被淹沒(méi)的問(wèn)題,具有較好的抗干擾能力。但是TOF相機的分辨率低,所以通常只適用于一些近距離的避障導航功能。
TOF技術(shù)相比雙目成像技術(shù),因為其主動(dòng)****光源,輸出的深度數據是通過(guò)解相位計算得到,所以很大程度上不受陰影的影響,在昏暗場(chǎng)景依然有良好的效果。而且TOF生成深度圖沒(méi)有復雜的特征配準、三角測量等算法加持,所以不依賴(lài)特征匹配的好壞,也就不受物體表面紋理,環(huán)境光照射角度等影響。在生成深度圖的實(shí)時(shí)性上自然優(yōu)于雙目經(jīng)過(guò)一大堆復雜計算的成像過(guò)程。
本文僅做學(xué)術(shù)分享,如有侵權,請聯(lián)系刪文。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。