基於HALCON的雙目立體視覺系統實現


雙目立體視覺是機器視覺的一種重要形式,它是基於視差原理並由多幅圖像獲取物體三維幾何信息的方法。雙目立體視覺系統一般由雙攝像機從不同角度同時獲得被測物的兩幅數字圖像,或由單攝像機在不同時刻從不同角度獲得被測物的兩幅數字圖像,並基於視差原理恢復出物體

 

的三維幾何信息,重建物體三維輪廓及位置。雙目立體視覺系統在機器視覺領域有着廣泛的應用前景。

HALCON是在世界范圍內廣泛使用的機器視覺軟件。它擁有滿足您各類機器視覺應用需求的完善的開發庫。HALCON也包含Blob分析、形態學、模式識別、測量、三維攝像機定標、雙目立體視覺等傑出的高級算法。HALCON支持Linux和Windows,並且可以通過C、C++、C#、Visual Basic和Delphi語言訪問。另外HALCON與硬件無關,支持大多數圖像采集卡及帶有DirectShow和IEEE 1394驅動的采集設備,用戶可以利用其開放式結構快速開發圖像處理和機器視覺應用軟件。

一.雙目立體視覺相關基本理論介紹

1.1 雙目立體視覺原理

雙目立體視覺三維測量是基於視差原理,圖1所示為簡單的平視雙目立體成像原理圖,兩攝像機的投影中心的連線的距離,即基線距為b。攝像機坐標系的原點在攝像機鏡頭的光心處,坐標系如圖1所示。事實上攝像機的成像平面在鏡頭的光心后,圖1中將左右成像平面繪制在鏡頭的光心前f處,這個虛擬的圖像平面坐標系O1uv的u軸和v軸與和攝像機坐標系的x軸和y軸方向一致,這樣可以簡化計算過程。左右圖像坐標系的原點在攝像機光軸與平面的交點O1和O2。空間中某點P在左圖像和右圖像中相應的坐標分別為P1(u1,v1)和P2(u2,v2)。假定兩攝像機的圖像在同一個平面上,則點P圖像坐標的Y坐標相同,即v1=v2。由三角幾何關系得到:

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導        【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導      【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

上式中(xc,yc,zc)為點P在左攝像機坐標系中的坐標,b為基線距,f為兩個攝像機的焦距,(u1,v1)和(u2,v2)分別為點P在左圖像和右圖像中的坐標。

視差定義為某一點在兩幅圖像中相應點的位置差:

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

由此可計算出空間中某點P在左攝像機坐標系中的坐標為:

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

因此,只要能夠找到空間中某點在左右兩個攝像機像面上的相應點,並且通過攝像機標定獲得攝像機的內外參數,就可以確定這個點的三維坐標。

1.2 雙目立體視覺的系統結構以及精度分析

由上述雙目視覺系統的基本原理可知,為了獲得三維空間中某點的三維坐標,需要在左右兩個攝像機像面上都存在該點的相應點。立體視覺系統的一般結構為交叉擺放的兩個攝像機從不同角度觀測同一被測物體。圖2和圖3分別為實物圖與原理圖。這樣通過求得兩個圖像中相應點的圖像坐標,便可以由雙目立體視覺測量原理求取三維空間坐標。事實上,獲取兩幅圖像也可以由一個攝像機實現,如一個攝像機通過給定方式的運動,在不同位置觀測同一個靜止的物體,或者通過光學成像方式將兩幅圖像投影到一個攝像機,都可以滿足要求。

  各種雙目視覺系統結構各有優缺點,這些結構適用於不同的應用場合。對要求大測量范圍和較高測量精度的場合,采用基於雙攝像機的雙目立體視覺系統比較合適;對測量范圍要求比較小,對視覺系統體積和質量要求嚴格,需要高速度實時測量對象,基於光學成像的單攝像機雙目立體視覺系統便成為最佳選擇。

基於雙攝像機的雙目立體視覺系統必須安裝在一個穩定的平台上,在進行雙目視覺系統標定以及應用該系統進行測量時,要確保攝像機的內參(比如焦距)和兩個攝像機相對位置關系不能夠發生變化,如果任何一項發生變化,則需要重新對雙目立體視覺系統進行標定。

視覺系統的安裝方法影響測量結果的精度。測量的精度可由下式得出:

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

上式中⊿z表示測量得出的被測點與立體視覺系統之間距離的精度,z指被測點與立體視覺系統的絕對距離,f指攝像機的焦距,b表示雙目立體視覺系統的基線距,⊿d表示被測點視差精度。

      【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

