張瑞杰,劉凌云,王佳維,姚天勝,李澤亞
(湖北汽車工業(yè)學院電氣與信息工程學院,湖北 442002)
隨著機器視覺技術的發(fā)展,具有視覺傳感功能的工業(yè)機器人已被廣泛應用到各種各樣的工業(yè)場景中,但如何獲取作業(yè)對象的準確位姿仍是一個非常受關注的問題。目前,有基于單目相機、雙目相機及單目相機與結構光傳感器相結合等方式的視覺裝配技術。雙目視覺系統(tǒng)是由兩臺相機對待測物進行姿態(tài)測量,需要解決立體匹配問題,且視覺視場范圍小、成本高;而單目視覺系統(tǒng)不僅測量視場范圍大且設計結構簡單,易于安裝調試[1],因而基于單目攝像機實現(xiàn)工件位姿的定位仍是業(yè)界主流模式。
相較于點、線、曲線等特征而言,空間圓形通過攝像機映射到圖像平面后會變成橢圓形,具有容易識別且抗干擾力強等特點,因而基于單目視覺利用圓及其投影特征的定姿方法被學者廣泛研究[2]。但圓在單目攝像機下的解具有二義性,為獲取工件真實位姿,檢測算法中往往需要附加額外工件信息。翟坤等[3]利用激光測距儀的輔助測距信息來去除二義性,同時使檢測成本變高;苗錫奎等[4]則利用圓外參考點到圓心距離已知且不變性作為約束條件去除二值性;張李俊等[5]引用三線構型姿態(tài)估計方法,以角度為約束條件消除二義性虛假解,需要獲取多種位姿狀態(tài)下的二視圖;SHUI等[6]針對圓柱體這一特定目標,利用圓柱體的兩條母線為約束條件消除圓位姿的二值性;劉凌云等[7]利用工件同一平面兩個不同心圓的位姿檢測公共解去除二義性,但是當具有二義性的兩解差值較小時該方法容易出現(xiàn)誤解。
針對上述問題,本文以同一平面內具有多個不同心圓孔的某汽車零件為研究對象,提出了一種基于單目視覺的位姿檢測方法。即首先依據(jù)圓位姿估計算法得到各孔的二義性位姿信息,再通過向量集搜索篩選算法去除圓二義性虛假解,從而獲取其真實位姿。
設空間某一點M在攝像機坐標系下的坐標為(Xc,Yc,Zc)T,其映射到圖像中的坐標為(u,v)T,由小孔成像原理可得出圖像坐標系與相機坐標系之間坐標轉換關系為:
(1)
式中,du、dv為每一個像素在u、v軸上的物理尺寸;(u0、v0)為圖像中心點坐標;f為相機焦距;K為攝像機內參數(shù)矩陣,空間圓與攝像機成像平面中的影像關系如圖1所示。
由于空間圓繞其所在平面的過圓心法向量旋轉具有對稱性,因此空間圓的姿態(tài)描述可退化為由偏轉角α與俯仰角β兩個參數(shù)進行描述。如圖2所示。設空間圓所在平面法向量為n(nx,ny,nz),其在XcOcYc平面上的投影線與X軸正方向的夾角為偏轉角α且取值范圍為[0,2π],與XcOcYc平面的夾角為俯仰角β且取值范圍為[-π/2,π/2],由數(shù)學幾何知識可推算出[8]:
(2)
(3)
圖1 各坐標系之間關系圖 圖2 圓位姿表述
由以上推論可知,工件的位姿信息可轉化為求取空間圓的法向量及圓心坐標。
半徑為R的空間圓通過相機投影成像時,若相機光軸與工件上圓的法向量平行時,空間圓在成像平面形成圓形;否則成像平面上形成的投影則為橢圓。成像平面顯示圓時,空間圓法向量與相機光軸平行,深度信息僅根據(jù)相似三角形原理即可得出;形成橢圓時,設其擬合橢圓方程為:
(4)
根據(jù)文獻[1]中透視投影關系式,得到攝像機坐標系下的橢圓錐體方程如下:
[XcYcZc]Q[XcYcZc]T=0
(5)
式中,由于Q為實對稱矩陣,根據(jù)實對稱矩陣性質可知必然存在正交矩陣P滿足:
PTQP=diag(λ1,λ2,λ3)
(6)
令
(7)
即可將橢圓錐方程轉換為標準橢圓錐體方程:
(8)
圖3 標準坐標系下橢圓錐
由文獻[8]中方法可求得攝像機坐標系下歸一化的過圓法向量及圓心坐標:
(9)
(10)
式中,R為空間圓的半徑。
由式(9)、式(10)可知,單目相機下單個圓的特征位姿解不唯一,具有二義性。在沒有約束條件的情況下很難確定出實際空間圓的姿態(tài)信息。
對于同一個圓而言,其真實法向量、虛假法向量之間夾角θ與矩陣Q有關(即與圓在攝像機坐標系中的位姿有關),如下:
(11)
不同圓真/假法向量之間的夾角θ隨空間圓位姿不同發(fā)生改變,因此為剔除求解結果中的虛假解從而獲取真實位姿信息,可充分利用某些零件同一表面具有多個不同心孔的特點。即同一平面不同心圓真實法向量理論上互相平行,而夾角θ的不同證實虛假法向量無法同時處于平行關系。
設同一平面上兩個不同心圓的真實單位法向量為n1、n2則有:
n1≈±n2
(12)
本文提出了以標準差最小為評判依據(jù),利用向量集搜索篩選算法獲取空間圓法向量真實解的方法,進一步根據(jù)式(2)、式(3)可求解出空間圓的姿態(tài)。
向量集搜索篩選算法的基本思路如下:假設空間某平面上有n個不同心的圓,由圓位姿估計算法獲得的兩組解分別為Nm1、Nm2(m=1,2,…n),依次完成步驟1~步驟4即可篩選出過圓真實法向量集。
步驟1:以圓1的法向量N11、N12為基準值定義兩個向量集A1、A2,即設N11為向量集A1的初始元素,N12為向量集A2的初始元素;
步驟2:圓2法向量N21、N22分別與N11做點乘運算,將其中較大點乘值對應的向量加入到向量集A1;同時N21、N22與N12做點乘運算,將其中較大點乘值對應的向量加入到向量集A2;
步驟3:提取圓i(2
(13)
式中,Ni[max(N11·Ni1N11·Ni2)]表示N11分別與第i個孔的兩個法向量做點乘運算結果的較大值所對應的法向量;
步驟4:求取兩個向量集的標準差,標準差值較小的向量集所包含的法向量近似平行關系,即為所求圓的真實法向量集。
為驗證文中所述方法的可行性與準確性,針對如圖4所示的氣缸套進行實驗驗證,其對稱外圍四個圓孔半徑為4 mm,中心大圓孔半徑為15.95 mm。選用的攝像機型號是MV-EM200M,其分辨率1600×1200?;贖alcon平臺,采用算子camera_calibration()進行相機標定,依據(jù)張正友標定原理[8],采集不同位姿標定板圖像,依次迭代計算,尋求一組高精度相機內參使通過投影計算得到圖像上的標定點坐標和直接從圖像中提取標定點坐標的距離最小。實驗標定的相機內參如表1所示。
圖4 氣缸套零件
表1 相機內參數(shù)
具體實驗流程為:首先在同等實驗條件下,采集具有一定姿態(tài)的工件圖像,如圖4所示;采集到的圖像存在一定程度的噪聲,本文選用高斯濾波的方法對圖像進行預處理,其中,卷積核大小為(2k+1)*(2k+1)的高斯濾波函數(shù)如式(14)所示:
(14)
式中,σ為高斯函數(shù)的標準差。改變掩膜尺寸大小和σ值,圖像處理效果也會有不同。掩膜尺寸增大,去噪效果更好但圖像邊緣信息會逐漸模糊,根據(jù)文中工件實際處理效果,掩膜尺寸選用3×3,σ值設為0.6,依次代入坐標值即可得到的整數(shù)形式卷積核如下所示,濾波后圖像如圖5a所示。
經(jīng)過濾波處理后,在二值化處理時,采用binary_threshold(Image:Region:Method,LightDark:UsedThreshold)算子,依據(jù)最大類間方差法[9],自適應獲取閾值對圖像進行分割。然后,采用形態(tài)學處理篩選出中心圓、對稱外圍圓感興趣區(qū)域ROI,并使用算子edges_sub_pix(Image:Edges:Filter,Alpha,Low,High:)進行亞像素邊緣輪廓提取,經(jīng)過多次調整參數(shù)對比實驗,當選擇sobel算子,平滑程度Alpha、滯后閾值的低閾值及高閾值分別為3、20、40時,輪廓提取效果最好,如圖5b所示;最后以輪廓圓度及長度為篩選條件,選出需要的輪廓并采用算子fit_ellipse_contour_xld()進行橢圓擬合得出橢圓中心、長短半軸以及偏轉角,擬合橢圓如圖5c、圖5d所示。
(a) 高斯濾波圖像 (b) 輪廓提取
依據(jù)圓位姿估計算法、式(9)求取過圓法向量及圓心坐標,將其由式(2)、式(3)轉換得到以α、β為參數(shù)表示的姿態(tài)信息,其分布情況如圖6所示。圓所在平面的真實法向量應該存在于集中分布區(qū)域,但圖中也可看出,當某一圓孔的兩個法向量計算值比較接近時,法向量的集中分布區(qū)域也有可能存在法向量的虛假姿態(tài),即無法根據(jù)圓的姿態(tài)分布情況去除虛假解得出工件的真實姿態(tài)。
圖6 圓的姿態(tài)分布情況(以α、β為參數(shù))
為進一步準確求取工件的位姿信息,利用向量集搜索篩選法對上述實驗中獲得的10組姿態(tài)數(shù)據(jù)進行處理,然后計算得到兩向量集的標準差分別為:0.307 103、0.114 781;標準差較小的向量集由5個圓的真實姿態(tài)數(shù)據(jù)所得,其在α、β坐標系下分布情況如圖7a所示,對應的圓心坐標如圖7b所示。
(a) 圓的真實姿態(tài)分布情況 (以α、β為參數(shù)) (b) 圓的圓心坐標分布情況
為進一步縮小誤差選取該組仰俯角、偏轉角的平均值作為工件的位姿信息,如表2所示。
表2 實驗結果
通過改變氣缸套的位置和姿態(tài)對上述算法進行了重復性驗證。實驗中共采集了20組圖像進行試驗,其計算得到的標準差分布情況如圖8所示,將每次試驗獲得的兩個標準差中較小者連成折線,由圖可知標準差均小于0.2,說明多圓的真實姿態(tài)數(shù)據(jù)相對集中,計算誤差較小。
圖8 A1、A2向量集對應標準差
考慮到張正友標定法具有操作簡便、標定精度高等優(yōu)點,是當今高精度工業(yè)測量領域使用最廣泛的標定算法之一[13],因此以張正友標定法獲得的位姿作為真實位姿,將本文算法、文獻[5]位姿求解方法同時應用到空間圓弧位姿的檢測并與張正友模板標定法測得的真實位姿作比較。
在同等實驗條件下,僅改變工件不同位姿進行20組對比實驗,工件在攝像機坐標系下的俯仰角、偏轉角的真實值及文中算法、文獻[5]方法檢測結果如圖9所示。
(a) 偏轉角檢測結果對比圖 (b) 俯仰角檢測結果對比圖
由圖可知,相對于文獻[5]方法,本文算法檢測結果更接近空間圓弧所在平面的真實位姿解。兩種方法姿態(tài)角誤差絕對值曲線如圖10所示。本文算法檢測結果的仰俯角、偏轉角度誤差值均小于0.45°,而文獻[5]方法結果誤差接近0.63°。實驗表明,針對同一平面具有多個不同心孔的工件位姿測量中本文算法檢測結果精度要優(yōu)于文獻[5]方法。但由于本文算法需要逐一檢測出平面上所有圓孔的位姿信息,仰俯角、偏轉角是以多個圓孔測得姿態(tài)角的平均值為最終結果,檢測速率略低于文獻[5]方法。
(a) 偏轉角誤差絕對值圖 (b) 俯仰角誤差絕對值圖
針對多圓孔盤類零件,提出了一種基于單目視覺的零件位姿檢測算法,即首先對待檢測工件進行圖像處理,其次利用圓位姿估計算法獲得位姿的可能解,最后利用向量集搜索篩選法消除二義性,準確獲取工件的空間位姿信息,實驗結果表明:向量集搜索篩選算法能準確消除二義性虛假解得出工件圓的法向量組,姿態(tài)角與張正友模板標定結果的誤差小于0.45°,比文獻[5]方法檢測結果誤差減小0.18°,較準確的檢測出了工件的位姿,該方法成本低、簡單可靠。通過實驗表明本文位姿檢測方法可廣泛用于同一表面具有多孔的工件的位姿檢測,在實際工程如機器人抓取現(xiàn)場中具有推廣應用價值。