吳亞帥,劉新妹,殷俊齡,高志亨
(中北大學 電子測試技術國家重點實驗室,太原 030051)
機器視覺被廣泛地應用于自動化檢測和測量的視覺系統中[1].在實際應用中,精密度的局限性會導致機器視覺系統采集的圖像產生各種畸變,例如徑向畸變、透視畸變等[2],隨著成像設備制造技術的不斷提高,數字圖像的分辨率越來越高,圖像的畸變在檢測中不容忽視,必須對其進行矯正[3].圖像畸變矯正技術的研究主要有兩個方面:光學機械設計上的矯正和數字圖像處理上的矯正[4].利用光學和機械結構對鏡頭進行矯正存在諸多局限性,如高精度的光學圖像采集鏡頭價格昂貴、結構設計較為復雜等[5],因此采用數字圖像處理技術對畸變進行矯正已成為目前研究的主要方向.
在圖像畸變矯正理論中,畸變模型的確立是畸變矯正的理論基礎,也是相機標定的主要內容,而對于參考模型的選取將直接影響到畸變圖像矯正的效果[6].目前在研究中的畸變模型各有優缺點,比如Fitzgibbon模型[7]包含未知參數少,計算量小但精度不高;Brown模型[8]和Heikkila 模型[9]較復雜,雖可以較好的提高圖像矯正精度,但算法計算的復雜性與工作量也成倍增加[10].因此,需要根據實際情況合理規劃建立攝像頭的畸變模型,達到實驗設計目的.
目前常用的軟件開發平臺有:HALCON、Vision Pro、OpenCV 和LabView 等[11].其中LabView 采用圖形化編程方式,軟件開發周期短,特別適合工控及自動化測試場合,能夠快速完成視覺系統的模型建立,提高測試效率[12].因此,本文以PCB 板為研究對象,結合徑向畸變和切向畸變,使用了一種多項式畸變成像模型,基于LabView 平臺和NI Version 模塊采用校準點陣對機器視覺系統進行校準,利用雙線性插值算法對圖像畸變進行矯正,并對矯正結果進行對比分析得出結論.
理想條件下,機器視覺成像系統可以被抽象為小孔成像模型,鏡頭的圖像畸變可以忽略不計.然而實際并非理想,鏡頭本身特性的不完美性對成像的最終結果造成的影響是不可忽視[13].
本文在圖像畸變的矯正主要研究徑向畸變和切向畸變,徑向畸變是由于現實中鏡頭所用的凸透鏡或凹透鏡組合固有的光學特性,導致真實坐標點沿著像面徑向產生的偏移.切向畸變與徑向畸變的影響不同,切向畸變是使圖像像素沿著切線方向變形,如將矩形變為梯形圖像[14].
根據泰勒級數定義和鏡頭在畸變中心處不會產生畸變,以及徑向畸變是沿畸變中心對稱的特性,徑向畸變數學模型表示式為:

式中,r為理想中像素點到原點的距離,(x,y)為畸變點在圖像的原始坐標,即為圖像矯正后的坐標;k1,k2,…,kn表示徑向畸變的待定系數.
切向畸變的數學模型表示式為:

式中,(x,y)為圖像畸變像素點在相機圖像平面的原始坐標位置;(xcorrected,ycorrected)為矯正后的新坐標位置,p1,p2為描述切向畸變的待定系數.
本文結合式(1)和式(2)采用的多項式畸變模型表達式為:

式中,k1,k2,p1,p2,k3為需要求解的鏡頭畸變系數.
本文對畸變模型的研究建立4 種計算機視覺坐標系:世界坐標系、相機坐標系、成像平面坐標系和圖像坐標系,坐標系統轉換模型示意圖如圖1.不難看出,真實世界坐標系與相機坐標系之間的變換可以通過旋轉和平移來實現.