為了得到更高的精度,應該使攝像機的焦距以及基線長度增大,同時應該使被測物體盡可能的靠近立體視覺系統。另外這個精度和視差的精度有直接的關系。在HALCON中一般情況下視差結果可以精確到1/5~1/10個像素,如果一個像素代表7.4μm那么視差的精度可以達到1μm。圖4表示深度測量的精度和各個參數之間的關系(假設視差精度為1μm)。

如果b和z之間的比值過大,立體圖像對之間的交迭區域將非常小,這樣就不能夠得到足夠的物體表面信息。b/z可以取的最大值取決於物體的表面特征。一般情況下,如果物體高度變化不明顯,b/z可以取的大一些;如果物體表面高度變化明顯,則b/z的值要小一些。無論在任何情況下,要確保立體圖像對之間的交迭區域足夠大並且兩個攝像機應該大約對齊,也就是說每個攝像機繞光軸旋轉的角度不能太大。

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

1.3 雙目立體視覺系統標定

攝像機內參數的標定和單目視覺系統標定一致,雙目立體視覺系統的標定主要是指攝像機的內部參數標定后確定視覺系統的結構參數R和T(即兩個攝像機之間的位置關系,R和T分別為旋轉矩陣和平移向量)。一般方法是采用標准的2D或3D精密靶標,通過攝像機圖像坐標與三維世界坐標的對應關系求得這些參數。具體的標定過程【3】如下:

1、將標定板放置在一個適當的位置,使它能夠在兩個攝像機中均可以完全成像。通過標定確定兩個攝像機的內部參數以及他們的外部參數(R1、T1與R2、T2),則R1、T1表示左攝像機與世界坐標系的相對位置,R2、T2表示右攝像機與世界坐標系的相對位置。

2、假定空間中任意一點在世界坐標系、左攝像機坐標系和右攝像機坐標系下的非齊次坐標分別為xw、x1、x2,則:

  【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

消去xw,得到:

  【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

兩個攝像機之間的位置關系R、T可以用以下關系式表示:

  【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

1.4 雙目立體視覺中的對應點匹配

由雙目立體視覺系統原理可以看出雙目立體視覺是建立在對應點的視差基礎之上,因此左右圖像中各點的匹配關系成為雙目立體視覺技術的一個極其重要的問題。然而,對於實際的立體圖像對,求解對應問題極富挑戰性,可以說是雙目立體視覺中最困難的一步。為了能夠增加匹配結果的准確性以及匹配算法的速度,在匹配過程中通常會加入下列幾種約束:

(1) 極線約束。在此約束下,匹配點已經位於兩副圖像中相應的極線上。

(2) 唯一性約束。兩副圖像中的對應的匹配點應該有且僅有一個。

(3) 視差連續性約束。除了遮擋區域和視差不連續區域外,視差的變化都是平滑的。

(4) 順序一致性約束。位於一副圖像極線上的系列點,在另一幅圖像中極線上有相同的順序。

圖像匹配的方法有基於圖像灰度(區域)的匹配、基於圖像特征的匹配和基於解釋的匹配或者多種方法結合的匹配【3】。

二.使用HALCON進行雙目立體視覺測量

本節以電路板高度測量為例,講述在HALCON中如何方便快捷地實現高效雙目立體視覺測量(圖像為640*480)。

2.1 雙目立體視覺系統安裝

根據1.2節中對雙目立體視覺系統結構分析以及精度的分析,在確保兩個立體圖像對有足夠大的交迭區域的同時,根據待測物體表面形態以及精度要求設計合理的雙目立體視覺系統安裝方案(圖2)。然后將雙目立體視覺系統安裝在一個穩定的平台上,確保開始標定后,攝像機的焦距以及攝像機的相對關系都不發生變化。

2.2 雙目立體視覺系統標定

為了進行視覺系統的標定,需要得到空間點的三維坐標以及該點在左右兩幅圖像中坐標的對應關系,另外還需要給定兩個攝像機的初始參數。拍攝標定板圖像時,要保證標定板在左右兩個攝像機中都能夠完整成像。

如果使用HALCON標准標定板,首先可以通過函數find_caltab()在標定板圖像中分離出標定板區域,然后利用find_marks_and_pose()算子,該算子通過亞象素閾值、亞象素邊緣提取、圓心確定等一系列操作計算標定板上每個點的圖像坐標以及標定板與攝像機之間大約的位置關系,即攝像機的外參初始值。其中使用find_caltab()分離標定板區域運算時間大約為5ms,find_marks_and_pose()計算標定板上49個標志點的坐標大約需要時間為40ms,計算坐標精度為亞象素級,如某標志點在左攝像機圖像坐標系中坐標為(198.612619165, 344.142354438),右攝像機圖像坐標系中相應點坐標為(212.140195587, 226.377754012)。

