鄒益民
(南京鐵道職業(yè)技術(shù)學(xué)院 通信信號學(xué)院,南京 210031)
液浮陀螺中浮球的靜平衡直接關(guān)系到陀螺儀的精度與綜合性能,在產(chǎn)品生產(chǎn)與調(diào)試過程中是質(zhì)量控制的關(guān)鍵環(huán)節(jié)。由于對浮球靜平衡的指標(biāo)有嚴(yán)格要求,常規(guī)的接觸式檢測方式難以奏效。實(shí)踐中采取將浮球置于一定密度的儀表液之中,使其呈自由懸浮狀態(tài),通過測量其懸浮姿態(tài)的變化來確定其軸向靜平衡狀況。考慮到該浮球由一個圓球及貫通球心的一條軸孔組成,故檢測的目的實(shí)際是確定軸孔相對于參考坐標(biāo)系的方向。若采用光學(xué)準(zhǔn)直儀等類似的光學(xué)方法進(jìn)行檢測則對測試設(shè)備提出了較高要求,本測試系統(tǒng)采用基于數(shù)碼相機(jī)的簡易視覺檢測方式:通過相機(jī)攝取浮球的姿態(tài)信息,再借助軟件與必要的人機(jī)交互即可完成對浮球空間姿態(tài)的非接觸測量。
本檢測系統(tǒng)由測試臺、恒溫冷柜、測試方瓶、數(shù)碼相機(jī)、計算機(jī)及相關(guān)軟件組成。測試臺用于安放計算機(jī)、打印機(jī)等設(shè)備,提供測試工作臺案;恒溫冷柜用于降低測試方瓶中儀表液的揮發(fā),并保證其密度滿足測試要求,其表面透明,可直接對內(nèi)部測試方瓶中的浮球進(jìn)行拍攝;測試方瓶是承載測試用儀表液與浮球的透明容器;數(shù)碼相機(jī)用于透過測試方瓶攝取浮球的平衡狀態(tài);計算機(jī)及相關(guān)軟件用于對數(shù)碼相機(jī)攝取的圖像進(jìn)行交互式處理,最終完成對浮球平衡位置的檢測。
視覺檢測技術(shù)是通過非接觸手段進(jìn)行目標(biāo)物體測量的一種常用方法。一般而言,利用二維圖像信息估計物體的三維參數(shù)需要采用多個視圖的立體視覺方法,但若物體的特征模型已知,則基于單視也能進(jìn)行物體三維位置估計。其中一類是利用物體與其圖像之間的點(diǎn)[1]、線[2]對應(yīng)關(guān)系求解其三維位置,另一類則是基于物體中常有的圓形、球形特征估計其三維位置[3]。本文給出一種基于圓與球特征的浮球軸向姿態(tài)視覺檢測方法[4]:若已知球體、軸孔的形狀參數(shù)及相機(jī)焦距,則可用兩種方法估計所需的方向參數(shù):1)直接估計軸孔圓形端面法向量的方向余弦;2)分別估計球體中心與軸孔圓形端面中心的三維位置,進(jìn)而計算出所需的端面法向量方向余弦。顯然,兩種方法可相互驗(yàn)證。
取空間圓的法向量指向相機(jī)方向,建立如圖1所示的圖像坐標(biāo)系xyz及相機(jī)坐標(biāo)系xcyczc。若相機(jī)焦距為e,相機(jī)光心與投影圖像形成一構(gòu)造圓錐,該構(gòu)造錐將通過空間中的圓特征,而角點(diǎn)位于相機(jī)光心。
圖1 空間圓與其圖像點(diǎn)的投影關(guān)系
若圓特征在圖像平面的投影橢圓可表示為:
式中:
將式(2)的構(gòu)造圓錐方程由圖像坐標(biāo)系經(jīng)坐標(biāo)變換T0變換至相機(jī)坐標(biāo)系,則有:XTAX=0。
取坐標(biāo)變換T1,將方程(2)簡化為下述形式的中心圓錐方程:
可以證明[5]: 是矩陣A的特征值,而[limini]可由相應(yīng)的特征矢量求得。
設(shè)截平面lX+mY+nZ=p與(6)式所示的中心圓錐截交線為圓。作旋轉(zhuǎn)變換T2,使新坐標(biāo)系X'Y'Z'的Z'軸與圓截平面正交,這樣,截交面位于Z'=p,截交線方程為:
因截交線是圓,則有:A=C,B=0,且l2+m2+n2=1,整理可得:
1) 若 ?1< ?2,
事實(shí)上,中心錐圓形截交面方向余弦[l m n]T即為圓特征平面法向方向余弦。
由式(7),再由A=C,B=0,設(shè)圓半徑為r,則還可求得截交圓心為:
對于中心位于x0, y0, z0, 半徑為R的3D球面,有:
從相機(jī)坐標(biāo)系原點(diǎn)Oc(0, 0, 0)向其作切線,形成封裝錐體為[5]:
采用與上節(jié)類似的方法獲取中心錐,則中心圓錐方程可簡化為:
圖2 空間球與其圖像點(diǎn)的投影關(guān)系
比較式(9)即可得球心坐標(biāo):
類似地,可使用式(7)中T1的旋轉(zhuǎn)部分將所求球心坐標(biāo)由XYZ坐標(biāo)系變換至相機(jī)坐標(biāo)系。
考慮如圖3所示的空間球體及中心軸孔形成的圓形端平面的估計問題。定義世界坐標(biāo)系為xwywzw,不失一般性,設(shè)球體中心位于(0, 0, 22),半徑R=25;軸孔端面構(gòu)成的空間圓特征中心位于(0, 0, 0),半徑為r=6.8。相機(jī)焦距e=22,點(diǎn)距為0.02,單位均為mm,再設(shè)相機(jī)坐標(biāo)系xcyczc與世界坐標(biāo)系xwywzw的變換關(guān)系為:
圖3 算法的仿真示例
計算光心與球體及圓端面形成的構(gòu)造錐及其投影橢圓方程,并對兩個投影橢圓分別進(jìn)行采樣,樣本點(diǎn)取30個,再加入零均值,方差為0.1-2pixel范圍的高斯噪聲,重復(fù)50次,計算估計所得的球心、圓心與理論值的均方根誤差,同時計算估計所得端面法矢量、中心線(球心與圓心連線)方向矢量與理論值的均方根誤差角,結(jié)果如圖4所示。由圖可見,本文所述估計方法對于估計球體姿態(tài)是有效的。同時,采用基于球心與圓心連線的中心線估計比直接采用端面圓法向量估計的結(jié)果具有更小的誤差。這主要是由于較小的端面圓投影圖像更易受到噪聲干擾,造成估計誤差相對偏大。
圖4 樣本點(diǎn)噪聲與估計誤差
MATLAB是MathWorks公司開發(fā)的“演算紙”式的程序設(shè)計語言,它提供了強(qiáng)大的矩陣運(yùn)算和圖形處理功能,幾乎在所有的工程計算領(lǐng)域都提供了準(zhǔn)確、高效的工具箱,并可通過m函數(shù)文件擴(kuò)展其算法功能。
本程序首先借助MATLAB靈活的GUI函數(shù)實(shí)現(xiàn)所需的圖形用戶界面,其次充分利用MATLAB豐富的圖像處理功能以實(shí)現(xiàn)圖像的打開、裁剪、灰度化、中值濾波、邊緣檢測、Radon直線檢測等功能,再使用自編的函數(shù)實(shí)現(xiàn)圖像中的圓/橢圓特征檢測及前文中所述的空間球體及中心軸孔的位置估計算法,從而大大簡化了程序設(shè)計。測試程序的功能菜單框圖如圖5所示。
1)“文件”菜單:
“打開圖像”子菜單:打開拍攝的圖像文件,文件格式可是BMP或JPG;
使用下述MATLAB代碼可完成圖像文件的選擇與讀?。?/p>
[FileName PathName]= uigetfile('*.bmp;*.jpg');
RGB=imread(strcat(PathName,FileName));
“退出”子菜單:退出圖像檢測軟件。
2)預(yù)處理”菜單:
“裁剪與灰度化”子菜單:將打開的RGB格式圖像文件裁剪至適當(dāng)大小,以加快程序處理速度。同時完成圖像文件的灰度化。
使用下述MATLAB代碼可由用戶對圖像文件進(jìn)行適當(dāng)?shù)募羟校⒓羟泻蟮腞GB彩色圖象變換成灰度圖像:
RGB_Crop=imcrop(RGB);
GRAY=RGB2gray(RGB_Crop);
“提取邊界”子菜單:增強(qiáng)圖像的邊緣信息(必要時首先對圖像進(jìn)行中值濾波),便于用戶手動選擇樣本點(diǎn)。
使用下述MATLAB代碼可對剪切后的灰度圖像完成中值濾波,并基于LOG算法取得圖像的邊緣圖二值圖:
GRAY=medfilt2(GRAY,[7,7]);
BW=edge(GRAY,'log',[]);
3)“直線檢測”菜單:
“Radon檢測”子菜單:采用Radon算法對浮液水平面進(jìn)行檢測,以校正相機(jī)歪斜的影響。
圖5 程序功能菜單框圖
使用下述MATLAB代碼可實(shí)現(xiàn)對邊緣圖像的Radon變換,在變換后的圖像中搜索最大值點(diǎn),即可魯棒地獲得對水平面的位置檢測,最后實(shí)現(xiàn)對相機(jī)歪斜的相正:
[R,xp]=radon(BW,theta);
4)“圓/橢圓檢測”菜單:
“圓球檢測” 子菜單:利用手工方法,標(biāo)定浮球的投影橢圓輪廓上若干樣本點(diǎn),使用基于幾何距離的非線性最小二乘法獲得投影橢圓輪廓[6];使用下述MATLAB代碼建立一種交互機(jī)制,供用戶使用手工方式對投影橢圓上的若干輪廓點(diǎn)進(jìn)行標(biāo)示,以便后續(xù)基于最小二乘法對投影輪廓進(jìn)行擬合:[X Y]=getpts;
“軸孔檢測” 子菜單:利用手工方法,標(biāo)定浮球的中心軸孔投影橢圓輪廓上若干樣本點(diǎn),使用非線性最小二乘法獲得投影橢圓輪廓;
處理方式與“圓球檢測”相似。
5)“Hough變換”菜單:
“Hough變換”子菜單:對上述圓球、軸孔的檢測結(jié)果利用隨機(jī)Hough變換(RHT)[7]進(jìn)行擬合處理,以降低對圖像點(diǎn)取樣的隨機(jī)性。
6)“計算結(jié)果”菜單:
“擬合結(jié)果圖”子菜單:將上項(xiàng)檢測的結(jié)果迭加在原圖上,以觀察檢測的結(jié)果是否滿足要求;
“浮球姿態(tài)計算”子菜單:根據(jù)上述檢測出的投影輪廓及第2節(jié)算法,對浮球姿態(tài)進(jìn)行估計,并將計算結(jié)果存入日志;
“打開日志”子菜單:顯示日志文件中的相關(guān)信息。
文中討論了一種基于單視圖像對空間給定球體與圓特征進(jìn)行三維位置估計的算法。利用浮球形體中存在的球及圓特征,采用上述算法,即可由圖像信息估計出浮球及其中心軸孔的空間姿態(tài)。使用MATLAB提供的強(qiáng)大的圖像處理工具箱及可視化界面,加之其便捷的程序擴(kuò)展能力,從而可方便地實(shí)現(xiàn)所需的桌面視覺系統(tǒng)的功能,實(shí)現(xiàn)對浮球姿態(tài)的非接觸測量。應(yīng)用結(jié)果表明,該系統(tǒng)可用于對液浮陀螺中浮球的靜平衡狀態(tài)進(jìn)行有效檢測,從而有助于提高陀螺儀的精度與綜合性能。
[1] Horaud R, Conio B, Leboulleux O. An analytic Solution for the perspective 4-Points problem [J]. Comput. Vision,Graphics Image Processing, 1989; 47:33-44.
[2] Haralick R M. Solving Camera Parameters from the Perspective Projective Projection of a Parameterized Curve[J]. Pattern Recognit, 1984; 17(6): 637-645.
[3] Safaee-Rad R, Tchoukanov I, Smith K C, et al. Threedimensional location estimation of circular features for machine vision [J]. IEEE Trans. on Robotics and Automation, 1992; 8:624-640.
[4] 鄒益民, 汪渤. 基于單視圖像的球體姿態(tài)估計[J]. 電子與信息學(xué)報, 2007, 29(8): 1826-1828.
[5] Mosnat E. Problemes de Géométrie Analytique[M]. 3rd Ed, Paris: Vuibert, 1921.
[6] Spath H. Orthogonal distance fitting by circles and ellipses with given area [J]. Comput. Stat. 1997; 12: 343-354.
[7] Xu L, Oja E. Randomized Hough transform: basic mechanisms, algorithms and computational complexities[J]. Computer Vision Graphic Image Process: Image understanding, 1993, 57(2): 131-154.