圖1 坐標系統轉換模型示意圖
世界坐標系在平移T后,先沿z軸旋轉 θ度,再沿y軸旋轉 φ度,最后沿z軸旋轉 ψ度便可以得到相機坐標系,轉換關系表示為:

其中,R為旋轉矩陣,與θ,φ 和 ψ有關.
若不考慮鏡頭畸變影響,成像點可有相機坐標系投影得到:

式中,f為相機焦距,圖像坐標系和成像平面坐標系轉換關系為:

其中,(x,y)為圖像像素坐標,Sx,Sy分別為每個像素在兩個坐標軸上的物理尺寸,(x0,y0)為光軸與像平面交點在圖像坐標系中的坐標,fx,fy為成像平面上的等效焦距.
設Ow中的zw=0,可以得出:

式中,k為比例系數,M為相機內部參數矩陣.
設H為單應性矩陣,令:

由旋轉矩陣R的φ、ψ的正交性,可以得出約束方程:

只要采集的圖像有足夠的圖像和物理空間的對應點,就可以求出H,M矩陣中只有5 個未知量,當采集的圖像至少為3 幅時,就可以根據建立的約束方程求出M矩陣中的內參數.由式(7)進一步得到相機視覺模型的外參數θ,φ,ψ和T由此可知,成像過程其實就是三維空間坐標系之間的轉換過程.
本文圖像選用德國Basler acA 系列相機及其配套鏡頭采集,且按上述坐標系之間的轉換,結合多項式畸變模型和2.2 節的公式基于LabView和NI Version 軟件平臺建立坐標系.設計滿足實驗要求的15×15 圓點陣列,并粘在一張光滑平板上.相鄰水平點、垂直點的中心間距均為10 mm,點直徑4 mm.其中主要采集模板中的4×5 點陣.建立的坐標系如圖2.

圖2 坐標系建立前后圖
在進行坐標轉換時涉及的點數較多,本文選取圖像中的其中20 個點的坐標,依據上述坐標系之間的轉換關系,得出轉換結果如表1.

表1 多項式畸變成像模型坐標轉換參數
由各點的轉換結果,可得:最大誤差為0.010848;計算平均誤差為0.008485;標準差為0.000449.也證實了:實際坐標和圖像坐標的轉換通過這一步驟,可以實現較小誤差的精確轉換.
在機器視覺系統中,系統校準是指利用包含多個點的標準模板,為系統提供真實世界坐標系中多個坐標點的已知信息[15].有了這些信息,就可以結合成像系統模型,獲得圖像總各像素點與真實世界之間的線性或非線性的映射關系,如將這些信息應用到后續的圖像采集中,就可以降低各種畸變對系統檢測結果的影響,并可對畸變圖像進行矯正.
日前在LabView 平臺研究常用的系統校準方法有:簡易系統校準法、透視校準和校準點陣校準.簡易系統校準法和透視校準是兩種通過手工輸入已知信息點就可以實現系統校準的方法,在實踐工程中,若鏡頭存在徑向或切向畸變,手工輸入已知信息點的校準方法就相對麻煩和效率低下[16].本文采用校準點陣為校準過程提供信息點輸入的工具,對系統進行校準.
這里采用上文中的多項式畸變成像模型的機器視覺系統采用校準點陣,在實驗室的LabView 平臺上進行程序設計和圖像校準.校準程序界面如圖3.

圖3 圖像校準程序界面
校準圖和校準結果如圖4.在LabView 中通常采用誤差映射表(error Map)、畸變率(distortion)、平均誤差(mean error)、最大誤差(maximum error)以及標準差(standard deviation)等相關信息來衡量判斷系統校準的質量.誤差映射表表示產生畸變像素與真實位置之間的距離,其值越小,說明計算得到的真實世界的坐標越精確;畸變率主要用來說明采集的圖像相對于正常圖像的變形情況,等于像素位置誤差占像素到光心位置所對應像素距離的百分比,本質上屬于相對誤差,在機器視覺系統中,一般要確保畸變率小于1%.

