本發(fā)明涉及機器人和計算機視覺領(lǐng)域,特別涉及一種格雷碼編碼的3d特征描述子簡化方法。
背景技術(shù):
隨著microsoftkinect、asusxtionprolive、intelrealsense攝像頭和structuresensor的出現(xiàn),rgb-d數(shù)據(jù)的獲取成本變得廉價。將這些廉價的深度傳感器應(yīng)用在機器人和計算機視覺領(lǐng)域,讓機器人擁有對三維環(huán)境的感知能力是近些年來的一個研究熱點和難點。機器人三維環(huán)境感知的目的是要在模型庫和現(xiàn)實場景中找到相匹配的物體聚類,以實現(xiàn)對現(xiàn)實場景中三維物體的識別。在移動機器人以及手持3d數(shù)據(jù)采集設(shè)備的應(yīng)用中,為了實現(xiàn)系統(tǒng)的便捷性和實時性,系統(tǒng)需要擁有較低的內(nèi)存占用率和較低的計算復(fù)雜度,在兩個任意方向的源點和目標(biāo)點云之間實現(xiàn)高效的匹配。通常,三維物體識別可分為基于全局描述子的物體識別和基于局部描述子的物體識別。由于基于局部描述子的物體識別可以實現(xiàn)對遮擋,雜亂和視角變換等問題的魯棒性而被廣泛的研究。
描述子的表述方式目前有兩種:浮點型描述和二進制描述。雖然浮點型描述子在識別準(zhǔn)確度方面具有良好的性能,但是由于匹配速度相對慢、占用內(nèi)存多等缺點,其時間復(fù)雜度方面的性能不優(yōu)。鑒于此,近年來出現(xiàn)了采用二進制來表述特征描述子的方法。二進制描述子獲取大致可行的方法有兩種:通過機器學(xué)習(xí)訓(xùn)練出二進制描述子的方法以及直接將浮點型描述子進行二進制化處理的方法。通過機器學(xué)習(xí)訓(xùn)練二進制描述符可以得到較好的識別效果,但是需要進行大量的學(xué)習(xí)和計算,算法復(fù)雜。
2015年prakhya等人第一次將直接二值化思想應(yīng)用于3d點云特征描述子shot描述子的簡化中去,提出了b-shot。2016年,該作者在原有算法上做了一些擴展實驗,把二值化的思想應(yīng)用到另外兩種最新的描述子rops和fpfh中,建立b-rops和b-fpfh描述子,并通過一系列的實驗對b-shot,b-rops和b-fpfh進行比較,實驗結(jié)果表明b-shot的綜合性能是最好的。
但是,b-shot存在如下兩個問題:
問題一:b-shot以shot特征描述子的每4維作為一個簡化單位,不合理。因為shot描述子的是由32個空間網(wǎng)格,每一個空間網(wǎng)格中又依兩點云之間法向量夾角分為11個等分,共計構(gòu)成352(32x11)維向量的描述子。然而,11并不能被4整除,存在有些分組跨空間網(wǎng)格的情況,導(dǎo)致信息的不連續(xù)性,即存在簡化單元不合理的問題。
問題二:在將shot特征描述子轉(zhuǎn)化為b-shot特征描述子時,有可能存在較嚴(yán)重的信息丟失。如:假設(shè)有這么一組分組{s0,s1,s2,s3}={0.8,0.24,0,0},由b-shot的規(guī)則可知,本組數(shù)據(jù)s0和s1的和超過了s0,s1,s2和s3總和的90%,所以將s0和s1編碼為1,其余編碼為0。對其進行二值化得到:{b0,b1,b2,b3}={1,1,0,0}。由此可見,二值化后b0和b1的值都為1,而實際上原來他們的值相差甚大,即可能存在嚴(yán)重信息丟失的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明是為了解決上述問題而進行的,目的在于提供一種簡單的,合理的格雷碼編碼的3d特征描述子簡化方法。
本發(fā)明提供的一種格雷碼編碼的3d特征描述子簡化方法,具有這樣的特征,包括以下步驟:
步驟a,分析描述子,確定簡化單位和簡化的編碼位數(shù);
步驟b,求每一個簡化單元的值域,并將值域進行分為2n等分;
步驟c,遍歷描述子向量中的每一個值,并根據(jù)值落到的值域區(qū)間,采用對應(yīng)的格雷碼對描述子進行編碼;以及
步驟d,將每個簡化單元的值合并起來組合成一個完整的格雷編碼描述子。
本發(fā)明提供的一種格雷碼編碼的3d特征描述子簡化方法,還具有這樣的特征:其中,描述子向量為352維,描述子向量由空間的32個網(wǎng)格以及每個網(wǎng)格中的11個等分夾角組成,以空間網(wǎng)格為單位,作為一個簡化單元對描述子進行簡化。
本發(fā)明提供的一種格雷碼編碼的3d特征描述子簡化方法,還具有這樣的特征:其中,描述子向量為352維,描述子向量以整體的352維為簡化單元對描述子進行簡化。
本發(fā)明提供的一種格雷碼編碼的3d特征描述子簡化方法,還具有這樣的特征:其中,用2位編碼來進行描述子向量的四值簡化,用3位二進制碼來進行八值化。
本發(fā)明提供的一種格雷碼編碼的3d特征描述子簡化方法,還具有這樣的特征:其中,步驟b,用二位格雷碼將每一個簡化單元的值域分為四個相等的區(qū)間,每個區(qū)間依小到大分別賦予00,01,11,10。
發(fā)明作用和效果
根據(jù)本發(fā)明所涉及一種格雷碼編碼的3d特征描述子簡化方法,通過合理分析簡化單元,根據(jù)實際效果調(diào)整編碼位數(shù)(如用2位編碼來進行向量的四值簡化,用3位編碼來進行向量的8值化)來對描述子進行簡化。
附圖說明
圖1是本發(fā)明在實施例中的一種格雷碼編碼的3d特征描述子簡化方法的流程圖。
具體實施方式
以下參照附圖實及施例對本發(fā)明所涉及的格雷碼編碼的3d特征描述子簡化方法作詳細(xì)的描述。
實施例
采用格雷碼編碼的方法對特征描述子進行簡化,提出一種通用的格雷編碼簡化3d特征描述子的方法。簡化方法可定義為等式(1)。
bdi=g(rdi,μ,n)(1)
其中,rdi代表原始描述子中向量的實際值,μ為簡化單元,n為編碼位數(shù),bdi代表通過本文格雷編碼的方法簡化后得到的簡化描述子的二進制值。根據(jù)以上定義,將本等式應(yīng)用于shot描述子的簡化中,取μ=1,n=4時,得到的簡化描述子即為b-shot。所以本文提出的簡化方法將是對prakhya等人提出的二進制方法的擴展,是一種通用的二進制簡化方法。針對不同的原始描述子,采用本發(fā)明提出的方法,通過改變這兩個可變參數(shù)μ和n可以產(chǎn)生不同的簡化描述子。
圖1是本發(fā)明在實施例中的一種格雷碼編碼的3d特征描述子簡化方法的流程圖。
如圖1所示,一種格雷碼編碼的3d特征描述子簡化方法具有以下步驟:
步驟a:分析描述子,確定簡化單位和簡化的編碼位數(shù),進入步驟b。分析描述子d{d0,d1,d2,…,dm-1}并確定簡化單元μ和簡化的編碼位數(shù)n;如分析shot描述子后,確定擬采用整體的352位為簡化單元,以兩位格雷碼進行四值化,對描述子進行簡化。
適當(dāng)增加簡化編碼位數(shù)對描述子進行簡化,實現(xiàn)對簡化單元內(nèi)向量的細(xì)分,以減弱信息丟失程度。如:用2位編碼來進行向量的四值簡化,用3位二進制碼來進行8值化。即用2個或2個以上的bit來編碼一個維度的浮點向量。
步驟b:求每一個簡化單元的值域range,并將值域進行分為2n等分,進入步驟c。用二位格雷碼將每一個簡化單元的值域分為四個相等的區(qū)間,每個區(qū)間依小到大分別賦予00,01,11,10。
針對大于等于2位數(shù)的二進制編碼,若采用普通的二進制編碼規(guī)則,部分編碼之間存在大于一個位數(shù)的跳變,而且存在首尾不連續(xù)的問題。如以兩位的二進制編碼表示四個值,這四個值從小到大的順序排列分別為00,01,10,11。其中,第二個編碼01變換為第三個編碼10時存在兩次跳變;從第四個編碼變換為第一個編碼時存在兩次跳變。而對于格雷編碼,每一位之間(包括首尾)都只有一位的跳變。如:2位數(shù)的格雷碼其從小到大依次排序為00,01,11,10;3位數(shù)的格雷碼從小到大一次排序為:000,001,011,010,110,111,101,100。
步驟c:遍歷描述子向量中的每一個值,并根據(jù)值落到的值域區(qū)間,采用對應(yīng)的格雷碼對描述子進行編碼,進入步驟d。dj<range/2n則將該維的值編碼為00。
描述子向量為352維,描述子向量由空間的32個網(wǎng)格以及每個網(wǎng)格中的11個等分夾角組成,以空間網(wǎng)格為單位,作為一個簡化單元對描述子進行簡化?;蛘呙枋鲎酉蛄恳哉w的352維為簡化單元對描述子進行簡化。
步驟d,將每個簡化單元的值合并起來組合成一個完整的格雷編碼描述子。
將描述子的幾何信息(統(tǒng)計直方圖信息,統(tǒng)計簽名信息,統(tǒng)計簽名直方圖信息)以二進制格雷碼編碼的方法進行簡化。由于本文所做的簡化是將原始描述子的實際信息轉(zhuǎn)化為二進制數(shù)(僅含有0和1的編碼),另外考慮到格雷碼從小到大每一相鄰代碼之間均只存在一位跳變,所以將簡化單元向量的值域進行等分并用格雷碼進行編碼簡化。
實施例的作用與效果
根據(jù)本實施例所涉及一種格雷碼編碼的3d特征描述子簡化方法,通過合理分析簡化單元,根據(jù)實際效果調(diào)整編碼位數(shù)(如用2位編碼來進行向量的四值簡化,用3位編碼來進行向量的8值化)來對描述子進行簡化。
上述實施方式為本發(fā)明的優(yōu)選案例,并不用來限制本發(fā)明的保護范圍。