李鑫炎,周 敏,張美洲,陳燕軍
(武漢科技大學(xué) a.冶金裝備及其控制教育部重點實驗室;b.機械傳動與制造工程湖北省重點實驗室;c.精密制造研究院,武漢 430081)
當(dāng)前機械臂廣泛應(yīng)用于各種領(lǐng)域,為多種工作減輕勞動強度并大幅度提高工作效率?,F(xiàn)今一部分適配雙目立體視覺[1]的機械臂多以特征點檢測、匹配及三維重建[2]作為對目標(biāo)識別定位的關(guān)鍵技術(shù)。在特征點的檢測匹配算法中,SURF(speeded-up robust feature)[3]是對SIFT(scale-invariant feature-transform)[4]的一種改進,能在保留圖像尺度及旋轉(zhuǎn)不變性的同時處理速度更快,效率更高。但傳統(tǒng)SURF算法會產(chǎn)生較多誤匹配點對且會生成64維描述子,不僅匹配準(zhǔn)確度低,運行中的計算、匹配速度也較慢,無法滿足現(xiàn)場作業(yè)的實時性要求。黃春鳳等[5]基于改進的RANSAC算法剔除錯誤匹配對,彌補了傳統(tǒng)SURF算法存在的匹配精度低的缺陷,但該算法生成的高維特征描述符會導(dǎo)致運行速度偏慢。陳偉等[6]利用FAST角點取代SURF斑點在圖像重合區(qū)域提取特征點,解決了傳統(tǒng)SURF算法計算時間長問題,但利用FAST角點提取特征點時存在檢測特征點重復(fù)、不是最優(yōu)點等缺陷。張文卿等[7]基于Radon變換對SURF描述符降維,有效提高了彩色圖像的配準(zhǔn)速度及配準(zhǔn)精度,但該算法在去除誤匹配點時仍存在需要特征點對較多、剔除誤匹配效果不佳等問題。
針對上述算法存在的問題,本文提出一種改進的SURF算法,在傳統(tǒng)SURF算法的基礎(chǔ)上通過基于rBRIEF的特征描述和基于低方差過濾的特征降維以降低特征描述符的維度,提高運行速度;引進基于Hamming距離的2-NN特征點交叉匹配與基于RANSAC算法的誤匹配剔除以減少重復(fù)特征點對的產(chǎn)生,提高誤匹配剔除效果。最后在自主搭建的實驗系統(tǒng)中應(yīng)用該算法,實現(xiàn)機械臂對目標(biāo)的識別定位及實時自動抓取。實證分析表明,采用該算法能在保證較高匹配準(zhǔn)確度的前提下,使匹配速度較傳統(tǒng)SURF算法大幅度提高,并有效提升機械臂抓取的實時性及精準(zhǔn)性。
搭建的機械臂識別定位及抓取實驗系統(tǒng)主要由四自由度機械臂、計算機、雙目相機、目標(biāo)等組成,其中雙目相機采用“Eye-to-hand”的手眼標(biāo)定方式與計算機及機械臂連接,如圖1所示。
圖1 機械臂識別定位及抓取實驗系統(tǒng)
根據(jù)實驗系統(tǒng)中各模塊不同的功能特點,將機械臂識別定位及抓取實驗系統(tǒng)分為識別定位子系統(tǒng)、控制子系統(tǒng)與抓取子系統(tǒng)。在識別定位子系統(tǒng)中,首先采用改進的SURF算法對目標(biāo)物體經(jīng)過預(yù)處理后的數(shù)字圖像進行特征匹配并篩選錯誤特征匹配對,隨后利用雙目相機的三維重建技術(shù)求得目標(biāo)的空間三維坐標(biāo)信息,完成對目標(biāo)的實時定位??刂谱酉到y(tǒng)主要由Jetson Nano控制系統(tǒng)進行控制。抓取子系統(tǒng)的功能則主要依靠HTS-35H舵機實現(xiàn),將機械臂逆運動學(xué)求解獲得的各關(guān)節(jié)驅(qū)動角信息傳輸?shù)綑C械臂Jetson Nano控制系統(tǒng),再通過Jetson Nano控制HTS-35H舵機帶動末端執(zhí)行器完成對目標(biāo)的抓取作業(yè)。3個子系統(tǒng)通過Visual Studio與MATLAB兩種環(huán)境實現(xiàn)配合運作,機械臂識別定位及抓取實驗系統(tǒng)框架如圖2所示。
SURF算法構(gòu)建的尺度空間能夠提取帶有尺度的特征點[8],rBRIEF描述子可以生成便于特征高速匹配的二進制編碼特征描述子,且較傳統(tǒng)BRIEF描述子還具備了旋轉(zhuǎn)不變性的特性,因此傳統(tǒng)SURF算法搭配rBRIEF描述子可以實現(xiàn)圖像特征的高速匹配及準(zhǔn)確識別。改進的SURF算法具體流程為:利用傳統(tǒng)SURF算法提取出目標(biāo)圖像特征點,確定所取特征點的主方向,再采用rBRIEF描述子與低方差過濾分別對提取特征實施描述及降維。降維后,每個特征點只保留32維的描述子。通過進行基于Hamming距離的2-NN特征點交叉匹配以篩除誤匹配點對,隨后配合RANSAC算法對圖像中仍存在的誤匹配點對進一步剔除。最后,輸出目標(biāo)的特征匹配圖像,傳統(tǒng)SURF算法及改進后的SURF算法流程對比如圖3所示。
傳統(tǒng)SURF算法的基本流程主要包括4個部分:尺度空間建立、特征點定位、特征點主方向確定,特征點描述。由于構(gòu)建尺度空間需要構(gòu)造Hessian矩陣,故需要先對目標(biāo)圖像進行高斯濾波處理為構(gòu)造Hessian矩陣做準(zhǔn)備,經(jīng)過濾波后尺度為σ的點(x,y)處的Hessian矩陣表述如式(1)所示。
(1)
圖4 構(gòu)建尺度空間 圖5 精確定位特征點
傳統(tǒng)SURF算法采用計算特征點圓形領(lǐng)域內(nèi)的Harr小波特征作為確定特征點主方向的方法,即在特征點的圓形鄰域內(nèi),以60°扇形為一個區(qū)間,計算區(qū)間內(nèi)所有點的水平、垂直Harr小波特征的總和并形成矢量,隨后扇形以0.2 rad的間隔重復(fù)旋轉(zhuǎn)并進行統(tǒng)計,最終將扇形方向中最長的矢量作為該特征點的主方向。通過反復(fù)進行上述步驟即可得到所有已提取特征點的主方向,特征點主方向確定過程如圖6所示。
圖6 確定特征點主方向過程
rBRIEF(rotation-aware BRIEF)特征描述子[9]是一種二進制編碼描述子,能夠在事先取得特征點位置的情況下建立特征描述符,可以大幅度加快描述子的建立速度與特征的匹配速度。rBRIEF特征描述流程分為3步:首先,對目標(biāo)圖像進行高斯濾波處理以減少噪聲的干擾;其次,以特征點為中心取一定半徑的圓形鄰域窗口,在此圓形窗口內(nèi)以特征點和窗口質(zhì)心的連線為x軸建立二維坐標(biāo)系并隨機選取一對點,通過比較像素點的灰度值大小進行二進制賦值,如式(2)所示。
(2)
最后,在窗口中隨機選取K對點(K一般取256),重復(fù)上一步中的二進制賦值過程以形成一個二進制編碼,如式(3)所示,此編碼即是對特征點進行描述的特征描述子。
fk(p)=∑1≤i≤k2i-1τ(p,xi,yi)
(3)
式中:τ表示二值測試函數(shù),p(x)、p(y)分別表示隨機點x、y的像素值,i表示1~256區(qū)間的數(shù)字變量。
圖像中提取的每一個特征點經(jīng)過rBRIEF描述子進行特征描述均會得到一個256位二進制描述符,因此改進后的SURF算法將生成64維特征描述子。其中檢測到的無用特征點及生成的高維描述子均會提高運算復(fù)雜度,在進行匹配過程中還將降低匹配速度并產(chǎn)生誤匹配點對。因此本文對高維描述子采用低方差過濾的特征降維方法,以達(dá)到縮短特征匹配時間的效果,具體流程如圖7所示。
圖7 特征降維流程
步驟1:將256位二進制描述符分為4個樣本矩陣,每個矩陣包含64個樣本數(shù)據(jù)且都為8×8標(biāo)準(zhǔn)矩陣;
步驟2:計算樣本矩陣每一列均值,由于每個二進制描述符數(shù)據(jù)為0或1,故將均值設(shè)置為0.5,均值越接近0.5則說明該列方差越大,代表特征樣本值有較多差別,而均值越偏離0.5則說明該列方差越小,代表特征樣本值有較多重復(fù),據(jù)此對列方差大小進行比較,將方差最小列從矩陣中剔除;
步驟3:對4個樣本矩陣重復(fù)上述步驟,剔除所有方差較小的數(shù)據(jù)樣本列并重新進行整合,最終得到128位二進制描述符(32維特征描述子),達(dá)到降維目的。
經(jīng)過降維處理后,首先對128位二進制描述符間進行Hamming距離D的計算,隨后根據(jù)Hamming距離設(shè)置相應(yīng)的誤差閾值ε,對待匹配的兩特征點進行相似度比較以篩除錯誤特征點并將正確匹配對保留,誤差閾值ε可根據(jù)文獻或?qū)嶒灚@得。當(dāng)D<ε時,則代表特征點屬于同一組,可認(rèn)為匹配結(jié)果正確。當(dāng)D>ε時,代表特征點不屬于同一組,可認(rèn)為匹配結(jié)果錯誤。雖然通過Hamming距離匹配已篩除掉大部分的錯誤匹配,但仍有少量的錯誤匹配存在。針對此問題,本文依據(jù)K最鄰近(K-nearest neighbor,KNN)算法[10]能篩除不屬于同一區(qū)域匹配點對的功能,對特征點的特征描述向量進行基于Hamming距離的2-NN交叉匹配[11]。
基于Hamming距離的2-NN交叉匹配通過找到待匹配點的最鄰近點pi與次鄰近點pi+1,并設(shè)置最鄰近點Hamming距離Di與次鄰近點Hamming距離Di+1的比值δ(如式4所示)來判斷最鄰近點是否屬于同一區(qū)域,也避免了因閾值ε太相似而導(dǎo)致的錯配現(xiàn)象。
(4)
篩除非同一區(qū)域的匹配點對后,本文采用隨機抽樣一致(RANSAC)算法[12]對仍存在的誤匹配點對進行剔除,RANSAC算法基本步驟為:首先選擇最小數(shù)據(jù)點集擬合出最優(yōu)的數(shù)據(jù)模型,并使用數(shù)據(jù)集來計算出當(dāng)前數(shù)據(jù)模型,隨后將所有數(shù)據(jù)點帶入得到的當(dāng)前數(shù)據(jù)模型中計算誤差,統(tǒng)計出所有滿足誤差閾值的點數(shù)目(“內(nèi)點”),最后比較當(dāng)前數(shù)據(jù)模型與之前最優(yōu)的數(shù)據(jù)模型間內(nèi)點的數(shù)量,保留最大“內(nèi)點”數(shù)據(jù)模型的參數(shù)及其“內(nèi)點”數(shù)目。重復(fù)上述步驟,直到內(nèi)點數(shù)目超過一定數(shù)量則表示迭代結(jié)束,當(dāng)前數(shù)據(jù)模型已達(dá)到最好。
雙目立體視覺能模擬人眼獲得場景中的深度信息,因此可利用兩臺相機從不同位置同時采集被測目標(biāo)的數(shù)字圖像對并建立圖像特征間的對應(yīng)關(guān)系,隨后基于視差原理,通過計算圖像對應(yīng)點間的位置偏差以獲取目標(biāo)的空間三維位置信息,雙目立體視覺三維重建原理如圖8所示。
圖8 雙目立體視覺三維重建圖
已知空間某點P的世界坐標(biāo)(xw,yw,zw)T與該點對應(yīng)的投影點像素坐標(biāo)(u,v,1)T間的關(guān)系有:
(5)
由于Ml、Mr為兩相機的投影矩陣,z分別為zc1、zc2,故對于兩相機分別有:
(6)
(7)
另外,目標(biāo)圖像與模板圖像的圖像像素坐標(biāo)(u1,v1,1)、(u2,v2,1)及圖像物理坐標(biāo)(xl,yl)、(xr,yr)的轉(zhuǎn)換如式(8)所示。
(8)
將式(7)中zc1及zc2消除并整理寫為矩陣形式可得:
(9)
即:
AP=b
(10)
式中:
由最小二乘法可以得到[13],目標(biāo)的空間三維坐標(biāo)為:
P=(ATA)-1ATb
(11)
本文首先采用SIFT、傳統(tǒng)SURF及本文改進的SURF算法對目標(biāo)進行識別及特征點匹配準(zhǔn)確度對比實驗以驗證改進的SURF算法的有效性和準(zhǔn)確性,隨后開展雙目立體視覺定位實驗以獲取目標(biāo)的空間三維坐標(biāo)信息,最終通過編寫逆運動學(xué)求解程序獲得機械臂的各關(guān)節(jié)驅(qū)動角并完成機械臂抓取實驗。本次實驗的硬件工具為HBV-1780高清雙目相機、HiWonder Jetson Nano機械臂,實驗軟件工具包括Microsoft Visual Studio 2012、PyCharm2021中的python3.9、opencv-python4.6.0.66以及MATLAB2018b,實驗環(huán)境為Inter(R)Core(TM)i5-8300h CPU@2.3 GHz,16 GB內(nèi)存,Windows 10計算機系統(tǒng),抓取實驗?zāi)繕?biāo)為藍(lán)牙耳機充電盒。
4.2.1 目標(biāo)識別及特征點匹配準(zhǔn)確度對比實驗
機械臂在實施抓取過程中,目標(biāo)的位姿可能會因現(xiàn)場情況而發(fā)生旋轉(zhuǎn)、平移等變化,因此在對目標(biāo)圖像與模板圖像采用改進的SURF算法進行匹配時,需分別記錄目標(biāo)在旋轉(zhuǎn)、平移變化下的識別匹配情況,以此完成在目標(biāo)位姿變化下的算法效果檢驗,如圖9所示。
(a) 旋轉(zhuǎn)情況
另外,改進的SURF算法的識別匹配性能也會受光照強度、遮擋及較大圖像尺度變化的影響,故還需分別檢驗在上述變化下的算法效果,以進一步驗證本文算法的有效性,如圖10~圖12所示。
圖10 不同光照強度的算法識別匹配效果
圖11 受遮擋的算法識別匹配效果
圖12 圖像尺度變化的算法識別匹配效果
確定改進的SURF算法在上述因素影響下整體性能仍較好后,分別采用3種算法提取圖像中的特征點并進行匹配,得到的各算法運行結(jié)果如表1所示,圖13為驗證不同算法所進行的目標(biāo)特征點識別及匹配實驗。
表1 各算法運行結(jié)果
(a) SIFT算法特征匹配實驗
分析上述實驗結(jié)果(見表1)可知,由于傳統(tǒng)SURF算法與改進的SURF算法所采用的特征點檢測方法相同,故最終目標(biāo)圖像與模板圖像上的特征點數(shù)均相等。在匹配點數(shù)上,SIFT、傳統(tǒng)SURF較改進的SURF算法更多。但在正確匹配對數(shù)方面,改進的SURF算法點對匹配正確率達(dá)到了93.1%,顯然高于SIFT、傳統(tǒng)SURF算法。另外,改進的SURF算法經(jīng)過誤匹配剔除后,較傳統(tǒng)SURF算法減少了點對的總匹配對數(shù),使特征匹配時間較SIFT算法縮短67%,相比傳統(tǒng)SURF算法縮短51%。綜上所述,改進的SURF算法可在保證較高匹配正確率的前提下提高機械臂對目標(biāo)的識別速度。
4.2.2 雙目立體視覺定位實驗
為了取得目標(biāo)的準(zhǔn)確坐標(biāo),需要在特征匹配后開展雙目立體視覺定位實驗。定位實驗主要是根據(jù)投影點像素坐標(biāo)和相機主點坐標(biāo)分別通過式(8)和式(11)計算出目標(biāo)、模板圖像的物理坐標(biāo)及目標(biāo)的空間三維坐標(biāo)。目標(biāo)的實際測量坐標(biāo)主要通過MATLAB2018b進行雙目相機標(biāo)定并基于PyCharm2021編程顯示其對應(yīng)空間三維坐標(biāo)獲得。經(jīng)過多次實驗后,取實驗中前四組定位結(jié)果,如表2所示。由表2可知,視覺定位的目標(biāo)空間三維坐標(biāo)與目標(biāo)的實際測量坐標(biāo)之間的平均誤差為(0.14,-0.30,1)(mm),定位平均誤差在機械臂識別誤差范圍內(nèi),據(jù)此驗證了本文雙目立體視覺三維重建對目標(biāo)的精確定位效果。
表2 目標(biāo)空間三維坐標(biāo)定位結(jié)果 (mm)
4.2.3 機械臂抓取實驗
在進行抓取實驗前需先調(diào)整好機械臂的初始狀態(tài),同時將目標(biāo)放置在雙目相機視覺范圍內(nèi)。求得目標(biāo)的三維坐標(biāo)后,通過MATLAB機器人工具箱編寫逆運動學(xué)求解程序以獲得機械臂的各個關(guān)節(jié)驅(qū)動角,隨后將驅(qū)動角信息傳輸至機械臂Jetson Nano控制系統(tǒng),由控制系統(tǒng)驅(qū)使HTS-35H舵機帶動機械臂各關(guān)節(jié)運動并執(zhí)行抓取動作,完成抓取后各項坐標(biāo)信息將實時反饋回計算機系統(tǒng),抓取過程如圖14所示。
(a) 步驟1 (b) 步驟2
機械臂完成自主抓取時到達(dá)的實際位置與雙目立體視覺定位坐標(biāo)位置之間產(chǎn)生的平均位置誤差為(1.18,0.52,0.63)(mm),如表3所示。由于目標(biāo)的長、寬、高分別為:58 mm、45 mm、20 mm,且實驗誤差在機械臂允許的抓取誤差范圍內(nèi),因此驗證了本文改進的SURF算法與雙目立體視覺三維重建相結(jié)合能夠?qū)崿F(xiàn)機械臂的精確抓取。
表3 機械臂抓取誤差數(shù)據(jù) (mm)
本文通過改進的SURF算法結(jié)合雙目立體視覺三維重建對機械臂的識別定位及抓取實驗系統(tǒng)進行了深入研究,最終引導(dǎo)機械臂對目標(biāo)實施實時抓取。實驗結(jié)果表明:本文所提出的改進的SURF算法識別正確率可達(dá)到93.1%,整體匹配時間較傳統(tǒng)SURF算法縮短51%,能在保證較高匹配準(zhǔn)確度的前提下,使匹配速度較傳統(tǒng)SURF算法大幅度提升,對機械臂工作區(qū)域內(nèi)目標(biāo)的快速、準(zhǔn)確識別以及機械臂的實時、精確抓取具有較高的實際意義與應(yīng)用價值。