圖4 圖像校準前后對比以及誤差參數圖
由系統校準結果圖4(c)可見:誤差映射表(error map)為0.6530;均誤差(mean error)為0.66;畸變率(distortion)為0.19%,達到較好的校準結果.
經過系統校準后,可對采集圖像進行一定的畸變的矯正,在機器視覺系統中,圖像的坐標值都是整數離散的,處理后的圖像坐標信息往往與原圖像的位置坐標并不一一對應,這就會導致圖像矯正完的坐標對應原圖有可能出現不是整數點,因此,就需要用到圖像插值算法[17],進一步提高圖像的清晰度.
圖像矯正的方法目前主要有:0 階插值算法、雙線性插值算法、三次卷積插值算法[18].0 階插值算法是根據就近原則,利用距離目標點最近的像素點來代替目標點,該算法計算便捷快速,但會產生較為嚴重的失真,無法滿足清晰度要求較高的圖像處理;雙線性插值算法通過在水平和垂直兩個方向均進行線性插值來確定新圖像中像素值,處理后圖像縮放質量較高;三次卷積插值算法將插值點附近的16 個參考點的灰度值變化考慮在內,利用三次分段函數多項式進行計算,精度高但計算量較大,且對硬件處理要求較高[19].
對比分析3 種插值算法,雙線性插值法改善了灰度值離散的問題,且兼顧滿足插值精度和算法簡潔性的要求.因此,本文的圖像矯正算法采用雙線性插值法.
在實驗室電路板檢測平臺上進行了搭建和對采集圖像的畸變矯正,圖像矯正可以采用適應原圖比例(scale to fit)和保持原圖比例(scale to preserve)兩種方式.在校準程序中添加矯正模塊的程序代碼,圖像矯正程序界面如圖5黑框內容所示.

圖5 圖像矯正程序界面
圖像矯正的結果如圖6(b)、圖6(c)所示.圖像矯正的誤差參數如圖7所示.

圖6 PCB 電路板圖像不同方式下矯正前后對比圖

圖7 校準并矯正后的誤差參數圖
由此得出:(1)使用不同縮放模式對圖像進行矯正,生成的矯正圖像尺寸不同;(2)在Scale to Preserve 方式下生成的矯正圖像要略大于源圖像;(3)矯正方式的不同只對矯正后生成圖像的尺寸大小有影響,與矯正精度無關;(4)采用線性插值算法進行矯正后的圖像畸變率為0.10%要小于校準后的畸變率0.19%.
本文對結論在實驗室的電路板檢測平臺上進行驗證,取一塊PCB 電路板采集15 幅圖像,按照設計的矯正方案,分別采用多項式畸變模型和Heikkila 模型進行畸變矯正實驗,矯正后各項誤差參數見表2、表3.
得到表2、表3中15 幅圖像矯正后的誤差映射平均值分別為0.4393、0.6487,均畸變率為分別0.152701%和0.436 4306%,從誤差參數的平均值來看,采用多項式畸變模型矯正誤差明顯較小效果更好,滿足圖像矯正的處理要求;圖像矯正后像素精度達到0.01,畸變率最小可達到0.087727%,實現了滿意的矯正效果.
本文通過分析攝像頭的成像原理和圖像畸變的原因,基于LabView 平臺在多項式畸變模型的背景,使用校準點陣對機器視覺系統進行校準,用本文設計的矯正方式對圖像進行矯正.通過實驗測試,得到圖像矯正后像素誤差可精確至0.01,畸變率最小可至0.087727%,且在LabView 平臺中程序編寫相對簡單,開發周期較短.證明此方法較好地實現了對圖像畸變的矯正,有效消除畸變影響,是實現精密檢測中的必要手段和有效的方法.

表2 多項式畸變模型的PCB 圖像矯正后誤差參數表

表3 Heikkila 模型的PCB 圖像矯正后誤差參數表