夏瑞雪 盧榮勝 劉 寧 董敬濤
合肥工業(yè)大學,合肥,230009
視覺測量以其快速非接觸的優(yōu)點,在測量領(lǐng)域引起了廣泛關(guān)注并得到成功應用[1-2]。攝像機標定是視覺測量的重要步驟,基于攝像機透視投影模型,通過標定建立攝像機圖像像素位置與場景點位置之間的關(guān)系。攝像機標定需借助靶標提供的標定特征點,根據(jù)已知標定特征點的圖像坐標和世界坐標來求解攝像機的模型參數(shù)。標定特征點的世界坐標是由靶標在制作時確定的,圖像坐標則需通過對拍攝的靶標圖像進行處理和分析來求?。?]。
目前,攝像機標定中使用較多的是2D平面靶標,有棋盤靶標、網(wǎng)格靶標和圓點陣列靶標等[3],本文以平面圓點陣列靶標為研究對象,其標定特征點是圓點中心。在攝像機標定的圖像中,靶標圖案處于復雜背景環(huán)境中,為避免背景圖案給標定特征點圖像坐標提取造成影響,通常采用人工干預的方法,手工選取靶標圖案區(qū)域。由于多數(shù)攝像機標定方法需要對多幅圖像進行處理[4-5],故手工選取的方法將影響攝像機標定的效率。為減少操作人員的工作量,提高標定過程的自動化程度,提高工作效率,本文研究了一種在復雜背景環(huán)境下,無需人工干預,自動提取靶標上各圓點中心圖像坐標的方法。
平面圓點陣列靶標的圖案主要由多個圓點所組成的等間距分布的矩形陣列組成,可采用在有機玻璃基板上鍍膜刻畫圖案的方法來制作,精度能達到±0.001mm。要實現(xiàn)自動提取,所使用的靶標圖案需要具有一定的特征,本文以德國MVTec公司的HALCON系列標定模板中的一種為例進行說明,其特征是:圖案區(qū)域為左上角帶一個斜角的外圍帶狀邊框,框內(nèi)是一個7×7圓點矩陣,如圖1所示。
圖1 HALCON攝像機標定實例圖
圖1為HALCON提供的用于攝像機標定示例程序的實例圖像,圖像的尺寸為786×576像素。根據(jù)透視投影變換的特性,近似地認為靶標圖案區(qū)域的圓點在攝像機像平面的成像為橢圓點,將橢圓點中心視為圓點中心透視投影像點。雖然使用HALCON算法庫提供的算子能快捷地實現(xiàn)各橢圓點中心圖像坐標的提取,但其算法的核心部分是不可見的,并且始終是以HALCON為依托,受其限制。
本文在微軟Visual Studio 2005集成開發(fā)環(huán)境下,采用C#編程語言開發(fā)基于平面圓點陣列靶標的標定特征點圖像坐標自動提取應用程序,該應用程序的核心部分——標定特征點坐標自動提取算法的流程圖如圖2所示,具體步驟如下所述,其中,數(shù)字圖像處理算法程序采用C++編程語言編寫,以動態(tài)鏈接庫的形式供主程序調(diào)用。
圖2 標定特征點坐標自動提取算法流程圖
在圖像默認的坐標系中,使用C#的Bitmap類讀取攝像機標定時所拍攝的位圖文件,為加快處理速度,根據(jù)位圖像素的格式進行灰度化處理,得到灰度圖像F0(x,y)。然后,采用中值濾波法和高斯低通濾波法對F0(x,y)進行圖像平滑處理,提高圖像的成像質(zhì)量,得到待處理圖像F1(x,y)。
提取標定特征點的圖像坐標,首先要在復雜背景環(huán)境下,將靶標圖案區(qū)域PA0從F1(x,y)中提取出來。根據(jù)靶標圖案的特性,各橢圓點和帶斜角的邊框為黑色,背景色為白色,且均為連通區(qū)域。因此,本文先采用大津法獲取分割閾值,再對F1(x,y)進行二值化處理,將其轉(zhuǎn)換為黑白二值圖像F2(x,y),如圖3所示。
圖3 黑白二值攝像機標定位圖
2.3.1 連通區(qū)域提取
F2(x,y)由多個連通區(qū)域組成,本文研究的對象是像素值為0的連通區(qū)域CAi(i=0,1,2,…),所采用的提取連通區(qū)域的方法如下:①創(chuàng)建位圖F3(x,y),用于復制F2(x,y),從其左上角F3(0,0)開始,按從上至下、從左至右的方式進行圖像掃描。若像素F3(u,v)=0,則以該處為開始點P0,采用八鄰域邊界跟蹤算法,對P0所在的CAi進行輪廓跟蹤,生成鏈碼表Ci;② 將Ci轉(zhuǎn)化為水平方向線段表HLi或垂直方向線段表VLi,如圖4所示,并將該輪廓所包圍的區(qū)域SAi內(nèi)所有像素的像素值賦為255,直至F3(x,y)中各像素的像素值均為255,掃描完成。
圖4 基于線段表的連通區(qū)域表示示意圖
這種提取SAi的方法只能針對連通區(qū)域為實心的情況,若連通區(qū)域內(nèi)存在空心部分,則無法反映該連通區(qū)域的實際情況。本文利用了這一點,當掃描到PA0時,跟蹤得到的輪廓為帶狀邊框的外邊界,其包圍的整個區(qū)域PA1正是所要提取的PA0,PA1為實心區(qū)域,將帶狀邊框和橢圓點陣列視為一個整體,可以簡化處理過程。
2.3.2 面積判斷
根據(jù)所求得的HLi或VLi,先計算線段表中各線段的長度,再求它們的總和,可獲得該線段表表示的區(qū)域SAi的面積SVi。
由圖3可見,背景圖案會形成大量零散的小面積連通區(qū)域,然而,根據(jù)PA0的形態(tài)特征,其內(nèi)部是一個7×7的橢圓點矩陣,由于一個橢圓點至少包含一個3×3的模板,即9個像素,橢圓點間也至少間隔一個像素,即PA1至少對應有7×7×9+8×8=505個像素,故PA1的面積必定大于505個像素,則面積太小的連通區(qū)域可不予考慮。
設(shè)置SVT=505,對各個連通區(qū)域的面積進行判斷,若SVi≤505,則在F2(x,y)上將該連通區(qū)域內(nèi)各像素的像素值賦為255,即將其從F2(x,y)上刪除。掃描完成后,得到位圖F4(x,y),符合要求的連通區(qū)域集合為SAj(j=0,1,2,…),有效地剔除了非目標區(qū)域,可以大大減小后續(xù)的計算工作量。
2.3.3 特征識別
根據(jù)PA0的形態(tài)特征,若不考慮噪聲的干擾,在理想情況下,它包含50個子連通區(qū)域,其中49個是橢圓形小面積子連通區(qū)域,位于PA0內(nèi)部,另外一個是帶狀邊框所形成的子連通區(qū)域即外圍。本文將依據(jù)上述特征,繼續(xù)對F4(x,y)中的連通區(qū)域進行篩選,通過逐步判斷其子連通區(qū)域的數(shù)目、面積和圓度,最終實現(xiàn)對PA0的提取,具體方法如下:
(1)獲取邊界。首先,采用輪廓提取算法對SAj進行輪廓提取,得到SCj,再采用八鄰域邊界跟蹤算法,對SCj的各輪廓邊界進行輪廓跟蹤。每跟蹤得到一條邊界Em(m=0,1,2,…),求得其鏈碼表ECm和線段表EHLm,并將其各像素的像素值賦為255,然后,繼續(xù)掃描跟蹤下一條邊界,直至SCj中各像素的像素值均為255,掃描完成。
(2)數(shù)目判斷。統(tǒng)計SAj的輪廓邊界Em的數(shù)目,理想情況下的PA0的輪廓邊界數(shù)目為51,考慮到噪聲點的影響,設(shè)置mT=51,若m≥mT,則轉(zhuǎn)入下一步判斷,否則,將該連通區(qū)域剔除。
(3)面積判斷。通過線段表EHLm可計算求得Em所包圍區(qū)域ESAm的面積ESVm,但由上一小節(jié)可知,橢圓點的Em至少包含9個像素,故計算前需對Em進行篩選,剔除所含像素太少的Em,設(shè)置閾值為9,這樣既減小了計算量,也消除了部分面積較小的噪聲點。由圖3可見,背景圖案所形成的SAj的子連通區(qū)域通常是雜亂、無規(guī)律可循的,因此,根據(jù)PA0的子連通區(qū)域的面積特性,對ESVm進行如下約束,若其不滿足:
則將該連通區(qū)域剔除。經(jīng)過該步判斷后,若集合SAj只剩下一個元素,則該連通區(qū)域即為PA0,否則,轉(zhuǎn)入下一步判斷。
(4)圓度判斷。根據(jù)上述所得的SAj的ECm,可求得 Em的各像 素 的 圖 像 坐標Pn(x,y)(n=0,1,2,…),再通過對Pn(x,y)的橫坐標和縱坐標分別進行排序,可求得ESAm的最小外接矩形的4個頂點的坐標,然后通過簡單計算即可求得相應的最大外切圓的圓心坐標Pc(xc,yc)和半徑R,令Em的各像素到圓心的距離為Ln,如圖5所示。根據(jù)|Ln-R|的值,對ESAm進行簡單的圓度判斷,若 max(|Ln-R|)>2R,則認為ESAm不是圓形區(qū)域,然后,統(tǒng)計用這種方法得到的SAj中圓形區(qū)域的個數(shù)Mj,由PA0的形態(tài)特征可知,Mj最接近49的SAj即為PA0。
重新統(tǒng)計PA0的輪廓邊界數(shù)目,若大于51,則表示仍存在噪聲點,需對此時的F4(x,y)進行連續(xù)的開和閉運算,消除噪聲點,從而確保PA0的輪廓邊界數(shù)目只為51。
圖5 圓度判斷方法示意圖
通過上述一系列的判斷,最終成功將靶標圖案區(qū)域從攝像機標定圖像中提取出來,得到一幅只包含PA0的位圖F5(x,y),如圖6所示。對類似圖1的十幾幅由HALCON提供的實例圖片進行處理,均成功實現(xiàn)提取。
圖6 靶標圖案區(qū)域圖
同理,根據(jù)PA0的輪廓邊界鏈碼表PECm,求得各橢圓點輪廓邊界PEm(m=2,3,…,50)的各像素的圖像坐標 PSn(x,y)(n =0,1,2,…),然后,采用最小二乘橢圓擬合算法求取橢圓點中心的圖像坐標。橢圓方程的一種形式為
其中,B2-4AC<0。將Em的PSn(x,y)代入橢圓方程,組成一個超定方程組,令殘差的平方和
求取Q為極小值時該超定方程組的最小二乘解,即橢圓方程各參數(shù)的值,然后,將式(2)轉(zhuǎn)換為橢圓的標準方程的形式,即可求得橢圓點中心圖像坐標。
在F5(x,y)上使用十字形標記對各橢圓點中心進行標記,如圖7所示。此外,可根據(jù)需要使用不同形狀的標記在攝像機標定位圖文件和Fi(x,y)(i=0,1,2,4,5)上進行標記。
由圖7和圖8可見,隨著靶標的旋轉(zhuǎn),采用行或列掃描的方式對位圖進行操作,并不能始終保證按行或列順序依次獲取7×7圓點矩陣的各圓點中心的圖像坐標,然而,在攝像機標定計算時,標定特征點的世界坐標是按行或列順序存儲的。通常采用數(shù)字編碼的方式來定位標定特征點,即按存儲的順序?qū)Ω鼽c進行編碼,然后在位圖上標識出來,雖然該方法較簡單,但需要人工干預,由操作者將各點的世界坐標與圖像坐標對應起來,并且當標定特征點的個數(shù)較多時,會給攝像機標定計算帶來非常大的不便。
圖7 十字形標記圖
圖8 旋轉(zhuǎn)的靶標圖案區(qū)域圖
本文將根據(jù)PA0的形態(tài)特征,逐步確定各標定特征點所對應的圓點在7×7圓點矩陣中的位置,自動實現(xiàn)標定特征點的定位,如圖8和圖9所示,具體方法如下所述:
圖9 標定特征點定位示意圖
(1)確定P11位置。采用K-R法[6]對PA0中帶斜角的邊框的內(nèi)輪廓邊界進行線段分割,得到5條線段,計算長度最小的線段的直線方程l0,然后計算各標定特征點Pij(i,j=1,2,…,7)到l0的距離,距離最小的點即為P11。
(2)確定P12、P21和P22位置。計算其余Pij到P11的距離,值最小的三個點P1、P2和P3即為P12、P21和P22,但還需將它們一一對應起來。以P11為原點,建立如圖9所示的平面直角坐標系,依次逆時針旋轉(zhuǎn)向量P11P1、P11P2和P11P3至X′軸正向的位置,從圖9可知,僅當所選擇的向量為P11P22,其余兩個向量也逆時針旋轉(zhuǎn)同樣的角度時,P′1、P′2和P′3的縱坐標一個為零,一個為正值,另一個為負值,從而確定出P12、P21和P22。
(3)確定其余各標定特征點位置。已確定P11和P12,可得直線方程l1,計算其余Pij到l1的距離。根據(jù)透視投影變換的特性,并考慮誤差因素,第一橫行的其余標定特征點分布于l1的附近,相對于其他橫行,它們到l1的距離更小一些。設(shè)置一個閾值RV,距離不大于RV的點即為第一橫行的標定特征點,再按它們到P11的距離的遠近,依次確定出各點,其中,RV為所求得的各橢圓點的長軸的平均值。同理,確定出第二橫行的各標定特征點。根據(jù)已確定的第一和第二橫行的標定特征點,采用同樣的方法,按列依次確定每一縱列的其余各標定特征點,從而實現(xiàn)所有標定特征點的定位。
使用依據(jù)上述方法開發(fā)的應用程序提取圖1中的平面圓點陣列靶標的標定特征點圖像坐標,在靶標圖案區(qū)域的輪廓圖像上進行標記,結(jié)果如圖7所示。此外,還基于HALCON算子編寫了對標定特征點圖像坐標進行求取的應用程序,用小圓點進行標記,結(jié)果如圖10所示。
圖10 基于HALCON算子法的標定特征點圓點形標記圖
以基于HALCON算子求取的標定特征點圖像坐標為標準位置,將基于本文方法求取的結(jié)果與其進行比較。在橢圓點陣列的水平方向第四行和垂直方向第四列上各間隔選取4個標定特征點,使用圖像默認的坐標系,以圖像的左上角為坐標原點,在表1中列出分別用以上兩種方法提取的這8個點的圖像坐標,以及它們的距離偏差,由計算結(jié)果可見偏差在0.3個像素內(nèi)。
表1 兩種方法提取的部分特征點圖像坐標比較 pixel
本文提出用于攝像機標定的2D平面圓點陣列靶標的標定特征點圖像坐標自動提取方法,適用于Tsai和Zhang等攝像機標定方法,無需人工干預,即可實現(xiàn)自動對多幅標定圖像進行處理,然后,根據(jù)攝像機透視投影模型,即可求得攝像機的模型參數(shù)。通過實驗比對,本文方法的精度接近商業(yè)圖像處理軟件HALCON的水平,是一種有效的像素級方法,可在此基礎(chǔ)上進行橢圓中心亞像素定位方法以及畸變誤差補償方法的研究,實現(xiàn)高精度的標定特征點圖像坐標提取。
[1] 葉聲華,王仲,曲興華.精密測試技術(shù)展望[J].中國機械工程,2000,11(3):262-263.
[2] 劉慶民,李國發(fā),孫魯涌.齒形鏈鏈板視覺集成測量[J].中國機械工程,2008,19(13):1539-1543.
[3] 張廣軍.視覺測量[M].北京:科學出版社,2008.
[4] Smith L N,Smith M L.Automatic Machine Vision Calibration Using Statistical and Neural Network Methods[J].Image and Vision Computing,2005,23:887-899.
[5] Song Limei,Wang Mingping,Lu Lu,et al.High Precision Camera Calibration in Vision Measurement[J].Optics & Laser Technology,2007,39:1413-1420.
[6] 劉棟,趙躍進,尹德森,等.基于特征點跟蹤的數(shù)字穩(wěn)像算法[J].光學技術(shù),2008,34(2):281-284.