本人所在行業屬于3D視覺方向,因此最近也是學習了很多3D視覺的知識,這次專門總結一下。
傳統工業機器視覺中,2D指的是X方向加Y方向,那么3D視覺自然就是加了一個Z方向。目前我接觸到的公司產品是3D激光輪廓儀,也叫3D激光傳感器,線激光傳感器,采用的是激光三角測距法。
1.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次后的最大偏差值。
●垂直分辨率
能夠測量出的最小高度
●水平分辨率
能夠測量的最小寬度
●運動方向
在運動方向還有幾個術語如下:
1.線間距:反映傳感器接收到的觸發信號間隔。這個參數跟編碼器信號或者外部信號頻率有關系。比如假設一萬個脈沖走10毫米,那么信號間隔就為1微米。
2.掃描頻率(HZ):單位時間內傳感器能夠獲取的3D輪廓線數目,反映傳感器當前配置下的處理極限。比如2K那就是一秒最多可以跑兩千條線。這個參數也是客戶經常會問到的一個參數。一般情況下,掃描范圍越大,曝光時間越長,掃描頻率越低。這個參數還分為全幅掃描頻率和ROI掃描頻率。
3.公式:最大掃描速度=掃描頻率*線間距。假設我這里有一個相機掃描頻率為1000,線間距為1um,那么1秒他最快只能掃1mm,如果被測物體長1cm,那么我需要掃描至少10秒鐘才能將這個物體的長度掃出來。一般情況下,相機的最大掃描頻率是固定的,所以只能改動線間距,線間距和編碼器或者外部信號有關,也就是說,如果想加快掃描速度,那么只能加大編碼器的信號,也就是讓物體或者相機的移動速度變快。但是速度過快也可能導致缺少數據細節,導致某些缺陷沒有捕捉到。
下面這張圖就是對3D傳感器的一些參數的可視化,來自于某視覺公司的培訓PPT。
下面我們來看一下基恩士的產品目錄中的參數列表:
對比前面的參數可視化圖,是不是覺得這些參數都比較容易理解了。
現在對于這些參數是不是一目了然。
將一些專業術語理解透徹,不僅在面對客戶時可以更加專業,也是為了可以在客戶現場更好的解決問題。
目前3D視覺有著2D視覺無法比擬的優勢,但3D視覺同樣也有一些重難點需要解決。
比如如何知道一個物體能否被準確的掃描出來呢,測量是否成功取決于有多長時間可以用于測量。被測物體通過探頭光束的速度越慢,越多時間可以被用于測量。因此,不能簡單的認為一個靜態測量可行,就一定意味著動態測量也是可行的。測量的結果也取決于被測物體表面的反光特性。也就是說被測物體表面的反光性或吸光性的強弱,會決定是否可以測得有效信號。被測材料本身也會影響測量結果。舉例來講,如果半透明被測物體的透明度過高,測量信號可能完全失真了。最后一個應該考慮的因素是被測物體的輪廓缺陷,可能產生陰影的輪廓以及多次反射的表面影響。以上這些基本因素都可能明顯影響測量信號質量以及測量結果。
除去上面提到的這些影響因素,一個清晰可識別的輪廓表面反射的持續信號仍然可能是難以使用的缺損信號。如果想避免這種情況,輪廓儀的每一個獨立參數都必須正確設置并適合被測物體。使用正確的濾波器以及曝光時間的設定,往往能夠改善不良信號,經過不斷嘗試最終可以完成測試。舉例來講,測量一個快速移動的黑色橡膠被測物體,較短的曝光時間和被測物體的高吸光性都會更容易導致一個不良的測量結果。而與之相反,如果黑色被測物體不移動或較慢移動,較長的曝光時間可能更有助于獲得完整的輪廓信息。但是這樣就會影響到檢測速度,各有利弊。
目前3D視覺在掃描透明物體比如玻璃的時候效果往往不佳,因為玻璃是可以直接讓激光透射過去的,導致CMOS芯片上難以成像,還有一個就是多重反射的問題,也會造成成像錯誤。
此外,3D視覺還會遇到一個視覺陰影問題,也就是處于相機掃描角度的原因,會出現視野盲區。
所幸是目前學術界對于計算機視覺和3D視覺很是熱衷,越來越多的新技術開始出現,開始彌補上述的缺點,據我所知,上述這些問題現在都已經有看了可行且可以落地的結局方法,以上就是大致的總結。
責任編輯:pj
-
3D
+關注
關注
9文章
2863瀏覽量
107331 -
相機
+關注
關注
4文章
1345瀏覽量
53519 -
感光芯片
+關注
關注
0文章
10瀏覽量
10156
發布評論請先 登錄
相關推薦
評論