如果使用自定義的標定板,可以使用HALCON中的圖像濾波、亞象素邊緣及線提取、亞象素輪廓處理等基本函數開發算法求取標志點的坐標並估算攝像機的外參初始值。

獲得標志點相應的坐標以及攝像機的起始參數后,通過調用函數binocular_calibration()來確定兩個攝像機的內參數、外參數以及兩個攝像機之間的相對位置關系。通過539個標志點坐標的對應關系計算出攝像機各個參數需要的時間為1.6094s,計算誤差約為0.02個象素。

2.3 校正立體圖像對

為了能夠更精確地進行匹配,提高運算的效率,在獲得攝像機的內外參數后首先對立體圖像對進行校正。校正的過程其實就是將圖像投影到一個公共的圖像平面上,這個公共的圖像平面方向由雙目立體視覺系統基線與原始兩個圖像平面交線的叉集確定。

校正后的圖像可以看作是一個虛擬的立體視覺系統(圖5)采集的圖像對。這個視覺系統中攝像機的光心與實際攝像機一致,只是通過繞光心的旋轉使光軸平行,並且視覺系統中兩個攝像機的焦距相同。這個虛擬的立體視覺系統就是雙目立體視覺原理中提到的最簡單的平視雙目視覺模型。

HALCON中將標定過程中獲得的攝像機的內參以及兩個攝像機相對位置關系作為參數傳遞給函數gen_binocular_rectification_map(),再將獲得的兩個圖像的映射圖傳遞給函數map_ image(),即可得到校正后的兩幅圖像,並可獲得校正后虛擬立體視覺系統中兩個攝像機的內參和外參。其中函數gen_binocular_rectification_map()耗時約為0.3488s,map_image()耗時約為0.0050s。

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

2.4 獲得圖像中三維信息

為了得到圖像中某點的三維信息,需要在另一幅圖像中找到該點的對應點坐標。因此想獲得物體的深度信息,首先需要對校正后的立體圖像對進行匹配。由於經過校正后,兩幅圖像中的對應點在圖像的同一行中,因此在匹配時只需要在相應的行中尋找匹配點。為了得到更佳的匹配結果,如果被測物體表面沒有明顯的特征信息,則需要測量時在物體表面增加特征點。另外要避免被測物體上重復圖案在同一行中。

將校正后的圖像以及虛擬立體視覺系統中的攝像機內外參數傳遞給binocular_disparity(), 這時可以設置匹配窗大小、相似度計算方式等參數,在匹配中使用圖像金字塔提高匹配速度,並且可以自我檢測匹配結果的正確性。函數返回一個視差圖 (物體表面三維信息的表示)和一個匹配分值圖(表示匹配結果的准確程度),函數的運行時間約為0.6051s。

函數binocular_distance()與binocular_disparity()類似,只不過返回一個深度圖(物體表面在第一個攝像機坐標系中的深度信息)和一個匹配分值圖。圖6~圖9顯示了HALCON中利用雙目立體視覺測量電路板三維信息的過程。

HALCON中另外還有很多關於立體視覺的函數,可以獲得圖像中某點的三維坐標,另外可以校正傾斜對高度測量的影響等。

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

 

【轉載】基於HALCON的雙目立體視覺系統實現 - Halcon機器視覺 - Halcon入門指導

三. 總結

以視覺系統為基礎的三維外形輪廓的非接觸式、高速測量是一個重要的研究方向,雙目立體視覺方法是其中一種最常用的方法。本文介紹了雙目立體視覺的基本原理,實現方法以及標定和匹配等相關技術,並通過一個典型應用案例講述了如何使用HALCON方便快速地搭建高效的雙目立體視覺系統。雙目立體視覺系統的應用領域非常廣泛,為了能夠將這些技術應用在實際的工程中,需要盡可能提高算法的效率與精度。在HALCON中通過校正立體視覺系統的方法,簡化了匹配的復雜度,通過使用圖像金字塔以及各種約束提高了算法速度和精度。在已知攝像機內外參的情況下,由兩個立體圖像對中恢復三維模型需要約1.3s。

另外,HALCON中不僅有匹配、識別、定位、測量和三維等性能傑出的高級算法,還提供了一系列(的)高效的圖像處理基本函數,如濾波、亞象素邊緣、亞象素輪廓、Blob、分割、形態學、分類器、幾何變換,用戶可以通過這些基本函數來搭建各種應用中高效實用的算法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM