沈佳凱 高紅衛(wèi),2 郭旭俠,2
(1.寶雞文理學院機械工程學院 寶雞 721016)
(2.陜西省機器人關鍵零部件先進制造與評估省市共建重點實驗室 寶雞 721016)
隨著科學技術的進步和人們對生活質(zhì)量要求的提高,越來越多的高技術產(chǎn)品出現(xiàn)在人們的生活中,室內(nèi)服務機器人也受到了更廣泛的關注。物品識別作為服務機器人一個基本又重要的功能之一,一直以來都受到國內(nèi)外很多學者的關注。
物體檢測識別主要依靠對視覺感知設備傳輸回來的數(shù)據(jù)進行處理并得到需要的結(jié)果,數(shù)據(jù)主要分為二維圖像數(shù)據(jù)和三維深度數(shù)據(jù)[1]。二維圖像數(shù)據(jù)即數(shù)字像素矩陣,基于二維圖像處理的方法主要利用物體的紋理特征、顏色特征、局部特征等,如顏色直方圖法[2]、尺度不變特征變換(Scale-invari?ant feature transform,SIFT)[3~4]、加 速 穩(wěn) 健 特 征(speeded up robust features,SURF)[5]、ORB 特征提取(Oriented FAST and Rotated BRIEF)[6]等,而基于三維深度信息處理的方法有徑向歸一化描述(Nor?mal Aligned Radial Feature,NARF)[7]、聚類視點特征直方圖(clustered viewpoint feature histogram,CVFH)[8]等。
本文系統(tǒng)采用基于Kinect采集的點云數(shù)據(jù),對點云數(shù)據(jù)進行分割,記錄生成的物體位置數(shù)據(jù)傳送到彩色圖像上截取出預選物品圖片,并采用FLANN[9]結(jié)合 SURF進行關鍵點的描述和匹配[10],實驗結(jié)果表明,該系統(tǒng)能夠有效地檢測出物品并進行識別。
本文提出的物品識別系統(tǒng)主要分為檢測和識別兩部分,如圖1所示。物體檢測部分,將輸入的三維點云進行坐標變換,提取出最大平面并分割,再將平面上的點云聚類分割,計算聚類的空間坐標;物品識別部分,將聚類的空間坐標轉(zhuǎn)換成RGB圖像上對應的坐標并截取出圖片,提取其SURF特征并與本地的模版庫進行特征匹配,最后標注識別結(jié)果。

圖1 系統(tǒng)總體流程
通常由Kinect V2傳遞回來的顏色和深度信息是全局的,因此為了識別桌面上的物體,需要在聚類分割前提取出平面,提取平面則需要用點云分割的方法。
現(xiàn)實場景中,墻面地面桌面大多是大平面,桌子上的物體一般是圓柱體或者長方體,可以把這些幾何外形歸結(jié)為簡單的幾何形狀,并用方程或者有限的參數(shù)來描述,因此提取平面通常采用隨機抽樣一致性(Random Sample Consensus,RANSAC)算法[11]。該算法可以從一組包含“局外點”的樣本數(shù)據(jù)集中,通過迭代方式估計出數(shù)學模型的參數(shù),得到有效樣本數(shù)據(jù)。其主要步驟如下:輸入所需最小點數(shù)n和所需迭代次數(shù)k,辨別某點是否匹配擬合結(jié)構模型的閾值t,判斷擬合是否夠好時所需的附近點數(shù)量d,迭代k次后,循環(huán)執(zhí)行以下步驟:從數(shù)據(jù)中隨機均勻地采樣n個點,擬合這n個點,對采樣外的每一個數(shù)據(jù)點,再循環(huán)執(zhí)行比較點到擬合結(jié)構模型的距離和t的大小,如果比t小,那么判斷點離得夠近。循環(huán)結(jié)束后,如果有d個或更多的點靠近擬合的結(jié)構模型,那么擬合結(jié)果合格。用所有這些點重新擬合,并將結(jié)果添加到合格擬合集中。最后,以擬合誤差作為挑選標準,從合格擬合集中選出最佳擬合。
PCL中支持了大量幾何模型的RANSAC檢測,可以很方便地對點云進行分割。本文用到的幾何模型類型為平面模型,因此輸入點云數(shù)據(jù),設置模型類型和距離閾值,使用隨機參數(shù)估計方法,即可計算出平面集Ti,但是這些平面集除了包括桌面平面外,還會包括墻面和地面,本文通過加入平面高度信息和垂直度信息輔助判斷,剔除非桌面平面,得到目標平面Tg。
在物體聚類之前,利用點云凸包算法把物體點云提取出來,并轉(zhuǎn)換成二維的點云集P。
通常采用歐式聚類分割算法[12~13]來分割物體,該算法能夠?qū)⒖臻g內(nèi)一定閾值內(nèi)的點合并為一類,輸入m個數(shù)據(jù)點,通過點與點之間的遠近性質(zhì)來分割聚類,其公式為

