發布日期:2022-10-09 點擊率:79
3D傳感器的原理 第1張" title="3d傳感器原理:3D傳感器的原理 第1張-傳感器知識網"/>
在計算機視覺系統中,三維場景信息為圖像分割、目標檢測、物體跟蹤等各類計算機視覺應用提供了更多的可能性,而深度圖像(Depth map)作為一種普遍的三維場景信息表達方式得到了廣泛的應用。深度圖像的每個像素點的灰度值可用于表征場景中某一點距離攝像機的遠近。?
獲取深度圖像的方法可以分為兩類:被動測距傳感和主動深度傳感。?
In short:深度圖像的像素值反映場景中物體到相機的距離,獲取深度圖像的方法=被動測距傳感+主動深度傳感。
被動測距傳感
被動測距傳感中最常用的方法是雙目立體視覺[1,2],該方法通過兩個相隔一定距離的攝像機同時獲取同一場景的兩幅圖像,通過立體匹配算法找到兩幅圖像中對應的像素點,隨后根據三角原理計算出時差信息,而視差信息通過轉換可用于表征場景中物體的深度信息?;诹Ⅲw匹配算法,還可通過拍攝同一場景下不同角度的一組圖像來獲得該場景的深度圖像。除此之外,場景深度信息還可以通過對圖像的光度特征[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挑戰賽中被許多隊伍所采用,其也成為了自主行駛車輛的標準配置。?
然而,激光雷達所捕獲的三維信息體現在彩色圖像坐標系下是不均勻并且稀疏的。由于單位周期內,激光掃描的點數是有限的,當把激光雷達捕獲的三維點投射到彩色圖像坐標系下得到深度圖像時,其深度圖像的深度值以離散的點的形式呈現,深度圖像中許多區域的深度值是未知的。這也就意味著彩色圖像中的某些像素點并沒有對應的深度信息。?
光譜共焦技術是一種基于軸向色差和色彩編碼技術的光學檢測方法,將傳感器發射端發出的復色光色散為波長連續的光譜,通過色彩編碼,將波長準確映射到被測物,通過測量反射光的波長,建立傳感器距離與波長間的對應關系,獲取被測物的位置信息。
熵智科技自研的3D線光譜共焦傳感器SZ-Spec系列,采用同軸共焦光學設計,測量精度高、角度適應性廣、測量穩定性高,環境適應性強,出色的動態范圍和信噪比,能夠輕松地用于測量物體的厚度、平面度、微觀形貌、微小瑕疵、翹曲度等,解決3D輪廓精密測量問題,滿足半導體、3D玻璃、精密點膠、精密零部件等測量和檢測需求。
3D
視覺傳感器
早期
3D
傳感系統一般都使用
LED
作為紅外光源,但是隨著
VCSEL
芯片技術的成
熟,在精確度、小型化、低功耗、可靠性等角度全方面占優,因而現在常見的
3D
攝像頭
系統一般都采用
VCSEL
作為紅外光源。
主
動測距方法的基本思想是利用特定的、
人為控制光源和聲源對物體目標進行照射,
根據
物體表面的反射特性及光學、
聲學特性來獲取目標的三維信息。
其特點是具有較高的測距精
度、抗干擾能力和實時性,具有代表性的主動測距方法有結構光法、飛行時間法、和三角測
距法。
根據投影光束形態的不同,
結構光法又可分為光點式結構光法、
光條式結構光法和光面
式結構光法等。3D傳感器的原理 第3張" title="3d傳感器原理:3D傳感器的原理 第3張-傳感器知識網"/>
本人所在行業屬于3D視覺方向,因此最近也是學習了很多3D視覺的知識,這次專門總結一下。
傳統工業機器視覺中,2D指的是X方向加Y方向,那么3D視覺自然就是加了一個Z方向。目前我接觸到的公司產品是3D激光輪廓儀,也叫3D激光傳感器,線激光傳感器,采用的是激光三角測距法。
3D相機的工作原理
在傳統的2D視覺中,一套詳細的解決方案最基礎的是相機、鏡頭、和光源。根據客戶的需求以及現場的生產環境,通過一些公式計算出符合要求的相機和鏡頭,最后根據客戶的成本需求來選出最合適的相機加鏡頭。最后的光源是整套解決方案中比較難的一個點,要根據客戶所測物件的不同來選擇合適的光源,保證能夠清晰的成像。大家可以看出來,2D視覺對于工程師的要求比較高,要擁有豐富的項目經驗,有一定的光學和軟件知識,而3D相機相對來說就要簡單一些。
一般3D相機都會集成在一個框架內,不會像2D視覺系統那樣區分開來。這里我放一張基恩士最新型的一款3D激光輪廓儀給大家看一看:
基本上目前市面上的3D激光相機都是這個樣子,里面集成了激光發射器、鏡頭以及感光芯片。下面我們就來好好講一講3D相機的工作原理。
在3D相機中,取代光源的是激光發射器,通過復雜的光學系統設計,激光發射器發出的激光會形成一條直線,激光投射到物體表面就會形成反射,在光學系統的設計下,反射光會被鏡頭捕捉到,最后通過鏡頭反射到感光芯片上。因此,3D相機內部最重要的三個部件分別為激光發射器,鏡頭和感光芯片,同時還會加一些FPGA或者ARM用于圖形處理,比如圖像算法以及圖像濾波。一般情況下,激光發射器需要優秀的光學工程師進行設計,比如不同的透鏡反射出來的激光也會有不同的效果;鏡頭基本上也都是正常我們看見的鏡頭,感光芯片一般會選擇高精度的CMOS芯片。
一般我們把激光線方向稱為X方向,也就是激光照射出來的那條線定義為X軸,高度為Z方向,通過一次靜態拍照,我們可以得到X和Z兩個方向的數據,那么Y方向呢,我們一般把運動方向記為Y方向,也就是說。我們可以通過移動相機或者移動物體,并且讓相機持續不斷的拍照,就形成了連續的Y方向數據,最后組合在一起,就是我們所需要的3D數據了。
2. 3D相機的測量原理
下面我們來了解一下3D激光相機的測距原理,我司采用的是激光三角測距法,一般工業領域都是普遍采用這個方法,因為激光三角測距法的精度比較高,抗干擾能力也很強,此外,還有很多的測距方法,主要分為兩個大類,分別是被動測量類和主動測量類。被動測量類分為單目視覺、雙目視覺和多目視覺;主動測量類分為結構光法,TOF飛行時間法,激光三角測距法。TOF飛行時間法也是一種比較常見的3D光學測距方法,主要用于手機領域,比如手機的人臉識別,因為TOF飛行時間的測量范圍比較大,可以達到20米到30米,比較適合手機領域進行一些AR/VR交互。
激光三角測距法我就不細講了,因為網上的資料實在是太多了,直接百度搜索激光三角測距法原理即可。
3. 3D相機中主要使用到的一些技術參數
在與客戶的接觸中,經??蛻魰稍円恍┯布祮栴},我發現網上關于3D視覺的資料真的少的可憐,所以好好整理了一番。
在2D視覺中,會有許多專業的術語名詞,比如視場,分辨率,重復精度等,3D視覺中也是如此。
在3D視覺中大致以以下術語:
視野范圍/視場(FOV)
是指在某一工作距離下傳感器激光線方向能掃到的最大寬度。在2D視覺中,視場一般是兩個值,即X方向*Y方向,而3D視覺只有一個值。一般情況下就是在傳感器最佳工作距離下激光線的長度,注意是在工作距離下的長度,畢竟激光發射出來形成一個光面,如果沒有遮擋理論上是無限長的。
此外,3D相機還分為近視場,中視場,遠視場。
測量范圍
傳感器的近視場到遠視場的距離。這個概念有點像2D視覺中的景深,即Z軸可清晰成像的范圍。
工作距離
傳感器下表面到被測物表面的距離。這里的傳感器指的就是相機,每臺相機的工作距離是不一樣的,一定要記住工作距離,不然選好了相機發現客戶現場的安裝高度達不到相機的工作距離要求,那么你前期的準備工作就全部浪費掉了。
分辨率
傳感器可以識別的最小尺寸。跟圖像傳感器一般是CMOS芯片的晶圓尺寸也就是感光元件有關系。
線性度
也叫準確度,直線度。一般指的是Z線性度,為偏差值(參考值與測量值的差值)與測量范圍的比值
重復精度
也叫做重復性。是指將被測物重復掃描4100次后的最大偏差值。
垂直分辨率
能夠測量出的最小高度
水平分辨率
能夠測量的最小寬度
運動方向
在運動方向還有幾個術語如下:
線間距:反映傳感器接收到的觸發信號間隔。這個參數跟編碼器信號或者外部信號頻率有關系。比如假設一萬個脈沖走10毫米,那么信號間隔就為1微米。
掃描頻率(HZ):單位時間內傳感器能夠獲取的3D輪廓線數目,反映傳感器當前配置下的處理極限。比如2K那就是一秒最多可以跑兩千條線。這個參數也是客戶經常會問到的一個參數。一般情況下,掃描范圍越大,曝光時間越長,掃描頻率越低。這個參數還分為全幅掃描頻率和ROI掃描頻率。
公式:最大掃描速度=掃描頻率*線間距。假設我這里有一個相機掃描頻率為1000,線間距為1um,那么1秒他最快只能掃1mm,如果被測物體長1cm,那么我需要掃描至少10秒鐘才能將這個物體的長度掃出來。一般情況下,相機的最大掃描頻率是固定的,所以只能改動線間距,線間距和編碼器或者外部信號有關,也就是說,如果想加快掃描速度,那么只能加大編碼器的信號,也就是讓物體或者相機的移動速度變快。但是速度過快也可能導致缺少數據細節,導致某些缺陷沒有捕捉到。
下面這張圖就是對3D傳感器的一些參數的可視化,來自于某視覺公司的培訓PPT。
下面我們來看一下基恩士的產品目錄中的參數列表:
對比前面的參數可視化圖,是不是覺得這些參數都比較容易理解了。
現在對于這些參數是不是一目了然。
將一些專業術語理解透徹,不僅在面對客戶時可以更加專業,也是為了可以在客戶現場更好的解決問題。
目前3D視覺有著2D視覺無法比擬的優勢,但3D視覺同樣也有一些重難點需要解決。
比如如何知道一個物體能否被準確的掃描出來呢,測量是否成功取決于有多長時間可以用于測量。被測物體通過探頭光束的速度越慢,越多時間可以被用于測量。因此,不能簡單的認為一個靜態測量可行,就一定意味著動態測量也是可行的。測量的結果也取決于被測物體表面的反光特性。也就是說被測物體表面的反光性或吸光性的強弱,會決定是否可以測得有效信號。被測材料本身也會影響測量結果。舉例來講,如果半透明被測物體的透明度過高,測量信號可能完全失真了。最后一個應該考慮的因素是被測物體的輪廓缺陷,可能產生陰影的輪廓以及多次反射的表面影響。以上這些基本因素都可能明顯影響測量信號質量以及測量結果。
除去上面提到的這些影響因素,一個清晰可識別的輪廓表面反射的持續信號仍然可能是難以使用的缺損信號。如果想避免這種情況,輪廓儀的每一個獨立參數都必須正確設置并適合被測物體。使用正確的濾波器以及曝光時間的設定,往往能夠改善不良信號,經過不斷嘗試最終可以完成測試。舉例來講,測量一個快速移動的黑色橡膠被測物體,較短的曝光時間和被測物體的高吸光性都會更容易導致一個不良的測量結果。而與之相反,如果黑色被測物體不移動或較慢移動,較長的曝光時間可能更有助于獲得完整的輪廓信息。但是這樣就會影響到檢測速度,各有利弊。
目前3D視覺在掃描透明物體比如玻璃的時候效果往往不佳,因為玻璃是可以直接讓激光透射過去的,導致CMOS芯片上難以成像,還有一個就是多重反射的問題,也會造成成像錯誤。
此外,3D視覺還會遇到一個視覺陰影問題,也就是處于相機掃描角度的原因,會出現視野盲區。
所幸是目前學術界對于計算機詩句和3D視覺很是熱衷,越來越多的新技術開始出現,開始彌補上述的缺點,據我所知,上述這些問題現在都已經有看了可行且可以落地的結局方法,真是可喜可賀。
以上就是我大致的總結,如果有讀者有幸讀此文章,并且手里有更多3D視覺的資料,最好是關于3D傳感器這塊的,無論是硬件方面還是光學方面,亦或是算法,濾波方面。都可以分享給我。謝謝。
學海無涯,學無止境,大家共勉。
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原