劉凌云,羅 敏,吳岳敏,李慧玲,馬 彬
(湖北汽車工業(yè)學(xué)院 電氣工程系,湖北 十堰 442002)
空間圓弧在圖像處理中是一種特征明顯且容易識別的形狀,而機(jī)械零部件的基本特征孔、平面正交即可形成空間圓或圓弧,因此通過對機(jī)械零部件上空間圓弧的視覺位姿檢測,間接獲取機(jī)械零部件的空間位置和姿態(tài),在機(jī)器人視覺定位、目標(biāo)跟蹤、視覺避障中具有廣泛的應(yīng)用。目前針對空間圓弧的視覺位姿檢測的研究,主要可以分為兩類,一類是對空間圓弧上特征點在不同圖像中圖像點進(jìn)行匹配的立體匹配算法[1-3],通常計算復(fù)雜度較大且所需硬件成本較高;另一類是針對單個圓特征,利用其它約束條件進(jìn)行空間圓姿態(tài)信息計算并消除二義性[4-8],如邢德奎等[5]提出使用同心圓目標(biāo)快速、準(zhǔn)確地獲取圓心點在圖像中的準(zhǔn)確的投影點位置;魏振忠[6]提出了一種基于空間角度約束以消除空間圓姿態(tài)二義性的方法。
而對于大多數(shù)機(jī)械零部件而言,其特征平面與特征孔正交所形成的為一個或多個單一的空間圓或圓弧,而非同心圓,且空間圓或圓弧的半徑為確定值。因此對同一平面內(nèi)半徑已知的多個空間圓或圓弧進(jìn)行視覺位姿測量具有一定的工程實用價值。這里提出一種以位于同一平面內(nèi)不同心的兩個半徑已知的圓互為約束,并借助于空間圓弧到虛擬像機(jī)中影像的映射數(shù)學(xué)模型,通過參數(shù)交叉迭代、分層搜索的優(yōu)化算法求取空間圓弧位姿的檢測方法。
(1)
圖1 空間圓弧在虛擬像機(jī)中成像數(shù)學(xué)模型
(2)
(3)
由射影幾何原理[9]可知,虛擬映射點pc1i也是實際空間圓弧Arc上的點在虛擬攝像機(jī){C1}中的影像,且當(dāng)虛擬成像平面Γ1與空間圓弧Arc所在平面Γ平行(令此時α=αb、β=βb)時,虛擬映射點序列pc1i正好位于同一圓弧上。此時虛擬成像平面Γ1的法向量在坐標(biāo)系{C}中的描述Cl即為圓弧Arc的姿態(tài)描述,虛擬映射點序列pc1i所構(gòu)成圓的圓心即為實際空間圓圓心的圖像點。
為了借助于虛擬成像平面Γ1與空間平面Γ平行關(guān)系求取空間圓弧Arc的位姿,本文提出了對虛擬映射序列點pc1i進(jìn)行圓擬合,并構(gòu)造擬合圓的圓度誤差函數(shù)[10],以圓度誤差最小為目標(biāo),在有效搜索范圍內(nèi)對姿態(tài)參數(shù)α、β進(jìn)行優(yōu)化,從而得到虛擬攝像機(jī)姿態(tài)的最佳值αb、βb。
圖2 α角度極限范圍的確定
當(dāng)虛擬成像平面分別平行于過P3或P4的射線時對應(yīng)的α轉(zhuǎn)角即為其極限角度αmin、αmax,即滿足關(guān)系式(4):
(4)
同理可以求出姿態(tài)參數(shù)β的極限角度βmin、βmax滿足關(guān)系式(5):
(5)
對于單峰值范圍內(nèi)α、β最佳值的搜索,為了提高尋優(yōu)速度,減小計算負(fù)荷,文中提出了一種采用α、β交叉迭代的分層搜索策略。假設(shè)初始步距為S0,每層步距成等比減小,等比系數(shù)0 (6) 再根據(jù)公式(4)、公式(5)計算姿態(tài)參數(shù)α、β的初始搜索范圍(αmin,αmax)、(βmin,βmax)后,則取初始最佳姿態(tài)βb=βmin或βmax,依次完成步驟①~⑤,迭代求取位姿參數(shù)α、β的最佳值。 ①令β=βb,當(dāng)α在(αmin,αmax)范圍內(nèi)以S0為步距進(jìn)行等間距取樣的過程中,根據(jù)公式(3)依次求取虛擬映射點pc1i的坐標(biāo)(Xc1i,Yc1i,Zc1i);對虛擬映射點pc1i進(jìn)行圓擬合,并求取圓度ej(其中j=1,2,3…M;M為α的取樣數(shù)),將圓度ej中的極大值e1所對應(yīng)的α值設(shè)為αb; ②令α=αb,當(dāng)β在(βmin,βmax)范圍內(nèi)以初始步距S0進(jìn)行等間距取樣的過程中,重復(fù)步驟①,并將系列擬合圓中圓度極大值e2所對應(yīng)的β值設(shè)為βb; ③當(dāng)|e2-e1|>ε(ε為某一極小值)時返回步驟①; ④分層搜索次數(shù)m++;當(dāng)m>N2時,跳到步驟⑤,否則取步距Sm=qm·S0,搜索范圍αmin=αb-S0*q(m-1),αmax=αb+S0*q(m-1),βmin=βb-S0*q(m-1),βmax=βb+S0*q(m-1),返回步驟①; ⑤獲取最佳姿態(tài)參數(shù)αb、βb,并將該姿態(tài)下所對應(yīng)的擬合圓半徑rk設(shè)置為rb、圓心ock的坐標(biāo)設(shè)為(c1Xob,c1Yob,f)T。 當(dāng)α、β姿態(tài)參數(shù)分別取最佳姿態(tài)參數(shù)αb、βb時,即空間圓弧Arc所在平面Γ與虛擬成像平面Γ1處于平行狀態(tài)時,圓弧Arc的姿態(tài)可由虛擬攝像機(jī)坐標(biāo)系{C1}的Z軸單位主矢量在攝像機(jī)坐標(biāo)系{C}中的描述Cl來比表示。由公式(1)可知: (7) (8) 圖3 遍歷搜索時圓弧影像圓度與姿態(tài)參數(shù)的關(guān)系曲線 采用α、β交叉迭代運算前,首先利用分層搜索算法[11]將圓度函數(shù)的兩個峰值區(qū)域分割開來,然后在圓度函數(shù)單峰值區(qū)域1、2內(nèi)分別采用交叉迭代搜索,圓度極大值Fm、最佳姿態(tài)參數(shù)αb、βb與迭代次數(shù)的關(guān)系曲線如圖4所示(步距S=0.16°時),由關(guān)系曲線可知該交叉迭代算法具有較強的收斂性,經(jīng)過少量幾次交叉迭代,圓度最大值、最佳姿態(tài)參數(shù)αb、βb即達(dá)到穩(wěn)定值,從而有效的縮少了搜索范圍。 (a) 區(qū)域1內(nèi)迭代搜索時 (b) 區(qū)域2內(nèi)迭代搜索時圖4 圓度最大值與交叉迭代參數(shù)的關(guān)系曲線 取初始步距S=4°、步距等比系數(shù)q=0.2,在圓度函數(shù)的兩個單峰值區(qū)域?qū)ψ藨B(tài)參數(shù)α、β分別采用交叉迭代分層搜索,獲得的實驗數(shù)據(jù)如表1中所示。 即經(jīng)過三次分層,縮小范圍進(jìn)行搜索,姿態(tài)參數(shù)α、β的檢測精度可達(dá)到±0.16°,耗時僅為46.6s。若采用全范圍遍歷搜索或交叉迭代搜索算法達(dá)到同樣的測量精度,計算機(jī)CPU所需的時間開銷分別為184.5s和72.8s。 將兩組最佳姿態(tài)參數(shù)Arfa_b、Beita_b分別代入公式(7)、公式(8)可獲得圓弧Arc的姿態(tài)描述及圓心位置坐標(biāo)的兩種解,如表2所示。 由表2可知,解2所求位姿數(shù)據(jù)與理論值相比,位置度誤差為0.0227mm,角度誤差為0.0683°,誤差來源主要為搜索過程中步距誤差和計算舍入誤差。 表1 α、β交叉迭代分層搜索實驗數(shù)據(jù) 續(xù)表 表2 求取的圓弧Arc最佳位姿信息數(shù)據(jù)表 為了消除空間圓姿態(tài)檢測的二義性問題,可充分利用待檢測對象同一表面多孔的特點,以兩個不同心的圓或圓弧互為約束,應(yīng)用上述算法正確獲取空間圓或圓弧所在平面的正確姿態(tài)。如某汽車零件上平面的兩孔A、B直徑均為φ8.246mm,孔間距19.023mm,圖5為實際采集的該零件圖像。 (a) 實際采集圖像 (b) A、B圓弧輪廓上特征點提取圖5 圓弧位姿檢測實測圖像及處理 分別對A、B兩孔進(jìn)行子像素輪廓提取后等間距采樣獲取圓弧上圖像點序列。采用與仿真實驗中相同的攝像機(jī)內(nèi)參進(jìn)行實物驗證。針對兩組圖像點序列分別應(yīng)用文中所述圓弧位姿視覺檢測算法(取檢測精度Acc<0.1°),求取A、B兩孔姿態(tài)信息,并針對姿態(tài)公共解求取兩孔圓心的位置信息,如表3中所示。 另外改變工件的位置和姿態(tài)進(jìn)行多次測量,所獲得的A、B孔孔間距測量誤差均小于0.08mm,姿態(tài)公共解的相對誤差均小于0.2°。 表3 孔A、B位姿檢測數(shù)據(jù)表 由此可見,采用上述算法求取空間圓的位姿信息具有較好的精度,也證實了該算法對于消除空間圓姿態(tài)二義性是切實可行的。另外,除了包括攝像機(jī)內(nèi)部參數(shù)的標(biāo)定誤差、特征輪廓提取誤差及計算誤差外,位姿檢測誤差主要來源還包括分層搜索時最終采用的步距。步距越小,檢測精度越高,CPU時間開銷也越大。 本文提出了一種在已知攝像機(jī)內(nèi)部參數(shù)的情況下,僅通過對同一平面內(nèi)不同心的多個圓或圓弧的一次成像,實現(xiàn)空間圓所在平面的姿態(tài)檢測,若空間圓的半徑已知,可實現(xiàn)空間圓圓心位置的檢測。和傳統(tǒng)的空間圓弧位姿檢測算法相比,本文提出的空間圓弧位姿檢測算法不需要復(fù)雜的數(shù)學(xué)計算,收斂性強,且在圓弧識別、抗遮擋等方面具有明顯優(yōu)勢,并能準(zhǔn)確獲取空間圓弧在攝像機(jī)坐標(biāo)系中的位姿信息。該檢測算法特別適合于同一表面具有多孔特征的對象的位姿檢測或孔間距檢測。 [1] HEIKKIL A J, SILVEN O. A four-step camera calibration procedure with implicit image correction[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1997:1106-1112. [2]周富強,張廣軍,江潔.空間圓幾何參數(shù)的非接觸高精度測量方法[J].儀器儀表學(xué)報,2004,25(5):604-607. [3]單寶華,袁文廳,劉洋.一種基于實心圓靶標(biāo)的立體視覺系統(tǒng)標(biāo)定方法[J].光學(xué)學(xué)報,2016,36(9):0915001. [4]KIM J S,GURDJOS P.Geometric and algebraic constraints of projected concentric circles and their applications to camera calibration[J].IEEE Trans Pattern Analysis and Machine Intelligence, 2005,27(4):637-642. [5]邢德奎,達(dá)飛鵬,張虎. 圓形目標(biāo)精密定位方法的研究與應(yīng)用[J].儀器儀表學(xué)報,2009,30(12):2593-2598. [6]魏振忠,趙征,張廣軍. 空間圓姿態(tài)識別二義性的角度約束消除[J]. 光學(xué)精密工程,2010, 18(3) :685-691. [7]陳新禹,馬孜,胡英,等.視覺測量中圓形標(biāo)記點的高精度定位[J]. 光電子.激光, 2013,24(8):1524-1528. [8]劉子騰,白瑞林,王秀平.視覺標(biāo)定中圓心投影點精確定位[J].激光與光電子學(xué)進(jìn)展,2015,52(9):091001. [9]何春華,張雪飛,胡迎春.基于改進(jìn)Sobel算子的邊緣檢測算法的研究[J]. 光學(xué)技術(shù),2012,38(3):323-327. [10]陳天飛,趙吉賓,王銀靈,等.基于射影變換圓陣靶標(biāo)中心像點的計算[J].儀器儀表學(xué)報,2015,36(4): 895-902. [11]鄭靜娜,李紅玉,鄭斯文,等. 利用回溯搜索優(yōu)化算法(BSA) 測量圓度誤差[J].遼寧大學(xué)學(xué)報(自然科學(xué)版),2015,42(4):320-324. [12]劉凌云,錢新恩,羅敏.確定對象單目視覺位姿檢測算法的研究[J].中國機(jī)械工程,2010,21(23):2825-2829. [13] 夏仁波,劉偉軍,趙吉賓,等.基于圓形標(biāo)志點的全自動相機(jī)標(biāo)定方法[J].儀器儀表學(xué)報,2009,30(2):368-373. [14]徐鵬,汪建業(yè),王燕儒.攝像機(jī)標(biāo)定中靶標(biāo)圓心像點坐標(biāo)的精確計算[J].紅外與激光工程,2011,40(7): 1342-1346. [15]韓建棟,楊紅菊.三維視覺測量中圓中心投影誤差分析方法[J].計算機(jī)科學(xué),2010,37(12):247-249. [16]李占利,劉梅,孫瑜.攝影測量中圓形目標(biāo)中心像點計算方法研究[J].儀器儀表學(xué)報,2011,32(10):2235-2241.3 空間幾何圓位姿參數(shù)的求取
4 仿真驗證實驗
4.1 交叉迭代次數(shù)對檢測精度影響的仿真實驗
4.2 交叉迭代分層搜索效果的仿真實驗
4.3 實物實驗
5 結(jié)論