式中,pj,pj∈Sg。傳統(tǒng)的歐式聚類分割算法非常容易造成過度分割或分割不足的現(xiàn)象,因此,本文通過加入顏色條件和法線條件來輔助判斷[14],算法步驟如下:
1)設置一個空的點云數(shù)據(jù)集empty,將計算得到的目標平面Tg的邊界值加入到empty中;
2)設置一個空的索引M,計算剩余點在Tg上的投影,把其中在邊界內(nèi)的投影點加入到M中,否則跳過;
3)創(chuàng)建一個空的聚類集L和一個空的隊列R,并為M對應的點創(chuàng)建一個Kd-Tree;
4)對每一個點Pi∈P,以Pi為中心,以r<dth為半徑找到Pi的最近鄰元素集合,對每一的 Pi∈,檢查其距離、色差和法線夾角是否小于給定的閾值,是則將該點加入隊列R,處理完所有點后,將R加入到聚類集L中;
5)當處理完所有Pi,并且在聚類集L中形成多個聚類時,算法結(jié)束。
本文采用的SURF算法由Bay在2006年首次提出,SURF是尺度不變特征變換算法(SIFT算法)的加速版,它繼承了SIFT算法的平移、縮放、亮度、旋轉(zhuǎn)不變性等優(yōu)點。SURF算法通過構建Hessian矩陣來實現(xiàn)的,Hessian矩陣是該算法的核心,對于圖像像素點p(x,y),把二階標準高斯函數(shù)作為其濾波器,通過特定核間的卷積計算二階偏導數(shù),在尺度為σ其Hessian矩陣定義如下:

在構造Hessian矩陣前,先進行高斯濾波,經(jīng)過濾波后的計算公式如下:

Herbert Bay提出可以用估計值來替代L(x,t),并引入權值來平衡準確值和近似值間的誤差,權值隨尺度變化,則H矩陣行列式為

行列式中的參數(shù)0.9為作者理論計算得出的估算值[15]。
接著利用非極大值抑制初步確定特征點,把處理過的像素點和三維領域的26個點進行大小比較,保留其中的最大值或者最小值,認為是目標特征點,并采用三維線性插值法,刪去小于閥值的點,過濾出亞像素級的特征點,再增加極值,最終保留特征最強的點并計算個數(shù)。
將截取出來的圖片依次用上述方法與模版庫圖片對比,把對比出來特征點大于某個閥值的判定匹配成功,并標注對應的物品名稱,否則認為匹配失敗,則不標注,識別效果如圖2所示。

圖2 識別效果圖
本文的實驗平臺為北京六部工坊科技有限公司的啟智ROS機器人,如圖3所示,主要硬件結(jié)構有三輪全向底盤,360°激光雷達,立體揚聲器,深度相機Kinect V2,計算部件是一臺配置有Intel Core i5-6200U處理器、NVIDIA GeForce 940MX顯卡、8GB內(nèi)存、并運行Ubuntu14.04系統(tǒng)的筆記本。
設置對比實驗,將本文算法和傳統(tǒng)的SIFT算法對比,點云分割部分算法均采用本文算法。在室內(nèi)場景下,對桌面靜止物體進行點云信息和圖像的采集,圖像分辨率為512×424。實驗選取了牛奶、洗發(fā)水、奶茶、薯片作為測試物體,實驗結(jié)果如表1示。

圖3 機器人平臺

表1 對比實驗結(jié)果
本文設計并實現(xiàn)了一種基于三維點云和OpenCV特征點檢測的物品識別系統(tǒng),通過對點云數(shù)據(jù)進行分割聚類,標記生成的物體位置數(shù)據(jù)投影到彩色圖像上截取出預選物品圖片,并采用FLANN結(jié)合SURF進行關鍵點的描述和匹配,實驗結(jié)果表明,該系統(tǒng)能夠快速有效地檢測出物品并進行識別標注。由于文中的平面分割聚類算法提取的物品聚類帶有較多的噪聲點,在較復雜環(huán)境中的識別準確率有待提高,因此下一步將結(jié)合深度學習方法深入研究點云的分割聚類以及更高效準確的特征匹配算法。