雙目立體視覺原理大揭秘之雙目立體測量
雙目立體視覺是計算機視覺的一個重要分支。它以模擬人類視覺處理景物的方式,利用兩臺位置相對固定的攝像機同時對同一景物從不同角度成像,通過計算其中對應點的視差來獲取空間場景的三維信息。單從雙目視覺的應用來說,主要分為四大部分:
一 雙目視覺導航、定位;
二 三維重構;
四 空間三維立體跟蹤。
前文介紹過基于雙目立體視覺的導航、定位及三位重構原理,本文再介紹下基于CCAS雙目立體視覺的“雙目立體測量”應用。
基于雙目立體視覺的三維測量是一種被動式非接觸測量方法,它除了可以獲得目標的寬、高信息外,還可以獲得目標的距離信息,已被廣泛應用于三維重建、自主車(移動機器人)導航、工業檢測、基于圖像的建模和繪制等領域。基于雙目立體視覺的三維測量技術在國外已經得到了比較深入的研究和廣泛的應用,在國內也受到了越來越多的重視
本文以雙目立體視覺理論為基礎,簡單講述下基于雙目立體視覺的三維測量技術,重點在于雙目立體視覺的幾個關鍵技術,包括:相機標定、雙目標定、圖像處理、特征檢測、立體匹配、雙目三維測量以及姿態測量等。
根據CCAS雙目立體視覺提供的思路和方法,雙目立體測量的基本原理如上圖:左右相機分別找到被測物需要測量的特征點,通過之前標定好的參數,計算出被測物上特征點的三維坐標,然后再得出尺寸信息。雙目立體測量的Zui大優勢在于:相機和被測物之間的距離不像單目測量那樣要求的嚴格,一般只要在鏡頭的景深范圍內都可以精確的實現測量。
雙目立體測量的特點類似于“雙目導航、定位”,一般來說:第一、需要提取的點不多,僅把被測物需要測量部分的點找到即可;第二、速度要求較高,一般要求一秒中測量多個產品;第三、對光照環境要求高。因為測量的時候相機和被測物必然有相對位移,所以拍攝到的圖像可能各個角度都會有。一般的實現步驟如下:
第一、相機參數標定。這部分前文已經說過,不再細說了,有興趣的可以去看CCAS雙目立體視覺的相關資料。這部分的主要目的:獲取相機的內參數和鏡頭畸變系數、獲取雙相機在當前角度下立體參數。
第二、對被測物進行拍攝,并獲取被測部分的特征點。這是雙目立體視覺測量Zui重要的部分。主要難點在于該用哪些算法來獲取特征點,并且這種特征點的獲取方式上,不能用打激光點或手動貼特征點這樣的方式來“取巧”,必須尊重原圖。根據CCAS提供的一些圖像預處理算法進行實驗后發現,一般提取特征點時需要用到數十種以上的預處理算法,而這些算法中的參數需要不斷的去實驗。由于CCAS提供二次開發庫,所以在一些極端情況下用戶還可以在其中加入一些其他的算法。其Zui終目的還是把特征點準確的找到。
第三、三維坐標獲取。完成以上步驟后,就可以進行立體匹配并計算三維坐標來。這部分比較簡單,只要給出來數學模型了直接帶入公式即可。CCAS提供了相應的算法模型和和例程。
第四、指定測量范圍并輸出結果。
由于CCAS提供了算法模型、例程等,所以本文在講解的時候以實際項目開發的思路來講述,感興趣的朋友可以根據這些算法模型、例程自己研究代碼。由于測量是機器視覺應用中Zui廣泛的一個,不同的項目都有各自不同的解決方案。故本文未提供實際的案例,后續將講解下給予雙目視覺的“空間三維跟蹤”。