3D相机调研
最近因為自己實驗需要配置一個3D相機,安裝在機械臂上實現eye in arm的自動化引導過程,調研結果記錄如下:
3D相機又稱為深度相機,即通過該相機能檢測出拍攝空間的景深距離(與普通相機(2D的最大區別))。
普通彩色相機(2D相機)拍攝到的圖片能將看到相機視角內的所有物體記錄下來,但是其記錄的數據不包含這些物體離相機的距離,我們僅僅是通過圖像的語義分析來判斷出哪些物體離我們比較遠,哪些物體比較近,只是沒有具體的數據表示。而3D相機通過獲取到的數據,我們可以準確知道圖像中每個點離攝像頭的距離,這樣再加上該點在2d圖像中的(x,y坐標),我們就能獲取圖像中每個點的三維空間坐標,通過三維坐標就能還原真實場景,實現場景的建模等操作。
課外擴展:我們的眼睛就是一個天然的3D相機,這主要是由于偏光原理,當人眼在看任何物體時,由于兩只眼睛在空間有一定間距約為5cm,即存在兩個視角,這樣形成左右兩眼所看到的圖像不完全一樣,稱為視差。這種細微的視差通過視網膜傳遞到大腦,就能顯示出物體的前后遠近產生強烈的立體感。因此根據這一奇妙現象,人類就通過兩個一定距離的普通攝像頭來模擬人眼獲取3D數據。這就是最初的雙目立體相機,鑒于雙目相機的一些缺陷,后來人們又發明了結構光和TOF方法來獲取3D數據。(目前3D相機方案就是這三種)
目前主流的深度探測技術是結構光,TOF,和雙目。
(1)結構光(Structured-light):
結構光通過采用特定波長的不可見的紅外激光作為光源,他發射出來的光經過一定的編碼投影在物體上,通過一定算法來計算返回的編碼圖案的畸變來得到物體的位置和深度信息,根據編碼圖案不同一般有條紋結構光--enshape,編碼結構光--Mantis Vision,Realsense(F200),散斑結構光,奧比中光。
結構光代表公司:奧比中光、蘋果(Prime Sense)、微軟Kinect-1、英特爾RealSense、Mantis Vision等。
(2)光飛行時間法(TOF,Time of flight):
TOF是Time of flight的簡寫,直譯是飛行時間的意思,測量光飛行時間來取得距離。所謂飛行時間法3D成像,直白來說,是通過給目標連續發送激光脈沖,然后用傳感器接收從物體返回的光,通過探測光脈沖的飛行(往返)時間來得到目標物距離。因為光速激光,通過直接測光飛行時間實際不可行,一般通過檢測一定手段調制后的光波的相位偏移來實現。
TOF法根據調制方法的不同,一般可以分為兩種:脈沖調制(Pulsed Modulation)和連續波調制(Continuous Wave Modulation)。脈沖調制需要非常高精度時鐘進行測量,且需要發出高頻高強度激光,目前大多采用檢測相位偏移辦法來實現TOF功能。
下圖描述了TOF相機(連續波)的基本原理,實際應用中,通常采用的是正弦波調制。由于接收端和發射端的正弦波的相位偏移和物體距離攝像頭的距離成正比,因此可以利用相位偏移來測量距離。?
因為TOF并非基于特征匹配,這樣在測試距離變遠時,精度也不會下降很快,目前無人駕駛以及一些高精度的消費類Lidar基本都是采用該方法來實現。
TOF的優點主要有:
1)檢測距離遠。在激光能量夠的情況下可達幾十米。
2)受環境光干擾比較小。
缺點:
1)對設備要求高,特別是時間測量模塊。
2)資源消耗大。該方案在檢測相位偏移時需要多次采樣積分,運算量大。
3)邊緣精度低。
4)限于資源消耗和濾波,幀率和分辨率都沒有辦法做到較高,目前消費類最大就是VGA。
?
TOF代表公司:微軟Kinect-2、PMD、SoftKinect、聯想Phab。
(3)雙目視覺(Stereo):
雙目立體視覺是基于視差原理并利用成像設備從不同的位置獲取被測物體的兩幅圖像,通過計算圖像對應點間的位置偏差,來獲取物體三維幾何信息的方法。目前有主動雙目,被動雙目之分,被動雙目就是采用可見光,好處是不需要額外光源,但是晚上無法使用,主動雙目就是主動發射紅外激光做補光,這樣晚上也能使用。
雙目視覺僅僅依靠圖像進行特征匹配,對附加設備要求低,在使用雙目視覺相機前必須對雙目中兩個攝像頭的位置進行精確標定,下面圖片很好的簡單闡述了雙目相機如何獲取物體的深度數據。同一直線上的3個點在下端的相機都投影到cmos同一個點,因此單獨的這個相機沒法分辨三個點的距離,但是這三個點在上端相機的投影位置不同,通過三角測量方法和兩個相機基線距離B,我們就可以計算出這三個點離相機平面的距離。
當然完整的雙目深度計算非常復雜,主要涉及到左右相機的特征匹配,計算會非常消耗資源。
雙目相機的主要優點有:
1)硬件要求低,成本低。普通CMOS相機即可。
2)室內外都適用,只要光線合適,不要太昏暗。
雙目的缺點:
1)對環境光照非常敏感。光線變化導致圖像偏差大,進而會導致匹配失敗或精度低。
2)不適用單調缺乏紋理的場景。雙目視覺根據視覺特征進行圖像匹配,沒有特征會導致匹配失敗。
3)計算復雜度高。該方法是純視覺的方法,對算法要求高,計算量大。
4)基線限制了測量范圍。測量范圍和基線(兩個攝像頭間距)成正比,導致無法小型化。
雙目視覺代表公司:Leap Motion、ZED、大疆;
PS:結構光只有一個紅外攝像頭,所以只有一張相片。(不管是雙目還是結構光,彩色攝像頭用于獲取物體彩色信息,和3D技術無關)
從以上三個主流的3D相機成像方案來看,各有優劣,從實際應用場景來看,在非無人駕駛領域,結構光,特別是散斑結構光的用途最廣泛。因為從精度,分辨率還有應用場景的范圍來看雙目和TOF都沒有辦法做到最大平衡。而且對于結構光容易受環境干擾,特別是太陽光影響問題,鑒于此類相機都有紅外激光發射模塊,非常容易改造為主動雙目來彌補該問題。當然這三種方案在發展過程中也會有一些融合,如主動雙目+結構光,取長補短,使3D相機能適應更多場景。也有一些同時使用,如手機前置基本確認會采用結構光來做Faceld,但是后置用來做AR應用,結構光和TOF都有機會。
參考鏈接:https://blog.csdn.net/qq_41925420/article/details/95301810
?
總結
- 上一篇: Paper4:Voxel-Based E
- 下一篇: 机器学习中算法的性能评估