王欣月,趙柏山
(沈陽工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,沈陽 110870)
在傳統(tǒng)制造業(yè)現(xiàn)代化的今天,計(jì)算機(jī)視覺已經(jīng)成為了當(dāng)下人們探討的焦點(diǎn),計(jì)算機(jī)視覺技術(shù)應(yīng)用于傳統(tǒng)制造業(yè)將具有重要意義。物理傳感器[1]、結(jié)構(gòu)光[2]、激光[3]等技術(shù),都已被用來測(cè)量目標(biāo)物體的三維信息,在無人工干豫條件下達(dá)到了精準(zhǔn)的效果。然而現(xiàn)有的方法采用的硬件設(shè)備都相對(duì)昂貴、不易安裝,普及難度大。而機(jī)器視覺恰好能彌補(bǔ)這方面的缺陷。本研究將雙目視覺技術(shù)與傳統(tǒng)工業(yè)相結(jié)合,通過結(jié)合Harris算子和極限約束來改進(jìn)立體匹配算法,以提高匹配的精度,利用得到3個(gè)特征點(diǎn)以及1個(gè)驗(yàn)證的坐標(biāo)來求取吊具的位姿,在精準(zhǔn)識(shí)別的同時(shí)節(jié)省人力資源。
改進(jìn)方法首先對(duì)采集的圖像進(jìn)行預(yù)處理,同時(shí)對(duì)雙目相機(jī)進(jìn)行標(biāo)定,獲取相機(jī)的內(nèi)外參數(shù),根據(jù)所得參數(shù)對(duì)圖像的特征點(diǎn)提取;然后根據(jù)改進(jìn)的SIFT算法進(jìn)行立體匹配,得到精準(zhǔn)的物體坐標(biāo);最后根據(jù)3D-2D的PnP求解吊具的位姿。
為了更精準(zhǔn)地得到物體的三維坐標(biāo),首先需要進(jìn)行圖像預(yù)處理操作。此處采用對(duì)灰度圖像處理效果最好的加權(quán)平均值法對(duì)圖像進(jìn)行灰度處理,然后通過對(duì)比選擇中值濾波法對(duì)圖像進(jìn)行濾波處理。
在Windows10系統(tǒng)下利用MATLAB R2019a環(huán)境,通過張氏標(biāo)定法[4]進(jìn)行雙目相機(jī)標(biāo)定。得到的左右相機(jī)內(nèi)參為:
左右相機(jī)徑向畸變參數(shù)為:
外參旋轉(zhuǎn)矩陣為:
外參平移矩陣為:
SIFT算法是由David G.Lowe于2004年正式提出的一種基于局部特征的匹配算法。它主要包含尺度空間極值點(diǎn)檢測(cè)、精確定位、特征點(diǎn)方向和特征描述子的產(chǎn)生等步驟。
由于傳統(tǒng)的Harris角點(diǎn)提取方法不能很好地適應(yīng)尺度變換,以及SIFT的特征描述子向量維數(shù)過高,造成圖像的匹配不夠快,在此提出一種基于SIFT的改進(jìn)算法,把Harris算子、極限約束與SIFT算法有效地結(jié)合在一起。該方法在保留SIFT方法優(yōu)點(diǎn)的同時(shí),可以有效地降低特征點(diǎn)數(shù)和提高查找速度,使其達(dá)到更好的效果。改進(jìn)方法的主要步驟如下:
步驟1:構(gòu)建尺度空間的特征點(diǎn)
由于Harris檢測(cè)算子對(duì)尺度的變化比較敏感,所以用該檢測(cè)算子把SIFT算法中的極值點(diǎn)替換掉。改進(jìn)的角點(diǎn)檢測(cè)算子如下:
步驟2:圖像的角點(diǎn)檢測(cè)
計(jì)算亞像素特征點(diǎn)坐標(biāo),通過迭代優(yōu)化,使誤差最小,最終得到具有較高精度的角點(diǎn)坐標(biāo)。
步驟3:引入極限約束
極限約束原理如圖1所示。在右圖中搜尋候選點(diǎn)。在立體匹配過程中,為了減少搜索時(shí)間、提高搜索精度,常常添加約束條件進(jìn)行搜索。圖中Ol和Or分別為兩個(gè)相機(jī)投影的中心點(diǎn);Ol和Or的連線交兩平面于el和er,空間中點(diǎn)P與Ol、Or連線分別交于p和q,p與el連接的直線就是極限,因此p匹配點(diǎn)一定在er與q的連線上。
圖1 極限約束原理
由此可以推導(dǎo)出,當(dāng)相機(jī)所有參數(shù)均已知時(shí),就可得到基礎(chǔ)矩陣F。根據(jù)極限約束原理,計(jì)算左圖特征點(diǎn)在右圖上的極線,取極線上下10像素范圍里的角點(diǎn)作右圖像上的特征點(diǎn)。此方法把特征點(diǎn)的搜索由2維降到1維,有效提高了搜索的效率。
步驟4:確定關(guān)鍵點(diǎn)位置方向
通過與關(guān)鍵點(diǎn)相鄰的像素點(diǎn)可以獲取到關(guān)鍵像素點(diǎn)(x,y)梯度模值和方向:
對(duì)關(guān)鍵點(diǎn)3×3鄰域窗口進(jìn)行采樣[5],對(duì)相鄰像素的梯度進(jìn)行統(tǒng)計(jì),用梯度柱狀圖來表示,然后選擇最大幅度的兩個(gè)方向,作為主方向和輔方向[6],以此即可使關(guān)鍵點(diǎn)有旋轉(zhuǎn)的不變性。
步驟5:SIFT關(guān)鍵點(diǎn)描述子的生成
SIFT算法可以將尺度不變與梯度向量結(jié)合起來,使其對(duì)目標(biāo)物體尺度變換、旋轉(zhuǎn)、模糊等方面表現(xiàn)出良好的穩(wěn)定性,同時(shí)還具備一定的抗噪性和很好的魯棒性,有效地識(shí)別出圖像中的關(guān)鍵點(diǎn)。與其它算法相比,這是一個(gè)很好的局部特征描述子,然而同時(shí)此方法還需要產(chǎn)生128個(gè)維度的描述子,使得建立特征描述子和后續(xù)的匹配耗時(shí)較多,計(jì)算復(fù)雜。對(duì)此,可通過降低特征向量的維度來降低計(jì)算時(shí)間。對(duì)該特征點(diǎn)的描述方法如圖2所示。取以關(guān)鍵點(diǎn)為中心的8×8的像素區(qū)域,每4×4的窗口內(nèi)計(jì)算出8個(gè)方向直方圖,由此,關(guān)鍵點(diǎn)被表示為4×8的32維特征描述子。
圖2 由關(guān)鍵點(diǎn)鄰域梯度信息生成特征向量
步驟6:圖像特征匹配
生成了兩張圖片的描述子后,最終對(duì)兩張圖片中的不同大小的描述子進(jìn)行匹配。至此,完整的改進(jìn)算法流程結(jié)束。
改進(jìn)算法最終應(yīng)用在吊具位姿的估計(jì)上。實(shí)驗(yàn)的設(shè)計(jì)是基于手眼標(biāo)定的基礎(chǔ)上,即相機(jī)在吊具的前端,因此默認(rèn)為吊具的位姿即相機(jī)的位姿。
首先使用上述算法流程中獲得的所有立體匹配的特征點(diǎn),然后利用最小化重投影誤差來算出吊具的位姿。獲取雙目相機(jī)的標(biāo)定參數(shù),通過三角測(cè)量把圖像的特征角點(diǎn)投影到三維空間中。假定0偏移情況下,則有:
在獲取三維空間中的點(diǎn)與相機(jī)的投影點(diǎn)坐標(biāo)之后,采用3D到2D的PnP方法求解吊具位姿R(r)和t,如圖3所示。在世界坐標(biāo)系下空間中有三點(diǎn)A、B和C,將其投影在平面上的點(diǎn)記做a、b和c,驗(yàn)證點(diǎn)記為D-d。
圖3 P3P問題示意圖
由于2D點(diǎn)在圖像中的坐標(biāo)位置已知,而利用世界坐標(biāo)下的坐標(biāo)可以計(jì)算出u、v、w的比值,這時(shí)只有x和y是未知變量。由于直接求解方程過于復(fù)雜,改用吳氏消元法求解[7],求得四種解,最終獲取到在相機(jī)坐標(biāo)系下的三維坐標(biāo),并由此計(jì)算出吊具的位姿R和t。
為估計(jì)吊具的位姿,采用迭代最近點(diǎn)(ICP)進(jìn)行求解。對(duì)ICP的求解使用Bundle Adjustment優(yōu)化方法,通過構(gòu)建最小二乘來獲得最優(yōu)解。假定三維空間中點(diǎn)P及投影點(diǎn)p有n個(gè),求解吊具位姿R(r)和t,記它的李代數(shù)為ξ。設(shè)空間中點(diǎn)的坐標(biāo)為Pi=[Xi,Yi,Zi]T,ui=[ui,vi]T代表投影點(diǎn)的像素坐標(biāo),則式(9)可變形為:
至此,用于表示吊具位姿的坐標(biāo)在世界坐標(biāo)系下的空間位姿的六個(gè)參數(shù)已全部得到,需進(jìn)行實(shí)驗(yàn),證明改進(jìn)方法的可行性。
本實(shí)驗(yàn)使用Windows 10系統(tǒng)MATLAB R2019a為開發(fā)環(huán)境。首先通過實(shí)驗(yàn)來驗(yàn)證改進(jìn)的立體算法的魯棒性和實(shí)時(shí)性,分別選擇不同尺度、不同旋轉(zhuǎn)角度以及不同模糊程度的圖像進(jìn)行匹配,將原圖像與待匹配圖像進(jìn)行匹配。改進(jìn)算法與文獻(xiàn)[8]算法的對(duì)比實(shí)驗(yàn)通過40幅圖像、三種不同干擾情況來進(jìn)行,對(duì)每組錯(cuò)誤匹配率和耗時(shí)進(jìn)行統(tǒng)計(jì)。
不同尺度變換圖像的匹配結(jié)果如圖4所示。
圖4 不同尺度變換圖像匹配結(jié)果
不同旋轉(zhuǎn)角度變換圖像的匹配結(jié)果如圖5所示。
圖5 不同旋轉(zhuǎn)角度變換圖像匹配結(jié)果
不同模糊程度變換圖像的匹配結(jié)果如圖6所示。
圖6 不同模糊程度變換圖像匹配結(jié)果
采用兩種方法對(duì)40張圖像進(jìn)行了比較,并在不同的干擾條件下,分別計(jì)算了匹配率和算法耗時(shí),詳細(xì)比較結(jié)果如表1所示。
表1 不同干擾程度下匹配算法比較
結(jié)果表明,本算法對(duì)不同干擾的正確匹配率都比較高,從算法耗時(shí)比較的結(jié)果來看,此匹配算法所需時(shí)間明顯減少,因此驗(yàn)證了改進(jìn)的算法具有較好的魯棒性。
由上述算法得出空間中的3個(gè)3D-2D對(duì)點(diǎn),以及一對(duì)驗(yàn)證點(diǎn),便可利用PnP算法求解出吊具的空間位姿。為驗(yàn)證此吊具位姿估計(jì)系統(tǒng)的檢測(cè)精度,實(shí)驗(yàn)使用New Tsukuba數(shù)據(jù)集做測(cè)試實(shí)驗(yàn)。數(shù)據(jù)集包含了原始位姿,即Ground Truth Pose。
圖7展示出利用改進(jìn)算法和文獻(xiàn)[8]算法構(gòu)建的位姿結(jié)果??梢钥闯?,改進(jìn)算法求解出的位姿是較為精確的,有較強(qiáng)的實(shí)用性。
圖7 吊具位姿檢測(cè)實(shí)際效果
如表2所示為改進(jìn)算法與文獻(xiàn)[8]算法在平移誤差、旋轉(zhuǎn)誤差以及運(yùn)行時(shí)間上的比較。
表2 兩種算法誤差及耗時(shí)情況比較
可以看出本改進(jìn)算法在平移誤差、旋轉(zhuǎn)誤差以及運(yùn)行時(shí)間上均優(yōu)于文獻(xiàn)[8]的算法,體現(xiàn)出了較強(qiáng)的適應(yīng)性和魯棒性。
本研究針對(duì)吊具位姿估計(jì),通過對(duì)相機(jī)的標(biāo)定和圖像預(yù)處理等操作,基于Harris算子和極限約束,改進(jìn)了SIFT立體匹配算法。在實(shí)驗(yàn)中,采用PnP方法求出的吊具位姿與實(shí)際符合較好,證明了研究的可行性。與其他算法相比,改進(jìn)后的算法提高了匹配的效率和精度,可為后續(xù)吊具位姿匹配研究打下良好基礎(chǔ)。