易 杰, 李 蹊, 易輝成, 劉 苗, 鐘 凱, 胡 興
(1.湖南工業(yè)職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410208;2.華中科技大學(xué) 材料成形與模具技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430074;3.湖南航天天麓新材料檢測(cè)有限責(zé)任公司,湖南 長(zhǎng)沙 410600)
三維物體識(shí)別旨在實(shí)現(xiàn)三維場(chǎng)景中目標(biāo)物體的檢測(cè)及定位,在工農(nóng)業(yè)已得到了廣泛的應(yīng)用[1]。目前,三維物體識(shí)別方法主要有兩大類(lèi):基于全局特征的識(shí)別方法[2]和基于局部特征的識(shí)別方法[3]。全局特征識(shí)別方法需要從場(chǎng)景中將待檢測(cè)的物體分割出來(lái),然后將該物體與要搜索的目標(biāo)物體表面的全部或最顯著的幾何特征進(jìn)行對(duì)比,從而把場(chǎng)景中的目標(biāo)物體識(shí)別出來(lái);而局部方法則是由局部信息來(lái)識(shí)別整體,只需要從場(chǎng)景中提取出關(guān)鍵點(diǎn)、面片等局部特征并與要搜索的目標(biāo)物體進(jìn)行比對(duì)就可以把場(chǎng)景中的目標(biāo)物體識(shí)別出來(lái)。兩類(lèi)方法各有特點(diǎn),但在有遮擋和混疊的場(chǎng)景中識(shí)別效果均不理想。
在全局特征識(shí)別方法方面,Rabbani T[4]等人使用廣義霍夫變換的變體來(lái)識(shí)別物體,由于恢復(fù)三維姿態(tài)計(jì)算量巨大,該方法僅適用于立方體、球體等形狀簡(jiǎn)單的物體;Park I K[5]通過(guò)對(duì)物體的模式進(jìn)行比對(duì)從而識(shí)別出場(chǎng)景中的目標(biāo)物體,該方法的計(jì)算量較大,需采用GPU進(jìn)行加速。
在局部特征識(shí)別方法方面,Chua C[6]等人提出了一種基于點(diǎn)簽名的三維物體識(shí)別方法,將點(diǎn)簽名作為匹配依據(jù)從而識(shí)別出場(chǎng)景中的目標(biāo)物體,該方法對(duì)噪聲比較敏感,且易出現(xiàn)誤匹配;Rusu R B[7]等人提出了一種基于點(diǎn)特征直方圖的三維物體識(shí)別方法,通過(guò)比對(duì)直方圖上的統(tǒng)計(jì)信息從而把場(chǎng)景中的目標(biāo)物體識(shí)別出來(lái),但該方法同樣存在計(jì)算量大、識(shí)別速度較慢的問(wèn)題。
為了保證三維物體在有遮擋和混疊場(chǎng)景中的識(shí)別效果,本文提出一種基于點(diǎn)對(duì)特征的三維點(diǎn)云匹配算法,此算法融合基于點(diǎn)對(duì)特征的全局模型描述和基于快速投票方案的局部曲面匹配方法,無(wú)需對(duì)場(chǎng)景進(jìn)行分割,對(duì)遮擋和混疊具有良好的適應(yīng)性。
點(diǎn)對(duì)特征[8]可以用來(lái)描述兩個(gè)點(diǎn)的相對(duì)位置以及法線方向。對(duì)于任意兩個(gè)點(diǎn)m1,m2以及它們各自的法矢量n1,n2,令差矢量d=m2-m1,并且定義特征F為
F(m1,m2)=(‖d‖2,∠(n1,d),∠(n2,d),
∠(n1,n2))
(1)
點(diǎn)對(duì)特征F的4個(gè)分量如圖1所示。
圖1 點(diǎn)對(duì)特征
全局模型描述表示從點(diǎn)對(duì)特征空間到模型的映射,具體來(lái)說(shuō)是把四維點(diǎn)對(duì)特征映射到具有相似特征向量的點(diǎn)對(duì)(mi,mj)∈M2上。圖2顯示了全局模型描述構(gòu)建的過(guò)程,具有相似特征的模型點(diǎn)對(duì)會(huì)被存儲(chǔ)在哈希表的同一個(gè)槽中,場(chǎng)景特征Fs(sτ,si)作為哈希表的鑰匙可以把與它相似的所有模型特征Fm(mi,mj)在一定的時(shí)間內(nèi)搜索出來(lái)。
圖2 全局模型描述
對(duì)于場(chǎng)景上的任意一個(gè)參考點(diǎn)sτ∈S,如果該參考點(diǎn)處在要檢測(cè)的目標(biāo)物體之上,則一定會(huì)存在一個(gè)來(lái)自模型上的點(diǎn)mτ∈M與之對(duì)應(yīng)。只要將這兩個(gè)點(diǎn)以及其法線對(duì)齊,再?lài)@場(chǎng)景參考點(diǎn)sτ的法線旋轉(zhuǎn)一定的角度即可讓模型和場(chǎng)景對(duì)齊,從而生成目標(biāo)物體的姿態(tài)。模型到場(chǎng)景的剛性變換由模型上的一個(gè)參考點(diǎn)mτ和一個(gè)旋轉(zhuǎn)角α來(lái)表示,(mτ,α)即為模型相對(duì)于場(chǎng)景參考點(diǎn)sτ的局部坐標(biāo)為
(2)
圖3為投票方案的具體過(guò)程:1)把場(chǎng)景參考點(diǎn)sτ和場(chǎng)景中的任意其它點(diǎn)si組成點(diǎn)對(duì),并計(jì)算特征向量Fs(sτ,si);2)將具有相似特征向量的模型點(diǎn)對(duì)(mτ,mi)∈M2存儲(chǔ)在哈希表的同一個(gè)槽中,并把場(chǎng)景點(diǎn)對(duì)的特征向量Fs(sτ,si)作為哈希表的鑰匙對(duì)哈希表進(jìn)行檢索,返回具有相似特征向量的模型點(diǎn)對(duì);3)對(duì)于上述返回的每一個(gè)模型點(diǎn)對(duì),通過(guò)求解式(2)計(jì)算旋轉(zhuǎn)角α;4)旋轉(zhuǎn)角α計(jì)算出來(lái)之后,在二維累加器上給局部坐標(biāo)(mτ,α)投上一票。
圖3 投票方案流程
上述過(guò)程都完成后,投票數(shù)最高的局部坐標(biāo)即為最優(yōu)局部坐標(biāo)。一般來(lái)說(shuō),最優(yōu)局部坐標(biāo)對(duì)應(yīng)的姿態(tài)就是目標(biāo)物體在場(chǎng)景中的真實(shí)姿態(tài),但出于穩(wěn)定性的考慮,那些投票數(shù)較高的局部坐標(biāo)也在本文作者考慮范圍之內(nèi)。
采樣生成的目標(biāo)姿態(tài)并不完全等于目標(biāo)物體在場(chǎng)景中的真實(shí)姿態(tài),需要通過(guò)聚類(lèi)來(lái)提高目標(biāo)姿態(tài)的準(zhǔn)確性。
姿態(tài)聚類(lèi)即把平移和旋轉(zhuǎn)的差異都不超過(guò)設(shè)定閾值的姿態(tài)聚在一起,然后再對(duì)這些姿態(tài)取平均值作為最終的姿態(tài)。聚類(lèi)的投票數(shù)為該聚類(lèi)中所有姿態(tài)投票數(shù)的總和,對(duì)投票數(shù)最高的聚類(lèi)中的姿態(tài)求平均值就可以得到最終的姿態(tài)。同上一節(jié),出于穩(wěn)定性的考慮,那些投票數(shù)較高的聚類(lèi)也在本文考慮范圍之內(nèi)。
經(jīng)過(guò)聚類(lèi)之后,目標(biāo)姿態(tài)的準(zhǔn)確性得到了提高,但與真實(shí)的姿態(tài)相比仍然存在一些差距,需要通過(guò)迭代最近點(diǎn)(ICP)對(duì)目標(biāo)姿態(tài)做進(jìn)一步的優(yōu)化,即實(shí)現(xiàn)目標(biāo)姿態(tài)點(diǎn)云和場(chǎng)景點(diǎn)云的配準(zhǔn)。
由于投票數(shù)較高的姿態(tài)都有可能是目標(biāo)物體在場(chǎng)景中真實(shí)的姿態(tài),因此需要對(duì)這些姿態(tài)進(jìn)行篩選,從而把真實(shí)的目標(biāo)姿態(tài)判斷出來(lái)。考慮到真實(shí)的目標(biāo)姿態(tài)點(diǎn)云與場(chǎng)景點(diǎn)云部分重合,即匹配點(diǎn)數(shù)目較多;而虛假的目標(biāo)姿態(tài)點(diǎn)云則相反。因此,利用Kd-Tree最近鄰搜索統(tǒng)計(jì)目標(biāo)姿態(tài)點(diǎn)云與場(chǎng)景點(diǎn)云匹配點(diǎn)的個(gè)數(shù),當(dāng)大于某一閾值時(shí)就可以認(rèn)為該姿態(tài)是真實(shí)的姿態(tài)。值得注意的是,這里提到的匹配點(diǎn)指的是相對(duì)距離以及法線夾角都比較小的點(diǎn)對(duì)。
Kd-Tree有半徑查詢(xún)以及K近鄰查詢(xún)兩種查詢(xún)方式,下面以半徑查詢(xún)?yōu)槔龑?duì)目標(biāo)姿態(tài)篩選算法的流程進(jìn)行介紹。距離閾值表示為DistanceThreshold,法線夾角的閾值表示為AngleThreshold,匹配點(diǎn)數(shù)目的閾值表示為NumThreshold。
基于Kd-Tree的目標(biāo)姿態(tài)篩選算法的具體實(shí)現(xiàn)步驟如下:
1)讀取目標(biāo)姿態(tài)點(diǎn)云Ptarget和場(chǎng)景點(diǎn)云Pscene;
2)將Ptarget中的任意一個(gè)點(diǎn)pi作為查詢(xún)點(diǎn),Pscene作為被查詢(xún)的對(duì)象;
3)在Pscene中找出滿(mǎn)足‖dist(pi,si)‖2 5)遍歷Ptarget上的點(diǎn),統(tǒng)計(jì)匹配點(diǎn)的總數(shù),記為num,判斷num≥NumThreshold是否成立,若成立,則該姿態(tài)是目標(biāo)物體在場(chǎng)景中真實(shí)的姿態(tài)。 本文采用華中科技大學(xué)快速制造中心研發(fā)的PowerScan面結(jié)構(gòu)光三維測(cè)量設(shè)備獲取點(diǎn)云數(shù)據(jù)進(jìn)行實(shí)驗(yàn)驗(yàn)證。所用設(shè)備由2個(gè)工業(yè)相機(jī)和1個(gè)數(shù)字光柵投影儀組成,單次測(cè)量范圍為500 mm×400 mm,單次測(cè)量誤差為±0.03 mm。 設(shè)計(jì)了無(wú)遮擋和混疊以及有遮擋和混疊兩類(lèi)場(chǎng)景進(jìn)行對(duì)比。目標(biāo)物體選為三通管,如圖4所示。 圖4 三通管 本文算法的識(shí)別效果如圖5所示。 圖5 識(shí)別效果 對(duì)于不同復(fù)雜程度的場(chǎng)景,本文算法的識(shí)別率和識(shí)別時(shí)間如表1所示。 表1 不同場(chǎng)景的識(shí)別率和識(shí)別時(shí)間 表1可知,本文算法在無(wú)遮擋和混疊的場(chǎng)景中識(shí)別率很高,在有遮擋和混疊的場(chǎng)景中識(shí)別率略有降低,但依然處在一個(gè)較高的水平;此外,本文算法的識(shí)別時(shí)間均小于4 s,識(shí)別速度較快,如果不通過(guò)ICP進(jìn)行配準(zhǔn)那么識(shí)別時(shí)間均小于1 s,識(shí)別速度就很快。 綜上,本文的算法在有遮擋和混疊的場(chǎng)景中識(shí)別效果較為理想,具備一定的抗遮擋和混疊性能。 提出了一種基于點(diǎn)對(duì)特征的三維點(diǎn)云匹配算法。該算法融合了基于點(diǎn)對(duì)特征的全局模型描述和基于快速投票方案的局部曲面匹配方法,從而有效規(guī)避了全局方法和局部方法各自的不足。實(shí)驗(yàn)結(jié)果表明,所提算法對(duì)于有遮擋和混疊的場(chǎng)景識(shí)別效果較為理想。3 實(shí)驗(yàn)驗(yàn)證
3.1 實(shí)驗(yàn)方案設(shè)計(jì)
3.2 實(shí)驗(yàn)結(jié)果與分析
4 結(jié) 論