吳騰飛 王 挺 邵士亮 尚 哲* 竇鑫可**
(*沈陽理工大學(xué)自動(dòng)化與電氣工程學(xué)院 沈陽 110159)
(**中國科學(xué)院沈陽自動(dòng)化研究所機(jī)器人學(xué)國家重點(diǎn)實(shí)驗(yàn)室 沈陽 110016)
(***中國科學(xué)院機(jī)器人與智能制造創(chuàng)新研究院 沈陽 110169)
(****東北大學(xué)機(jī)械工程與自動(dòng)化學(xué)院 沈陽 110819)
(*****沈陽化工大學(xué)信息工程學(xué)院 沈陽 110142)
點(diǎn)云邊界檢測是機(jī)器人作業(yè)中的重要部分,例如用于雙臂機(jī)器人的抓取和搬運(yùn)[1]、移動(dòng)機(jī)器人即時(shí)定位與地圖構(gòu)建[2]和自主導(dǎo)航[3]。此外,基于深度相機(jī)獲取的點(diǎn)云圖像為缺少拓?fù)潢P(guān)系的散亂點(diǎn)云,由于儀器或者環(huán)境等因素的影響,生成的物體點(diǎn)云圖質(zhì)量低,存在多噪聲以及輪廓不清晰等問題,這為邊界檢測帶來困難。為了克服這些困難,散亂點(diǎn)云的邊界檢測得到了相關(guān)學(xué)者的廣泛研究[4]。
目前,點(diǎn)云邊界檢測算法包括間接法和直接法2 類[5]。間接法是將三維圖像映射到二維平面上進(jìn)行邊界檢測,再進(jìn)一步與原始圖像對應(yīng),如角度變換方法。Bendels 等人[6]提出了角度準(zhǔn)則(angle criterion,AC)邊界點(diǎn)檢測方法,將鄰域內(nèi)的點(diǎn)投影到其切平面,根據(jù)采樣點(diǎn)與其近鄰點(diǎn)形成的夾角大小對邊界點(diǎn)進(jìn)行判定,但該方法不適用棱線特征點(diǎn)。Chen等人[7]采用加權(quán)主成分分析(weighted principal component analysis,WPCA)方法構(gòu)建點(diǎn)云投影平面,分析投影平面上采樣點(diǎn)和近鄰點(diǎn)形成的夾角大小提取邊界點(diǎn),然后使用K-means 聚類算法對鄰域點(diǎn)法向量進(jìn)行聚類判斷棱線點(diǎn),利用改進(jìn)三次b樣條方法生成輪廓曲線,但該方法對細(xì)節(jié)特征檢測效果不好。Wang 等人[8]使用改進(jìn)社會粒子群優(yōu)化模糊C-均值(improved social particle swarm optimization fuzzy C-means,ISPSO-FCM)算法對點(diǎn)云進(jìn)行分割,通過計(jì)算采樣點(diǎn)和鄰域點(diǎn)之間的角度差識別出邊緣點(diǎn),然后基于平均曲率計(jì)算采樣點(diǎn)的局部特征權(quán)重檢測棱線點(diǎn),最后采用雙向主成分分析(bidirectional principal component analysis,BD-PCA)方法對特征點(diǎn)集進(jìn)行排序并生成特征線,但該方法不易識特征強(qiáng)度較弱的過渡特征。
另一類方法是直接用三維點(diǎn)云數(shù)據(jù)來提取三維邊緣或直線段特征。Emon 等人[9]擬合近K個(gè)近鄰點(diǎn)所構(gòu)成的直線,計(jì)算各點(diǎn)到直線距離的標(biāo)準(zhǔn)差選取最優(yōu)近鄰點(diǎn)數(shù)量,然后對相鄰法線角度差最大的點(diǎn)進(jìn)行聚類并選取折痕點(diǎn),最后通過計(jì)算近鄰點(diǎn)的平均位置點(diǎn)到采樣點(diǎn)的歐式距離判別邊界點(diǎn),但邊界點(diǎn)識別精度較低。Nurunnabi 等人[10]提出了Zscore 和馬氏距離2 種魯棒統(tǒng)計(jì)的點(diǎn)云特征檢測算法,該方法基于局部鄰域中的非異常點(diǎn)集來估計(jì)擬合平面,然后計(jì)算平面的法線和曲率檢測棱線點(diǎn),該算法棱線特征提取效果較好。麻衛(wèi)峰等人[11]采用局部鄰域熵最小化實(shí)現(xiàn)自適應(yīng)鄰域尺度選擇和高斯核函數(shù)鄰域點(diǎn)加權(quán)結(jié)合的主成分分析法(principal component analysis,PCA)來提高散亂點(diǎn)云的法向量估算精度,然后根據(jù)采樣點(diǎn)和近鄰點(diǎn)的法向量角度差識別特征點(diǎn),該方法計(jì)算復(fù)雜度較高。史紅霞等人[12]采用自適應(yīng)鄰域的主成分分析法計(jì)算點(diǎn)云法向量,通過使用螢火蟲算法(firely algorithm,FA)優(yōu)化模糊C 均值聚類算法提高邊界特征點(diǎn)法向量分割比率,最后采用角度閾值方法對邊界點(diǎn)進(jìn)行剔除與合并。Ni 等人[13]提出了鄰域幾何屬性分析(analysis of geometric properties of neighborhoods,APGN)方法,首先分析查詢點(diǎn)鄰域幾何屬性,采用隨機(jī)抽樣一致算法(random sample consensus,RANSAC)和角度準(zhǔn)則來檢測邊緣點(diǎn)和折邊點(diǎn),然后通過區(qū)域增長和模擬混合方法提取特征線,該方法提取的邊界粗糙。
上述2 類方法多是對現(xiàn)有封閉模型或只對某一類型特征點(diǎn)進(jìn)行提取,不易對實(shí)際場景下包含多種特征類型的非封閉模型進(jìn)行輪廓提取,且不易對每條輪廓線進(jìn)行區(qū)分。此外,還有學(xué)者結(jié)合深度學(xué)習(xí)[14]、群智能優(yōu)化[15]和神經(jīng)網(wǎng)絡(luò)[16]等方法,以獲取更好的提取效果。
本文針對由RGB-D 相機(jī)采集到的物體點(diǎn)云輪廓提取精度問題,提出了一種適用于非封閉點(diǎn)云模型的輪廓提取方法。該方法利用主成分分析法計(jì)算點(diǎn)云局部鄰域協(xié)方差矩陣和特征向量,進(jìn)而獲得點(diǎn)云法向量和表面曲率,初步用于提取棱線特征點(diǎn),同時(shí)提出一種外邊界檢測算子,以提取外邊界特征點(diǎn)。在獲取輪廓特征點(diǎn)的基礎(chǔ)上,采用三元組聚類方法分離和提取各條輪廓特征線。
點(diǎn)云輪廓特征提取方法包含2 個(gè)階段,如圖1所示,第1 階段為特征點(diǎn)檢測,即對原始點(diǎn)云進(jìn)行預(yù)處理后作為輸入點(diǎn)云,采用曲率和法向夾角雙判別參數(shù)檢測模型棱線特征點(diǎn),然后利用提出的邊界檢測算子檢測外邊界特征點(diǎn);第2 階段為特征線提取,即通過特征點(diǎn)相鄰位置的平均值優(yōu)化方法對檢測出的特征點(diǎn)進(jìn)行平滑,利用三元組聚類方法檢測和分離輪廓曲線,具體步驟為:首先建立近似共線的3 個(gè)點(diǎn)為三元組,將三元組進(jìn)行單鏈路聚類,再移除和拆分聚類后的三元組實(shí)現(xiàn)模型輪廓曲線的分割與提取,最后對分離出的各條邊界進(jìn)行曲線擬合。
圖1 輪廓特征提取方法流程
點(diǎn)云表面法向量和曲率可描述散亂點(diǎn)云模型特征信息。根據(jù)點(diǎn)云局部鄰域分布特征,對其進(jìn)行主成分分析,求取最小特征值所對應(yīng)特征向量為各點(diǎn)的法向量,最小特征值的方差貢獻(xiàn)率為局部表面曲率;定義第2 主成分方差貢獻(xiàn)率為所設(shè)計(jì)邊界檢測算子,二者結(jié)合進(jìn)而提取模型輪廓特征點(diǎn)。
非封閉點(diǎn)云模型的輪廓線包括尖銳棱線和外邊界線2 種,且數(shù)據(jù)點(diǎn)之間沒有明顯的拓?fù)潢P(guān)系。使用KD 樹(K-dimensional tree,k-d tree)數(shù)據(jù)結(jié)構(gòu)在搜索范圍尋找k個(gè)離采樣點(diǎn)P最近的點(diǎn)。根據(jù)點(diǎn)的分布情況又可為內(nèi)部點(diǎn)和邊界點(diǎn),內(nèi)部點(diǎn)的鄰域點(diǎn)均勻分布其周圍;越靠近邊界的點(diǎn),其近鄰點(diǎn)下半部分的點(diǎn)越少;尖銳棱線點(diǎn)在2 個(gè)平(曲)面的交界處,特點(diǎn)是該點(diǎn)同兩側(cè)的點(diǎn)相比法向量角度變化大;若某一點(diǎn)的近鄰點(diǎn)偏向一側(cè),則該點(diǎn)被認(rèn)為是邊界點(diǎn)。圖2 所示為不同類型點(diǎn)的鄰域分布情況。
圖2 不同點(diǎn)的鄰域分布
主成分分析是一種常用的數(shù)據(jù)降維方法,其基本思想是將原坐標(biāo)系下數(shù)據(jù)的m維高維特征映射成新坐標(biāo)系下的n維低維特征。新坐標(biāo)系下各維度數(shù)據(jù)量的大小反映在樣本特征值的方差上,方差最大的方向作為第一主成分方向,各主成分包含的數(shù)據(jù)量通常用方差貢獻(xiàn)率來衡量。主成分和方差貢獻(xiàn)率的提取過程如下。
(1)原始數(shù)據(jù)中心化。將原始數(shù)據(jù)表示為n×m維的矩陣X,對X的每一行采用零均值化處理,即減去該行的均值,中心化后X由式(1)表示。
(2)主成分的確定。三維點(diǎn)云數(shù)據(jù)的樣本矩陣為3 ×3 維,其原始數(shù)據(jù)采樣點(diǎn)P(X,Y,Z) 的協(xié)方差矩陣C由式(2)表示。
其中Cov(x,y) 為采樣點(diǎn)x,y的協(xié)方差。根據(jù)協(xié)方差矩陣C求得特征值并按順序排列為λ1>λ2>λ3,所對應(yīng)特征向量E=(v1,v2,v3) 即為各個(gè)主成分方向。
(3)方差貢獻(xiàn)率的求取。
主成分方向上包含的數(shù)據(jù)量可用對應(yīng)的特征值來描述,某一特征值所占各特征值之和的比例就是該主成分的方差貢獻(xiàn)率,由式(3)表示。
方差貢獻(xiàn)率是各主成分分量對原始數(shù)據(jù)信息保存精度的衡量指標(biāo),將方差貢獻(xiàn)率控制在一定范圍內(nèi),在對這些主成分進(jìn)行壓縮或投影時(shí),達(dá)到數(shù)據(jù)損失的可能性降到最小的目的。
在三維空間中若第3 主成分存在時(shí),由主成分分析法可知,采樣點(diǎn)及其鄰域點(diǎn)共同組成了一個(gè)橢球,如圖3 所示,橢球的3 個(gè)軸由3 個(gè)主成分所決定,特征值的大小也對應(yīng)軸的長度。
圖3 鄰域空間橢球
其中,λ3是某一點(diǎn)鄰域點(diǎn)集協(xié)方差矩陣的最小特征值,其對應(yīng)的特征向量可作為整個(gè)目標(biāo)點(diǎn)云的表面法向量。若將該主成分上的點(diǎn)拋棄,即忽略偏離近似平面的點(diǎn),那么剩余點(diǎn)可看作是一個(gè)平面點(diǎn)云。對于尖銳邊界特征而言,第3 主成分的方差貢獻(xiàn)率遠(yuǎn)大于兩側(cè)平面的第3 主成分的貢獻(xiàn)率,因此可用第3 主成分方差貢獻(xiàn)率定義點(diǎn)云表面曲率變化,如式(4)所示。
協(xié)方差矩陣的最小特征值對應(yīng)于最小相關(guān)性的維度,若平面點(diǎn)的協(xié)方差矩陣最小特征值為0,則表面曲率變化值為0;σn值越大,數(shù)據(jù)點(diǎn)所在曲面的曲率越大,該點(diǎn)為尖銳棱線特征點(diǎn)的概率越大。
同時(shí),數(shù)據(jù)點(diǎn)和鄰域點(diǎn)的法向量夾角也可以描述其所在局部曲面的變化情況,可用法向量夾角作為尖銳特征點(diǎn)的另一判斷條件。因?yàn)椴捎弥鞒煞址治龉浪愕玫降狞c(diǎn)云法線具有二義性[11],所以需要引入一個(gè)視點(diǎn)pv,通過判斷采樣點(diǎn)法向量與視點(diǎn)和采樣點(diǎn)所組成向量的夾角,使法向量朝向都趨于視點(diǎn)方向,當(dāng)·(pv-pi)>0 時(shí),方向不變,否則方向取反。
已知采樣點(diǎn)pi的近鄰點(diǎn)為qj,近鄰點(diǎn)法向量為nj,定義θi為采樣點(diǎn)pi的法向量ni與近鄰點(diǎn)的法向量nj夾角和的平均值,可用式(5)表示為
在實(shí)際環(huán)境中,深度相機(jī)獲取的點(diǎn)云模型其平坦表面也會有一定的曲率變化,若σn大于設(shè)定閾值,可降低簡化曲面帶來的誤差,將點(diǎn)標(biāo)記為潛在特征點(diǎn)。然后再判斷潛在特征點(diǎn)中各點(diǎn)的法向量夾角θi的變化程度是否大于設(shè)定閾值,若θi大于閾值,則將點(diǎn)進(jìn)一步劃分為尖銳特征點(diǎn),否則舍棄該點(diǎn)。
三維物體的立體性特點(diǎn)和深度相機(jī)從單一視角采集圖像的原因,導(dǎo)致物體點(diǎn)云形狀缺失,使原來內(nèi)部折邊變成外邊界,其鄰域點(diǎn)集也發(fā)生了變化。
當(dāng)舍棄第3 主成分上的點(diǎn)時(shí),橢球退化成一個(gè)橢圓,這時(shí)鄰域點(diǎn)集的分布有以下3 種情況。
(1)當(dāng)采樣點(diǎn)pi為內(nèi)部點(diǎn)時(shí),鄰域點(diǎn)分布在其周圍,第1 主成分為橢圓長軸,第2 主成分為短軸,此時(shí)的橢圓短軸長度最大,如圖4 所示。
圖4 內(nèi)部點(diǎn)鄰域分布
(2)當(dāng)采樣點(diǎn)pi為內(nèi)部點(diǎn)且靠近邊界時(shí),采樣點(diǎn)下方的鄰域點(diǎn)越來越少,此時(shí)所形成的橢圓短軸縮小,形狀相較于內(nèi)部點(diǎn)更為扁平,第1 主成分或第2 主成分的貢獻(xiàn)率與內(nèi)部點(diǎn)相比變小,如圖5 所示。
圖5 靠近邊界點(diǎn)鄰域分布
(3)當(dāng)采樣點(diǎn)為邊界點(diǎn)時(shí),近鄰點(diǎn)只分布在采樣點(diǎn)一側(cè),即采樣點(diǎn)另一側(cè)點(diǎn)集缺失,由主成分構(gòu)成的橢圓進(jìn)一步縮小,短軸長度達(dá)到最小,此時(shí)觀察點(diǎn)在鄰域內(nèi)分布情況可得知第2 主成分量分遠(yuǎn)比內(nèi)部點(diǎn)要小,如圖6 所示。
圖6 邊界點(diǎn)鄰域分布
根據(jù)點(diǎn)在不同位置的近鄰域第2 主成分方差貢獻(xiàn)率的變化,可定義邊界檢測算子如式(6)所示。
當(dāng)Ab小于某一閾值γ時(shí),即可認(rèn)為該點(diǎn)為邊界點(diǎn)。
使用邊界檢測方法可以較好地提取出輪廓點(diǎn),但是目前的邊界點(diǎn)并不是輪廓點(diǎn),且棱線邊界和外邊界沒有明顯的區(qū)分,需要對輪廓點(diǎn)進(jìn)行優(yōu)化。三元組聚類方法是將曲線檢測問題重新表述為點(diǎn)三元組上的聚類問題,對三元組進(jìn)行距離測量,進(jìn)而檢測和分離點(diǎn)云中的曲線。
通過近鄰點(diǎn)的位置平均進(jìn)行輪廓點(diǎn)優(yōu)化,減少周圍干擾點(diǎn)的影響,達(dá)到曲線平滑的目的。查詢每個(gè)點(diǎn)的K 鄰域,計(jì)算鄰域內(nèi)每個(gè)點(diǎn)的平均坐標(biāo)值,將該坐標(biāo)值近似替換目標(biāo)點(diǎn)的位置,式(7)所示??蓪Σ蓸狱c(diǎn)P鄰域進(jìn)一步細(xì)化,如果近鄰點(diǎn)到P點(diǎn)的距離小于設(shè)定閾值,則判定該點(diǎn)為點(diǎn)P鄰域點(diǎn),如式(8)所示。當(dāng)分布在采樣點(diǎn)P鄰域內(nèi)的點(diǎn)較稀疏時(shí),點(diǎn)P的位置幾乎保持不變;在近鄰點(diǎn)稠密的區(qū)域,平均后的新采樣點(diǎn)將會偏移至曲線中間。
三元組聚類方法是建立3 個(gè)近似共線點(diǎn)的組,即三元組[17]。然后對三元組進(jìn)行分層聚類,用三元組聚類的標(biāo)簽標(biāo)記其中的每個(gè)點(diǎn),將三元組聚類轉(zhuǎn)換為點(diǎn)聚類;每個(gè)聚類代表一個(gè)軌跡,不屬于任何三元組的點(diǎn)被標(biāo)記為噪聲,屬于多個(gè)三元組的點(diǎn)被標(biāo)記為跳躍點(diǎn)。具體步驟如下。
(1)在邊界點(diǎn)集中找到近似共線點(diǎn)的三元組。邊界點(diǎn)集中近似共線的三個(gè)點(diǎn)集合稱為三元組,假設(shè)每個(gè)采樣點(diǎn)為三元組的中間點(diǎn)B,在該點(diǎn)K個(gè)鄰域點(diǎn)內(nèi)尋找端點(diǎn)A和C。如圖7 所示。
圖7 點(diǎn)三元組
設(shè)點(diǎn)云中點(diǎn)A、B和C的下標(biāo)索引為i、j、k,即三元組所構(gòu)成的α角定義如式(9)所示。
若三元組所構(gòu)成α角的余弦值不在閾值a范圍內(nèi),則舍棄該三元組,保留剩余三元組中角度最小的組。
(2)三元組的分層聚類。每個(gè)三元組通過2 個(gè)向量來描述,如式(10)和式(11)所示。將每個(gè)三元組作為一個(gè)單獨(dú)的聚類開始,如果2 個(gè)聚類之間的距離小于設(shè)定自動(dòng)閾值,則每次迭代中合并2 個(gè)聚類為1 個(gè)聚類。三元組的矢量表示如圖8 所示。
圖8 三元組的矢量表示
(3)最后通過移除較小聚類和通過分裂具有大間隙的聚類來進(jìn)一步區(qū)分。將每個(gè)聚類中三元組數(shù)小于閾值m的聚類標(biāo)記為噪聲,根據(jù)聚類之間的間隙寬度分離并標(biāo)記不同聚類,通過移除這些噪聲和標(biāo)記聚類將所屬不同特征線的點(diǎn)區(qū)分開來。
本節(jié)將通過實(shí)驗(yàn)評估邊界算法的有效性,使用InterCore i5 處理器作為上位機(jī),所采用的深度相機(jī)是英特爾的RealSense D435,在Ubuntu 16.04 中基于PCL(point cloud library)和C++語言環(huán)境中對物體點(diǎn)云進(jìn)行測試。本文實(shí)驗(yàn)數(shù)據(jù)來源于現(xiàn)有設(shè)備采集和PCL 官方點(diǎn)云示例以及PCLAIM@ SHAHE Shape Repository 數(shù)據(jù)庫中的Fandisk 模型。
根據(jù)本文所用模型,通過測試各個(gè)參數(shù)組合來設(shè)置合理的參數(shù)范圍,從而確定本文輪廓特征提取方法的參數(shù)值,設(shè)置見表1。
表1 參數(shù)列表
深度相機(jī)采集原始物體點(diǎn)云數(shù)據(jù),因?yàn)橄鄼C(jī)視場角,造成所得到的數(shù)據(jù)存在缺失,同時(shí)也獲取到除目標(biāo)點(diǎn)云外包括背景或桌面等干擾環(huán)境信息,以及由于相機(jī)本身硬件、操作和環(huán)境等因素帶來的影響。原始點(diǎn)云數(shù)據(jù)還會包含一些離群點(diǎn),而且原始點(diǎn)云還存在著密度大、直接對其進(jìn)行處理計(jì)算量大、速度慢等問題,所以需要對原始點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理,具體步驟如圖9 所示。
圖9 預(yù)處理步驟
首先對原始點(diǎn)云使用x和z方向上的直通濾波去除背景環(huán)境信息,使用統(tǒng)計(jì)學(xué)濾波去除離群點(diǎn),采用體素柵格化濾波降低點(diǎn)云密度以提高后續(xù)點(diǎn)云處理算法的效率;其次對目標(biāo)點(diǎn)云進(jìn)行分割,采用隨機(jī)抽樣一致性算法檢測點(diǎn)云圖中的平面點(diǎn)云,將屬于支撐平面中的點(diǎn)去除;最后對過平面分割后的點(diǎn)云進(jìn)行歐式聚類分割,可將桌面上的多個(gè)物體分割為不同點(diǎn)云集對分割出的點(diǎn)云,從而提取出完整的待處理點(diǎn)云。
為了進(jìn)一步驗(yàn)證特征點(diǎn)檢測方法的可行性,選取由深度相機(jī)采集到的點(diǎn)云模型和Fandisk 點(diǎn)云模型進(jìn)行特征點(diǎn)提取,并將本文算法所提取的點(diǎn)云輪廓特征點(diǎn)分別與文獻(xiàn)[18]和[19]進(jìn)行對比,提取結(jié)果如圖10~12 所示。
圖10 紙盒模型特征點(diǎn)提取
圖10(a)是使用深度相機(jī)采集到的紙盒模型點(diǎn)云,該點(diǎn)云既包含棱線特征點(diǎn),也包含外邊界點(diǎn),特征明顯。文獻(xiàn)[18]方法不能完整地檢測出外邊界點(diǎn),棱線點(diǎn)存在誤判。文獻(xiàn)[19]能較好地提取出輪廓點(diǎn),但其中一個(gè)角點(diǎn)不能完整識別。本文方法更加精確地提取了棱線特征點(diǎn)和外邊界點(diǎn)。
圖11(a)使用的是PCL 官方提供的牛奶模型點(diǎn)云,該點(diǎn)云由于采集視角原因具有尖銳棱線點(diǎn)和邊界點(diǎn),尖銳特征部分包含弱曲率點(diǎn)。文獻(xiàn)[18]方法檢測出的外邊界在角點(diǎn)處有缺失且包含內(nèi)部點(diǎn),棱線特征點(diǎn)提取粗糙,仍然有部分缺失。文獻(xiàn)[19]能較好地提取出輪廓點(diǎn),但邊界點(diǎn)和棱線點(diǎn)提取精度欠佳。本文方法完整地獲取了牛奶模型的輪廓特征點(diǎn),且提取較為精確。
圖11 牛奶模型特征點(diǎn)提取
圖12(a)所示點(diǎn)云是經(jīng)過裁剪后的Fandisk 模型,該模型同時(shí)具有尖銳棱線、邊界特征點(diǎn)和弱曲率點(diǎn),特征點(diǎn)提取較難。文獻(xiàn)[18]采用傳統(tǒng)PCA 算法識別尖銳特征點(diǎn),可見該方法存在非棱線特征點(diǎn)的誤判。文獻(xiàn)[19]的方法不易識別特征強(qiáng)度逐漸變?nèi)醯奶卣鼽c(diǎn),導(dǎo)致一些平滑過渡的特征點(diǎn)提取不完整。而本文方法對邊界特征點(diǎn)和棱線特征點(diǎn)提取相對完整,存在較少的冗余數(shù)據(jù)點(diǎn),識別效果相對較好。
圖12 Fandisk 模型特征點(diǎn)提取
表2 展示3 種模型在文獻(xiàn)[18]、文獻(xiàn)[19]以及本文方法上的特征點(diǎn)(邊界點(diǎn)和棱線點(diǎn))和時(shí)間效率比較。文獻(xiàn)[18]方法獲取的非特征點(diǎn)較多導(dǎo)致精度降低,文獻(xiàn)[19]能較好地提取出模型特征點(diǎn),但精度有待提高,本文方法完整提取輪廓邊界的同時(shí),其時(shí)間效率也優(yōu)于文獻(xiàn)[18]和文獻(xiàn)[19]方法。
表2 方法特征提取和時(shí)間對比
為驗(yàn)證本文方法的可行性和有效性,對采集到的紙盒、水杯和牛奶點(diǎn)云模型進(jìn)行輪廓特征點(diǎn)提取和特征線檢測。特征點(diǎn)提取的結(jié)果如圖13~15 所示。
圖13 水杯模型特征線提取
圖13(a)是對圓柱形水杯采集所得模型圖。該模型結(jié)構(gòu)簡單,由一個(gè)半封閉曲面和圓形平面構(gòu)成。圖13(b)是模型經(jīng)濾波、分割等預(yù)處理步驟所得物體點(diǎn)云集,具有邊界特征和棱線特征。圖13(c)為水杯模型特征點(diǎn)提取結(jié)果,表明本文方法能很好地提取模型輪廓特征點(diǎn)。從圖13(d)中可以看出三元組聚類方法能精確檢測出所屬不同棱線和邊界的特征點(diǎn)。
圖14 為紙盒點(diǎn)云特征點(diǎn)提取結(jié)果。該點(diǎn)云同樣是一個(gè)非封閉模型,既包含明顯棱線特征又包含外邊界特征。從圖14(c)特征提取結(jié)果可以看出,本文方法對尖銳特征和邊界特征均有較好的提取效果。圖14(d)所示為三元組檢測特征線結(jié)果,表明該方法能有效地檢測和分離由特征點(diǎn)所組成曲線的集合。
圖14 紙盒模型特征線提取
圖15 模型相比圖13、圖14 中2 個(gè)模型結(jié)構(gòu)相對復(fù)雜,外邊界鋸齒較為突出,2 個(gè)相鄰平面之間過渡平滑,相交處的特征點(diǎn)法向量方向相近,曲率變化較小。圖15(c)表明本文方法不僅較好地提取出邊界特征點(diǎn),而且對相對平滑處的棱線特征點(diǎn)提取較為完整。圖15(d)表明三元組聚類方法對偏離曲線的點(diǎn)也能精確檢測并標(biāo)記為干擾點(diǎn),在曲線的端點(diǎn)處用標(biāo)記跳躍點(diǎn)方式來分離不同曲線,同時(shí)對曲線較多的模型也能精確檢測和分離輪廓曲線。
圖15 牛奶模型特征線提取
為了對本文方法的特征點(diǎn)和特征線提取結(jié)果進(jìn)行定量評價(jià),計(jì)算各模型特征點(diǎn)提取率和其所組成特征曲線長度提取率。輪廓特征點(diǎn)提取率由精確率和誤識別率[13]計(jì)算所得,其中精確率prc為被正確提取的特征點(diǎn)占實(shí)際模型中特征點(diǎn)總數(shù)的比值;誤識別率pmr為被錯(cuò)誤識別的特征點(diǎn)占實(shí)際模型中特征點(diǎn)總數(shù)的比值。精確率和誤識別率的計(jì)算公式如下:
式中,Nrc表示正確提取的特征點(diǎn)數(shù);Nmr表示錯(cuò)誤提取特征點(diǎn)數(shù);Noc表示模型特征點(diǎn)總數(shù)。
每條特征線長度提取率為檢測出線段長度和已知模型實(shí)際長度的比值,模型特征線總長度提取率為各條特征線段長度提取率的平均值[12]。因?yàn)閷?shí)際采集獲得的非封閉點(diǎn)云模型邊界線可能為曲線,長度不易獲得,所以對曲線邊界點(diǎn)進(jìn)行直線擬合近似估算曲線長度。擬合結(jié)果如圖16~18 所示。模型特征線總長度提取率與單條特征線長度提取率的關(guān)系如下:
圖16 水杯模型輪廓線擬合
圖17 紙盒模型輪廓線擬合
圖18 牛奶模型輪廓線擬合
式中,dm為第m條特征線的長度提取率(m=1,2,…,Tn);lm為擬合成該條特征線長度;Lm為該條特征線的實(shí)際長度;D為模型特征線總長度提取率。
各模型特征線定量評價(jià)結(jié)果如表3 所示。
表3 模型特征線提取率
由表3 可以看出,水杯模型的特征點(diǎn)得到了精確的提取,在曲線部分有少數(shù)特征點(diǎn)誤判;紙盒模型的精確率prc較低是因?yàn)樗崛√卣鼽c(diǎn)存在漏檢,但所提取的點(diǎn)誤識別率較低;由于牛奶模型的外邊界存在曲率不同的點(diǎn),所以邊界點(diǎn)誤識別率較高。3 種模型的提取精確率prc和特征線長度提取率D均在90%以上,表明本方法對實(shí)際點(diǎn)云模型的特征點(diǎn)和特征線提取有較好的效果。
本文針對場景采集和現(xiàn)有的非封閉散亂點(diǎn)云輪廓提取問題,提出了一種輪廓邊界提取方法并設(shè)計(jì)了一種邊界檢測算子。通過計(jì)算鄰域點(diǎn)集的協(xié)方差矩陣分析數(shù)據(jù)點(diǎn)的曲率和鄰域點(diǎn)的法向量夾角,獲取尖銳棱線特征點(diǎn);根據(jù)分析數(shù)據(jù)點(diǎn)在三維空間的分布情況,定義了一種邊界檢測算子,可以簡單快速地檢測出邊界特征點(diǎn);最后采用三元組聚類方法檢測和分離輪廓曲線。實(shí)驗(yàn)結(jié)果表明,該方法不僅能有效獲取物體點(diǎn)云的輪廓特征點(diǎn),而且可對不同棱線進(jìn)行標(biāo)記區(qū)分,所設(shè)計(jì)的邊界檢測算子具有良好的檢測精度和較高的運(yùn)行效率,能夠滿足實(shí)際環(huán)境下對物體點(diǎn)云提取輪廓邊界的需求。