本發(fā)明涉及的是一種圖形處理領(lǐng)域的技術(shù),具體是一種弱紋理工件及其三維位姿的識別檢測方法及系統(tǒng)。
背景技術(shù):
隨著機器視覺技術(shù)的不斷發(fā)展,工業(yè)機器人可以依靠智能視覺系統(tǒng)自動準確高效地完成工件抓取,加工,打磨以及裝配等等任務(wù),而在以前這些任務(wù)往往都需要工人對機器人的示教以及協(xié)助才能很好得完成,機器視覺技術(shù)的引入將大幅度提升產(chǎn)品質(zhì)量和生產(chǎn)效率。工件識別與三維姿態(tài)估計的目的是對不同類別和結(jié)構(gòu)的工件進行識別并獲取其相對于視覺傳感器的三維位置和姿態(tài)信息,用來引導(dǎo)工業(yè)機器人自動完成工件的抓取,加工,打磨以及裝配等任務(wù)。而金屬材質(zhì)的工件屬于弱紋理物體的范疇,對于弱紋理物體的識別與三維位姿估計,傳統(tǒng)的SIFT或SURF等離散特征點匹配的方法是不可取的,工件表面紋理的缺少帶來了其在三維空間中位姿估計的困難。而弱紋理工件識別與三維位姿估計精度的提高將同樣提升工業(yè)機器人自動打磨,裝配工件的精度,將對實現(xiàn)智能化工廠具有重大意義。
現(xiàn)有的弱紋理工件識別與三維位姿估計方法存在如下技術(shù)問題:1)基于二維圖像的工件識別,對應(yīng)用場景較高,通常在工廠中只能用在流水線上工件的抓取和分揀,同時還要求傳送帶背景與工件有一定的對比度,否則難以滿足要求。對于機器人打磨或裝配零件需要的工件三維位姿信息則無法準確得到;2)基于3D攝像頭實現(xiàn)工件識別,數(shù)據(jù)獲取以及處理較為復(fù)雜,計算量較大,而且大部分也只適用于bin-picking場景的單一工件三維位姿獲取。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)存在的上述不足,提出一種弱紋理工件及其三維位姿的識別檢測方法及系統(tǒng),使工業(yè)機器人能夠準確智能地識別弱紋理工件以及獲取其三維位姿信息,完成工件的打磨和裝配等任務(wù)。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
本發(fā)明涉及一種弱紋理工件及其三維位姿的識別檢測方法,通過將傳感器采集到的目標工件的彩色圖像與梯度方向圖模板庫進行基于相似度評價函數(shù)的圖像金字塔搜索后,根據(jù)匹配結(jié)果在深度圖像上建立三維點云,最后經(jīng)對三維點云的濾波和迭代最近點計算,得到目標工件的精確三維位姿。
所述的傳感器為RGB-D傳感器,即同時采集顏色圖像和每個像素對應(yīng)的深度圖像。
本發(fā)明具體包括以下步驟:
1)建立目標工件在各個視角下的二維圖像模板,該模板是以二進制編碼的梯度方向圖作為特征的模板。
2)對輸入的彩色圖像進行模板匹配,并建立相似度評價函數(shù),利用圖像金字塔搜索找到在彩色圖像與目標工件相似度最高的位置。
3)在深度圖像下獲得步驟2)中對應(yīng)的目標工件相似度最高的位置,建立該位置上與二維圖像模板大小一樣的區(qū)域,即匹配區(qū)域的三維點云。
4)對得到的三維點云進行點云濾波后,與目標工件的模型點云進行ICP(Iterative Closet Points迭代最近點)運算,計算出目標工件相對于傳感器最佳的三維位姿。
技術(shù)效果
與現(xiàn)有技術(shù)相比,本發(fā)明采用RGB-D傳感器,相比3D立體視覺系統(tǒng),成本較低,系統(tǒng)搭建比較簡單。其次,本發(fā)明對于目標工件的識別與三維姿態(tài)估計只需要提供目標工件的三維模型,圖像的模板通過仿真環(huán)境生成,算法操作簡單。第三,本發(fā)明在二維圖像匹配上采用二進制編碼的梯度方向圖作為匹配特征,由于在RGB三通道中獲取梯度最大值,對于雜亂背景干擾具有較強魯棒性。第四,本發(fā)明在模板匹配過程中使用了邏輯與運算,并采用了圖像金字塔搜索機制,大大提高了算法的實時性。第五,本發(fā)明使用了點云濾波器對目標工件點云進行了精細化處理,避免了迭代運算中背景點云的干擾,進一步提高了工件的三維位姿估計精度。第六,本發(fā)明結(jié)合了二維圖像匹配以及三維點云配準的技術(shù),提供了一種針對弱紋理工件的識別與三維姿態(tài)估計方法,可以廣泛用于機器人智能打磨以及裝配等任務(wù)。
附圖說明
圖1為本發(fā)明的方法流程圖;
圖2為本發(fā)明圖像梯度方向二進制編碼示意圖;
圖3為本發(fā)明原始圖像與相應(yīng)生成的梯度方向圖;
圖中:a為原始圖像,b為相應(yīng)生成的梯度方向圖;
圖4為本發(fā)明非極大值抑制與雙閾值檢測示意圖;
圖中:a為本發(fā)明非極大值抑制的示意圖,b為雙閾值檢測的示意圖;
圖5為本發(fā)明圖像金字塔搜索示意圖;
圖中:a為原始圖像,b為梯度方向圖;
圖6為本發(fā)明采用5種弱紋理工件進行的實驗示意圖;
圖中:a表示傳感器獲取的輸入圖像,b表示5種實驗的弱紋理工件。
具體實施方式
本實施例涉及一種弱紋理工件及其三維位姿的識別檢測系統(tǒng),包括:視覺傳感器模塊、識別模塊以及控制模塊,其中:視覺傳感器模塊將目標工件的彩色圖像和對應(yīng)的深度圖像輸出至傳遞到識別模塊,識別模塊根據(jù)內(nèi)置的目標工件三維模型生成一系列模板,并將檢測到的目標工件三維位姿信息傳遞到控制模塊,控制模塊將目標工件三維位姿信息轉(zhuǎn)換為絕對和/或相對坐標系并生成操作指令以實現(xiàn)精確操作。
如圖1所示,本實施例提供的弱紋理工件識別與三維位姿估計方法包括:目標工件模板創(chuàng)建,二維模板匹配,獲取目標工件點云以及計算三維位姿變換四個步驟。
本實施例具體包括以下步驟:
1.1)在OpenGL(開源圖形庫)中導(dǎo)入目標工件的三維模型,這個模型的格式可以是STL或者是OBJ,確定需要建立模板的數(shù)量,并在OpenGL建立的仿真環(huán)境中生成目標工件不同的視角位置,數(shù)量和需要建立的模板數(shù)量一致。這些視角的視角點位置是均勻分布在以目標工件中心為球心的球面上,該球面的半徑設(shè)置根據(jù)建立模板的數(shù)量決定。
1.2)建立二進制編碼的梯度方向圖,并在仿真環(huán)境中生成不同視角下目標工件的梯度方向圖。
所述的梯度方向圖通過以下方式建立:首先計算原始圖像中每個像素位置在R,G,B三個通道下的梯度值大小,梯度值以每個像素的3×3鄰域來計算,計算方式使用X,Y方向Sobel算子。接著選擇R,G,B三個通道中梯度值最大的作為該像素位置的梯度值,同時記錄該像素位置的梯度方向。我們把梯度方向的角度分解成4個區(qū)域,分別是-22.5度到22.5度為區(qū)域1,22.5度到67.5度為區(qū)域2,67.5度到112.5度為區(qū)域3,112.5度到157.5度為區(qū)域4。這里為了提高計算效率,角度相差180度的梯度方向是一致的。同時4個梯度方向的區(qū)域編碼成4個不同的二進制值,依次為0001,0010,0100,1000。最后對原始圖像中的每個像素位置做閾值判斷,該像素位置的梯度方向在該區(qū)域編碼成相應(yīng)的二進制值保存。
當(dāng)該像素位置的梯度值大小小于閾值則編碼成0000,由此將每個元素圖像生成二進制編碼的梯度方向圖,具體為:biori(T,p(r,c))=BI{maxori(T,p(r,c))},其中:p(r,c)表示的為像素位置,r為圖像的像素行位置,c為圖像的像素列位置,biori(T,p(r,c))為原始圖像T在像素位置p(r,c)的二進制編碼梯度方向,maxori(T,p(r,c))為原始圖像T在像素位置p(r,c)的梯度方向,BI為二進制編碼操作,表示的為原始圖像T在像素位置p(r,c)不同通道的梯度方向。
1.3)依次采用非極大值抑制和雙閾值檢測方式對梯度方向圖進行優(yōu)化。
所述的非極大值抑制是指:首先計算得到每個原始圖像中像素位置p(r,c)的梯度方向,然后在該位置的3×3鄰域計算處在該梯度方向上的另外兩個像素位置梯度值大小,再判斷這兩個梯度值是否都小于鄰域中心的梯度值,如果都小,這說明該像素位置的梯度是局部極大值并保留下來,如果其中有一個比較大則說明該像素位置的梯度并不是局部極大值,需要剔除。
所述的雙閾值檢測是指:雙閾值分為高閾值和低閾值,首先通過高閾值建立梯度方向圖,在每個生成二進制編碼梯度方向的像素位置3×3鄰域下進行搜索,并計算搜索空間下每個像素位置的梯度值,如果梯度值大于低閾值則將該位置增加進原有的梯度方向圖,如果梯度值小于低閾值則不做處理。
2.1)從RGB-D傳感器獲取彩色圖像,首先生成相應(yīng)的二進制編碼梯度方向圖,其操作方式與步驟1)相同。
2.1)結(jié)合之前建立的目標工件的模板進行模板匹配,找到與模板相似度最高的圖像位置以及相應(yīng)的模板,相似度評價函數(shù)為:S{I,T,p(r,c)}=∑q∈D(T){biori(I,p+q)&biori(T,q)},其中:biori(T,q)為模板T在像素位置q的二進制編碼梯度方向,D(T)為模板T的像素定義域,biori(I,p+q)為輸入圖像I在像素位置p+q的二進制編碼梯度方向,&表示的為按位邏輯與運算。
在相似度評價函數(shù)中,如果模板中某個像素位置的梯度方向和輸入圖像中的某個對應(yīng)像素位置的梯度方向相同則會通過與運算加一,因此,相似度評價函數(shù)的主要表征模板梯度方向圖與輸入圖像梯度方向圖的哪一部分最接近。由于目標工件的模板較多,模板匹配的搜索過程采用圖像金字塔的搜索機制進行。
所述的圖像金字塔的搜索機制是指:將輸入圖像降低分辨率,生成兩個低分辨率的圖像,三個圖像分辨率依次遞減,形成金字塔的三層,頂層分辨率最小,低層為輸入圖像,同時模板也形成圖像金字塔的結(jié)構(gòu);然后,在金字塔頂層進行模板全局搜索,找到相似度前10%的圖像位置,接著在第二層進行局部搜索,搜索范圍為上一層結(jié)果圖像位置的10×10鄰域,最后,在第三層即輸入圖像也是進行局部搜索并得到搜索結(jié)果,能夠提高算法的實時性。
3.1)RGB-D傳感器得到的彩色圖像和深度圖像的每個像素位置之間是相互對應(yīng)的,通過步驟2)找到了彩色圖像中目標工件的位置,也同樣找到了目標工件在深度圖像中的位置。
3.2)由于深度圖像包含的是深度信息,在找到深度圖像中目標工件的位置后,可以獲取匹配模板范圍內(nèi)的深度數(shù)據(jù),生成三維點云。
4.1)步驟3)中生成的點云圖不僅包含了目標工件點云也包含了一些背景點云以及一些環(huán)境干擾點,首先采用PCL(Point Cloud Library點云庫)中的統(tǒng)計離群點濾波器和歐式聚類對原始點云進行濾波,使目標工件點云精細化。
所述的統(tǒng)計離群點濾波器是指:對原始點云中點的三維坐標進行統(tǒng)計計算,可以得到點云的點坐標概率分布,從而獲得遠離均值的點坐標并將該點坐標去除,實現(xiàn)過濾。
所述的歐式聚類是指:計算點云中每個點之間的歐式距離,距離較近的聚為一類,這樣以分離目標工件點云和背景點云。
4.2)目標工件的三維模型可以導(dǎo)出其三維點云數(shù)據(jù),采用ICP(Iterative Closet Points迭代最近點)的方法來計算目標工件點云與模型點云之間的三維位姿變換,模型點云的初始位姿與傳感器位姿重合,因此得到的三維位姿變換即為目標工件相對于傳感器的三維位姿變換。
所述的迭代最近點的方法是指:通過不斷迭代運算,最小化原始點云與目標點云中對應(yīng)點間的歐式距離,來實現(xiàn)原始點云與目標點云的精確拼合,并得到原始點云的位姿變換矩陣。
如圖2所示,本實施例圖像梯度方向的二進制編碼方式,梯度方向的角度被分解成4個區(qū)域,分別是-22.5度到22.5度為區(qū)域1,22.5度到67.5度為區(qū)域2,67.5度到112.5度為區(qū)域3,112.5度到157.5度為區(qū)域4,同時4個梯度方向的區(qū)域編碼成4個不同的二進制值,依次為0001,0010,0100,1000。
如圖4a所示,首先計算得到每個原始圖像中像素位置p(r,c)的梯度方向,然后在該位置的3×3鄰域計算處在該梯度方向上的另外兩個像素位置pn和pm的梯度值大小,再判斷這兩個梯度值是否都小于鄰域中心的梯度值,如果都小,這說明該像素位置的梯度是局部極大值并保留下來,如果其中有一個比較大則說明該像素位置的梯度并不是局部極大值,需要剔除。
如圖4b所示,為本實施例雙閾值檢測的示意圖,雙閾值分為高閾值和低閾值,首先通過高閾值建立梯度方向圖,在每個生成二進制編碼梯度方向的像素位置p(r,c)3×3鄰域下進行搜索,并計算搜索空間下每個像素位置的梯度值,如果梯度值大于低閾值則將該位置增加進原有的梯度方向圖,比如pd(r+1,c+1),如果梯度值小于低閾值則不做處理,。
如圖5所示,為本實施例圖像金字塔搜索的示意圖,將原始圖像進行兩次下采樣建立三層的圖像金字塔結(jié)構(gòu),對每一層原始圖像建立相應(yīng)的梯度方向圖,a為輸入的原始圖像以及模板的原始圖像,b為相應(yīng)的梯度方向圖。首先,在金字塔頂層的梯度方向圖中進行模板全局搜索,找到相似度前10%的圖像位置,接著在第二層進行局部搜索,搜索范圍為上一層結(jié)果圖像位置的10×10鄰域,最后,在第三層即輸入圖像也是進行局部搜索并得到搜索結(jié)果。
通過以下實驗數(shù)據(jù)進一步說明本實施例方法的有效性:
如圖6所示,針對5種工件進行識別與三維位姿估計,實驗環(huán)境為:操作系統(tǒng)為Ubuntu14.04的PC機,配置為Intel Core i5CPU,2.90GHz內(nèi)存為8GB。每個目標工件建立1326個模板,實驗參數(shù)為:雙閾值檢測高閾值為150,低閾值為50,圖像金字塔層數(shù)為3,統(tǒng)計離群點濾波器中分析點集的點數(shù)為50,標準偏差乘數(shù)為0.01,歐式聚類中聚類公差為0.02,最小聚類點數(shù)為10。
對5種工件進行100次識別實驗,識別誤差的定義為目標工件位姿估計與實際位姿之間的均方根差,如果識別誤差小于0.1倍的目標工件外接球直徑則認為是識別正確,否則識別失敗,識別率定義為識別正確次數(shù)占總識別次數(shù)的百分比。
表1工件識別率統(tǒng)計
如表1所示,使用不同方案進行識別實驗并統(tǒng)計對比,結(jié)果說明本實施例方法相對與傳統(tǒng)的SIFT特征點匹配結(jié)合ICP迭代最近點計算以及單獨ICP迭代最近點計算,能夠獲得較高的識別率。
上述具體實施可由本領(lǐng)域技術(shù)人員在不背離本發(fā)明原理和宗旨的前提下以不同的方式對其進行局部調(diào)整,本發(fā)明的保護范圍以權(quán)利要求書為準且不由上述具體實施所限,在其范圍內(nèi)的各個實現(xiàn)方案均受本發(fā)明之約束。