?
今天介紹一下深度圖像的獲取方法主要有哪些,以及這些方法會導致深度圖像中存在什么樣的問題。
在計算機視覺系統中,三維場景信息為圖像分割、目標檢測、物體跟蹤等各類計算機視覺應用提供了更多的可能性,而深度圖像(Depth map)作為一種普遍的三維場景信息表達方式得到了廣泛的應用。深度圖像的每個像素點的灰度值可用于表征場景中某一點距離攝像機的遠近。
獲取深度圖像的方法可以分為兩類:被動測距傳感和主動深度傳感。
In short:深度圖像的像素值反映場景中物體到相機的距離,獲取深度圖像的方法=被動測距傳感+主動深度傳感。
被動測距傳感
被動測距傳感中最常用的方法是雙目立體視覺[1,2],該方法通過兩個相隔一定距離的攝像機同時獲取同一場景的兩幅圖像,通過立體匹配算法找到兩幅圖像中對應的像素點,隨后根據三角原理計算出時差信息,而視差信息通過轉換可用于表征場景中物體的深度信息。基于立體匹配算法,還可通過拍攝同一場景下不同角度的一組圖像來獲得該場景的深度圖像。除此之外,場景深度信息還可以通過對圖像的光度特征[3]、明暗特征[4]等特征進行分析間接估算得到。
上圖展示了Middlebury Stereo Dataset中Tsukuba場景的彩色圖像、視差實際值與用Graph cuts算法得到的立體匹配誤差估計結果,該視差圖像可以用于表征場景中物體的三維信息。
可以看到,通過立體匹配算法得到的視差圖雖然可以得到場景的大致三維信息,但是部分像素點的時差存在較大誤差。雙目立體視覺獲得視差圖像的方法受限于基線長度以及左右圖像間像素點的匹配精確度,其所獲得的視差圖像的范圍與精度存在一定的限制。
In short, 常用于深度圖像增強領域的測試數據集Middlebury Stereo Dataset屬于被動測距傳感;被動測距傳感=兩個相隔一定距離的相機獲得兩幅圖像+立體匹配+三角原理計算視差(disparity)
主動測距傳感
主動測距傳感相比較于被動測距傳感最明顯的特征是:設備本身需要發射能量來完成深度信息的采集。這也就保證了深度圖像的獲取獨立于彩色圖像的獲取。近年來,主動深度傳感在市面上的應用愈加豐富。主動深度傳感的方法主要包括了TOF(Time of Flight)、結構光、激光掃描等。
TOF相機
TOF相機獲取深度圖像的原理是:通過對目標場景發射連續的近紅外脈沖,然后用傳感器接收由物體反射回的光脈沖。通過比較發射光脈沖與經過物體反射的光脈沖的相位差,可以推算得到光脈沖之間的傳輸延遲進而得到物體相對于發射器的距離,最終得到一幅深度圖像。
TOF相機所獲得的深度圖像有以下的缺陷:
1. 深度圖像的分辨率遠不及彩色圖像的分辨率
2. 深度圖像的深度值受到顯著的噪聲干擾
3. 深度圖像在物體的邊緣處的深度值易出現誤差,而這通常是由于一個像素點所對應的場景涵蓋了不同的物體表面所引起的。
除此之外,TOF相機的通常價格不菲。
結構光與Kinect
結構光是具有特定模式的光,其具有例如點、線、面等模式圖案。
基于結構光的深度圖像獲取原理是:將結構光投射至場景,并由圖像傳感器捕獲相應的帶有結構光的圖案。
由于結構光的模式圖案會因為物體的形狀發生變形,因此通過模式圖像在捕捉得到的圖像中的位置以及形變程度利用三角原理計算即可得到場景中各點的深度信息。
結構光測量技術提供了高精度并且快速的三維信息,其在汽車、游戲、醫療等領域均已經得到了廣泛的應用。
基于結構光的思想,微軟公司推出了一款低價優質的結合彩色圖像與深度圖像的體感設備Kinect,該設備被應用于如人機交互(Xbox系列游戲機)、三維場景重建、機器視覺等諸多領域。
微軟公司的Kinect有三個鏡頭,除了獲取RGB彩色圖像的攝像機之外,左右兩邊的鏡頭分別是紅外線發射器和紅外線CMOS攝像機,這兩個鏡頭共同構成了Kinect的深度傳感裝置,其投影和接收區域相互重疊,如下圖所示。
Kinect采用了一種名為光編碼(Light Coding)的技術,不同于傳統的結構光方法投射一幅二維模式圖案的方法,Kinect的光編碼的紅外線發射機發射的是一個具有三維縱深的“立體編碼”。光編碼的光源被稱為激光散斑,其形成原理是激光照射到粗糙物體或穿透毛玻璃后得到了隨機的衍射斑點。激光散斑具有高度的三維空間隨機性。當完成一次光源標定后,整個空間的散斑圖案都被記錄,因此,當物體放進該空間后,只需得知物體表面的散斑圖案,就可以知道該物體所處的位置,進而獲取該場景的深度圖像。紅外攝像機捕獲的紅外散斑圖像如下圖所示,其中左側的圖片展現了右側圖片中框中的細節。
Kinect低廉的價格與實時高分辨率的深度圖像捕捉特性使得其在消費電子領域得到了迅猛發展,然而Kinect的有效測距范圍僅為800毫米到4000毫米,對處在測距范圍之外的物體,Kinect并不能保證準確深度值的獲取。Kinect捕獲的深度圖像存在深度缺失的區域,其體現為深度值為零,該區域意味著Kinect無法獲得該區域的深度值。而除此之外,其深度圖像還存在著深度圖像邊緣與彩色圖像邊緣不對應、深度噪聲等問題。Kinect所捕獲的彩色圖像與深度圖像如下圖所示。
Kinect所捕獲的深度圖像產生深度缺失區域的原因多種多樣。除了受限于測距范圍,一個重要的原因是目標空間中的一個物體遮擋了其背后區域。這種情況導致了紅外發射器所投射的圖案無法照射到背后區域上,而背后區域卻有可能被處在另一個視角的紅外攝像機捕捉到,然而該區域并不存在散斑圖案,該區域的深度信息也就無法被獲得。【Oops,原來遮擋是這樣導致了深度值缺失,作者果然厲害,兩句話讓人茅塞頓開!】物體表面的材質同樣會影響Kinect深度圖像的獲取。當材質為光滑的平面時,紅外投射散斑光束在物體表面產生鏡面反射,紅外攝像機無法捕捉該物體反射的紅外光,因此也就無法捕獲到該表面的深度;當材質為吸光材料時,紅外投射散斑被該表面所吸收而不存在反射光,紅外攝像機同樣無法捕捉到該表面的深度信息。【材質對深度缺失的影響,分析到位】除此之外,Kinect所捕獲的深度圖像存在的與彩色圖像邊緣不一致的問題主要是由彩色攝像機與紅外攝像機的光學畸變引起的。
激光雷達
激光雷達測距技術通過激光掃描的方式得到場景的三維信息。其基本原理是按照一定時間間隔向空間發射激光,并記錄各個掃描點的信號從激光雷達到被測場景中的物體,隨后又經過物體反射回到激光雷達的相隔時間,據此推算出物體表面與激光雷達之間的距離。
激光雷達由于其測距范圍廣、測量精度高的特性被廣泛地用于室外三維空間感知的人工智能系統中,例如自主車的避障導航、三維場景重建等應用中。下圖展示的是激光雷達Velodyne HDL-64E在自主車中的應用,該激光雷達能夠獲取360°水平方向上的全景三維信息,其每秒能夠輸出超過130萬個掃描點的數據。全向激光雷達曾在美國舉辦的DARPA挑戰賽中被許多隊伍所采用,其也成為了自主行駛車輛的標準配置。
然而,激光雷達所捕獲的三維信息體現在彩色圖像坐標系下是不均勻并且稀疏的。由于單位周期內,激光掃描的點數是有限的,當把激光雷達捕獲的三維點投射到彩色圖像坐標系下得到深度圖像時,其深度圖像的深度值以離散的點的形式呈現,深度圖像中許多區域的深度值是未知的。這也就意味著彩色圖像中的某些像素點并沒有對應的深度信息。
總結
用一個圖來總結下內容吧。
參考論文:
浙大2014年劉俊毅的碩士論文《彩色圖像引導的深度圖像增強》
編輯:黃飛
?
評論
查看更多