本發(fā)明屬于激光定位與導(dǎo)航技術(shù)領(lǐng)域,特別地涉及一種基于二維激光掃描儀的角點特征提取方法。在角點特征提取中,涉及了雙閾值鄰域判定方法,和針對角點的幾何特征設(shè)計的評分方法。
背景技術(shù):
在同時定位與建圖(slam)問題中,對圖像局部特征的提取已有相當(dāng)多的研究工作。然而相比于成熟的視覺研究領(lǐng)域,2dlidar雖也是slam中一種常用的傳感器,卻缺少相關(guān)的特征提取方法。
國外學(xué)者在這方面做了較多的研究。較早關(guān)注2dlidar特征提取的工作有boss和zlot,其對每個子地圖建立每點法向量的朝向直方圖以及一組加權(quán)投影直方圖。li和olson提出將2d點云數(shù)據(jù)柵格化進(jìn)而獲得一幅圖像,用kanade-tomasi角點檢測出特征點,同時結(jié)合sift來描述特征點的鄰域。柵格化的優(yōu)勢在于可以利用圖像領(lǐng)域已有的特征提取方法,劣勢在于柵格化過程引入了噪聲。tipaldi和arras提出flirt,被認(rèn)為是首個為2dlidar設(shè)計的特征提取方法,其中包括基于原始掃描數(shù)據(jù)、基于掃描數(shù)據(jù)的法向量估計以及基于掃描數(shù)據(jù)曲率估計三種特征提取方法。kallasi等提出falko以及oc。falko根據(jù)歐式距離閾值劃分對每個點劃分左鄰域和右鄰域,同時給出評分函數(shù)分別對左右鄰域進(jìn)行評分,累積分?jǐn)?shù)最大的點被提取出來作為特征點。oc通過對單幀掃描數(shù)據(jù)做霍夫變換,獲得關(guān)于一系列角度θ的霍夫頻譜hs(θ),根據(jù)其值大小獲得主朝向θd,將所有點旋轉(zhuǎn)-θd角度,隨后對在歐式距離閾值內(nèi)的鄰點提出一種評分函數(shù),評分高的點被選為特征點。
技術(shù)實現(xiàn)要素:
本發(fā)明針對真實場景中大量存在的兩條相交邊的情況,設(shè)計了一種魯棒的2dlidar點云角點特征提取方法,在兩個方面對2d點云特征提取的工作進(jìn)行了改進(jìn):第一,針對傳統(tǒng)的單一依靠歐式距離閾值來確定鄰域容易導(dǎo)致誤檢漏檢的問題進(jìn)行了改進(jìn),采取結(jié)合較大的歐式距離和較小的法向量余弦距離雙閾值的策略來判定每點的左右鄰域;第二,為了抑制異常點的影響以及檢測出覆蓋的鄰域范圍更大也更穩(wěn)定的角點,設(shè)計了一種新穎的對提取角點特征更加有效的評價函數(shù)。
本發(fā)明的技術(shù)方案為:
針對二維激光掃描儀的角點特征提取方法,通過二維激光掃描儀獲得二維點云數(shù)據(jù),對二維點云數(shù)據(jù)s進(jìn)行以下步驟處理:
步驟1:以激光掃描的順序逐一對s中每點做處理,首先用歐式距離閾值確定一個鄰域范圍,在這個鄰域范圍內(nèi),再用余弦距離閾值獲得最終的鄰域范圍;
步驟2:對候選點及其鄰域進(jìn)行評分,將最終的鄰域劃分為左鄰域以及右鄰域,對左右鄰域分別用評價函數(shù)求得評分,左右鄰域的評分之和作為該點的最終評分;利用非極大值抑制,篩選出窗口范圍內(nèi)評分最大的點作為角點。
進(jìn)一步的,二維點云中每點的鄰域依次通過以下步驟得到:
1.1)根據(jù)每個掃描點pi到掃描原點o的距離di來確定可能位于鄰域內(nèi)的點的下標(biāo)范圍r’;
1.2)選取一個歐氏距離閾值thb,對下標(biāo)在r’內(nèi)的點pj,當(dāng)其與pi的距離在thb內(nèi)時,將其添加到鄰域中,更新r’;
1.3)選取一個余弦距離閾值ths,對下標(biāo)在r’內(nèi)的點pj,當(dāng)其余弦距離位于ths外時,將其剔除出鄰域,更新r’;
1.4)獲得鄰域范圍后,分別對更新后的左右鄰域進(jìn)行直線擬合,選取一個角度閾值范圍thd,當(dāng)兩條擬合得到的直線之間的角度不在閾值范圍thd內(nèi)時,舍棄該點,不再進(jìn)行下一步處理。
進(jìn)一步的,鄰域下標(biāo)范圍依次通過以下步驟得到:
1.1.1)根據(jù)掃描點到掃描原點的距離確定圓形窗口半徑
1.1.2)確定鄰域可能的下標(biāo)范圍,令α為激光掃描儀的角度分辨率,則在以pi為圓心的圓形窗口內(nèi)可能存在位于鄰域內(nèi)的點pj的下標(biāo)范圍為:
進(jìn)一步的,1.3)中的鄰域范圍通過以下方法得到:鄰域中相鄰兩點法向量間應(yīng)該滿足
進(jìn)一步的,對左右鄰域內(nèi)的點進(jìn)行直線擬合的準(zhǔn)則為使得左鄰域或右領(lǐng)域內(nèi)的點到擬合直線的距離平方和最小。
進(jìn)一步的,步驟2中每點的評分,通過以下方法得到:
2.1)對候選特征點pi與其鄰點之間線段的角度進(jìn)行離散化,將以pi為圓心的圓等分成si等份的扇形區(qū)塊,分別對左右鄰域中的每點計算其所在的扇形區(qū)塊的編號{it,左,it+1,左,…,ii-1,左}和{ii+1,右,ii+2,右,…,im,右},其中t和m分別為步驟1.3)更新后的r’中的最小值和最大值,it,左表示左領(lǐng)域中下標(biāo)為t的點所在的扇形區(qū)塊的編號,im,右表示右領(lǐng)域中下標(biāo)為m的點所在的扇形區(qū)塊的編號;
2.2)對每個候選特征點pi按照如下方式分別對左右鄰域進(jìn)行評分:
該候選特征點的左領(lǐng)域評分
該候選特征點的左領(lǐng)域評分
式中,c為常數(shù)項,mod(·)表示求模運算;
2.3)該點最終的評分為左右鄰域之和:j(i)=j(luò)左(i)+j右(i)。
本發(fā)明的有益效果是:
(1)本發(fā)明設(shè)計了一種雙閾值確定鄰域的方法,較大的歐式距離閾值避免了因歐式距離太小造成的漏檢,結(jié)合較小的余弦距離閾值避免了歐式距離過大造成的誤檢。
(2)給出了一種新穎的評價函數(shù),可以有效地檢測出準(zhǔn)確的角點,具有更好的重復(fù)性和魯棒性。
附圖說明
圖1為本發(fā)明針對二維激光掃描儀的角點特征提取方法的步驟流程圖;
圖2為本發(fā)明利用二維激光掃描儀獲取的二維點云示例;
圖3為本發(fā)明對圖2中二維點云示例的角點提取結(jié)果;
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)該理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
相反,本發(fā)明涵蓋任何由權(quán)利要求定義的在本發(fā)明的精髓和范圍上做的替代、修改、等效方法以及方案。進(jìn)一步,為了使公眾對本發(fā)明有更好的了解,在下文對本發(fā)明的細(xì)節(jié)描述中,詳盡描述了一些特定的細(xì)節(jié)部分。對本領(lǐng)域技術(shù)人員來說沒有這些細(xì)節(jié)部分的描述可以完全理解本發(fā)明。
針對二維激光掃描儀的角點特征提取方法,點云類型為由二維激光掃描儀所采集的二維點云,方法旨在檢測出其中的諸如建筑物邊緣、桌角等由兩條邊相交所形成的角點特征。對二維點云數(shù)據(jù)s進(jìn)行以下步驟處理:
步驟1:以激光掃描的順序逐一對s中每點做處理,首先用較大的歐式距離閾值確定一個大致的鄰域范圍,在這個鄰域范圍內(nèi),再用較小的相應(yīng)法向量之間的余弦距離閾值獲得最終的鄰域范圍。二維點云中每點的鄰域依次通過以下步驟得到:
1.1)根據(jù)每個掃描點pi到掃描原點o的距離di來確定可能位于鄰域內(nèi)的點的下標(biāo)范圍r’;鄰域下標(biāo)范圍依次通過以下步驟得到:
1.1.1)根據(jù)掃描點到掃描原點的距離確定圓形窗口半徑
1.1.2)確定鄰域可能的下標(biāo)范圍,令α為激光掃描儀的角度分辨率,則在以pi為圓心的圓形窗口內(nèi)可能存在位于鄰域內(nèi)的點pj的下標(biāo)范圍為:
1.2)選取一個歐氏距離閾值thb,對下標(biāo)在r’內(nèi)的點pj,當(dāng)其與pi的距離在thb內(nèi)時,將其添加到鄰域中,更新鄰域r’→r’+{pj}。;
1.3)選取一個余弦距離閾值ths,對下標(biāo)在r’內(nèi)的點pj,當(dāng)其余弦距離位于ths外時,將其剔除出鄰域,更新鄰域r’→r’-{pj}。。該步驟中的鄰域范圍通過以下方法得到:點pi處的法向量滿足
1.4)獲得鄰域范圍后,分別對更新后的左右鄰域進(jìn)行直線擬合(對左領(lǐng)域或右領(lǐng)域中的所有點進(jìn)行直線擬合),選取一個角度閾值范圍thd,當(dāng)兩條擬合得到的直線之間的角度不在閾值范圍thd內(nèi)時,舍棄該點,不再進(jìn)行下一步處理;對左右鄰域內(nèi)的點進(jìn)行直線擬合的準(zhǔn)則為使得左鄰域或右領(lǐng)域內(nèi)的點到擬合直線的距離平方和最小。
步驟2:對滿足1.4)中條件的候選點及其鄰域進(jìn)行評分,將最終的鄰域劃分為左鄰域以及右鄰域,對左右鄰域分別用評價函數(shù)求得評分,左右鄰域的評分之和作為該點的最終評分。利用非極大值抑制,篩選出窗口范圍內(nèi)評分極大的點作為角點。
該步驟中每點的評分,通過以下方法得到:
2.1)對候選特征點pi與其鄰點之間線段的角度進(jìn)行離散化,將以pi為圓心的圓等分成si等份的扇形區(qū)塊,分別對左右鄰域中的每點計算其所在的扇形區(qū)塊的編號{it,左,it+1,左,…,i1-1,左}和{ii+1,右,ii+2,右,…,im,右},其中t和m分別為步驟1.3)更新后的r’中的最小值和最大值,it,左表示左領(lǐng)域中下標(biāo)為t的點所在的扇形區(qū)塊的編號,im,右表示右領(lǐng)域中下標(biāo)為m的點所在的扇形區(qū)塊的編號;
2.2)對每個候選特征點pi按照如下方式分別對左右鄰域進(jìn)行評分:
該候選特征點的左領(lǐng)域評分
該候選特征點的左領(lǐng)域評分
式中,c為常數(shù)項,mod(·)表示求模運算;
2.3)該點最終的評分為左右鄰域之和:j(i)=j(luò)左(i)+j右(i)。
實施例1
參考圖1,所示為本發(fā)明實施例的針對二維激光掃描儀的角點特征提取方法的步驟流程圖,具體各步驟方法如前所述,不再贅述。
通過分辨率為π/180的二維激光掃描儀獲得二維點云數(shù)據(jù),進(jìn)行以下步驟處理:
1.利用二維激光掃描儀獲得二維點云數(shù)據(jù),如圖2所示。
2.令a=0.2,b=0.07,根據(jù)每個掃描點到原點的距離di,確定圓形窗口半徑為
3.對位于2中下標(biāo)范圍內(nèi)點pj,計算其與pi的歐氏距離di,j,選取歐氏距離閾值為thb=3*ri,當(dāng)di,j<thb時,更新鄰域r’->r’+{pj}。
4.計算更新后的鄰域內(nèi)每點的法向量
5.獲得鄰域范圍后,分別對更新后的左右鄰域進(jìn)行直線擬合,選取角度閾值thd=π/6,當(dāng)兩條擬合得到的直線之間的角度不在閾值內(nèi)時,舍棄該點,不再進(jìn)行下一步處理。
6.按照步驟2中計算每個候選特征點的評分,取nms的窗口大小為0.2m,選取窗口大小內(nèi)評分極大值作為角點。對于圖2的掃描數(shù)據(jù),最終提取的角點結(jié)果如圖3。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。