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