RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三維點(diǎn)云數(shù)據(jù)的兩種結(jié)構(gòu)Kdtree和Octree

新機(jī)器視覺 ? 來源:機(jī)器視覺智能檢測 ? 作者:機(jī)器視覺智能檢測 ? 2022-03-14 10:57 ? 次閱讀

三維點(diǎn)云數(shù)據(jù)用于表征目標(biāo)表面的海量點(diǎn)集合,但是各個離散點(diǎn)之間并沒有拓?fù)潢P(guān)系,一般通過建立點(diǎn)云的空間索引來實(shí)現(xiàn)基于鄰域關(guān)系的快速查找。在三維點(diǎn)云數(shù)據(jù)中用的較為廣泛的兩種結(jié)構(gòu)分別是Kdtree和Octree。

目錄

什么是Kdtree

什么是Octree

對比總結(jié)

什么是Kdtree?

1. Kdtree的原理

Kdtree是一種劃分k維數(shù)據(jù)空間的數(shù)據(jù)結(jié)構(gòu),在一個K維數(shù)據(jù)集合上構(gòu)建一棵Kdtree代表了對該K維數(shù)據(jù)集合構(gòu)成的K維空間的一個劃分,即樹中的每個結(jié)點(diǎn)就對應(yīng)了一個K維的超矩形區(qū)域。主要用于多維空間關(guān)鍵數(shù)據(jù)的搜索。

2. Kdtree的創(chuàng)建

Kdtree的創(chuàng)建就是按照某種順序?qū)o序化的點(diǎn)云進(jìn)行有序化排列,方便進(jìn)行快捷高效的檢索。算法流程如下:

(1) 在K維數(shù)據(jù)集合中選擇具有最大方差的維度,然后在該維度上選擇中值m為中心對該數(shù)據(jù)集合進(jìn)行劃分,得到兩個子集合;同時創(chuàng)建一個樹結(jié)點(diǎn)node,用于存儲;

(2)對兩個子集合重復(fù)(1)步驟的過程,直至所有子集合都不能再劃分為止;如果某個子集合不能再劃分時,則將該子集合中的數(shù)據(jù)保存到葉子結(jié)點(diǎn)。

根據(jù)上述算法步驟,以二維數(shù)據(jù)創(chuàng)建Kdtree為例,輸入數(shù)據(jù)列表為{(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)};劃分的二維分割圖如下:

27db7468-965a-11ec-952b-dac502259ad0.jpg

首先統(tǒng)計X和Y方向上的方差,選取方差較大的X維度作為初始分割軸,對X軸上的數(shù)值{2,5,9,4,8,7}取中值X=7作為分割線,生成左子樹{(2,3),(5,4),(4,7)},生成右子樹{(9,6),(8,1)},更新分割軸Y,分別在左右子樹中找到中位數(shù)(5,4)和(9,6),依次迭代如下圖:

27f2d900-965a-11ec-952b-dac502259ad0.png

3. Kdtree的搜索

Kdtree的搜索方法有以下兩種:

范圍搜索:給定搜索點(diǎn)和搜索距離的閾值,從數(shù)據(jù)集中找出所有與搜索點(diǎn)距離小于閾值的數(shù)據(jù);

最近鄰搜索:給定查詢點(diǎn)和正整數(shù)K,從數(shù)據(jù)集中找到距離查詢點(diǎn)最近的K個數(shù)據(jù),當(dāng)K=1時,就是最近鄰搜索。

以最近鄰搜索算法為例,其流程如下:

(1)將查詢數(shù)據(jù)Q從根結(jié)點(diǎn)開始,按照Q與各個結(jié)點(diǎn)的比較結(jié)果向下訪問Kdtree,直至達(dá)到葉子結(jié)點(diǎn)。
其中Q與結(jié)點(diǎn)的比較指的是將Q對應(yīng)于結(jié)點(diǎn)中的k維度上的值與中值m進(jìn)行比較,若Q(k) < m,則訪問左子樹,否則訪問右子樹。達(dá)到葉子結(jié)點(diǎn)時,計算Q與葉子結(jié)點(diǎn)上保存的數(shù)據(jù)之間的距離,記錄下最小距離對應(yīng)的數(shù)據(jù)點(diǎn),記為當(dāng)前最近鄰點(diǎn)和最小距離Distance。

(2)進(jìn)行回溯操作,該操作是為了找到離Q更近的“最近鄰點(diǎn)”。即判斷未被訪問過的分支里是否還有離Q更近的點(diǎn),它們之間的距離小于Distance。

如果Q與其父結(jié)點(diǎn)下的未被訪問過的分支之間的距離小于Distance,則認(rèn)為該分支中存在離P更近的數(shù)據(jù),進(jìn)入該結(jié)點(diǎn),進(jìn)行(1)步驟一樣的查找過程,如果找到更近的數(shù)據(jù)點(diǎn),則更新為當(dāng)前的最近鄰點(diǎn),并更新Distance。

如果Q與其父結(jié)點(diǎn)下的未被訪問過的分支之間的距離大于Distance,則說明該分支內(nèi)不存在與Q更近的點(diǎn)。

回溯的判斷過程是從下往上進(jìn)行的,直到回溯到根結(jié)點(diǎn)時已經(jīng)不存在與P更近的分支為止。

4. Kdtree的注意事項(xiàng)

a.對子空間進(jìn)行劃分時,怎樣確定在哪個維度上劃分?

輪流劃分法:如果這次選擇在第i維上進(jìn)行數(shù)據(jù)劃分,那下一次就在第j(j≠i)維上進(jìn)行劃分,例如:j = (i mod k) + 1。

但是這樣忽略了不同屬性數(shù)據(jù)之間的分散程度,有的屬性值比較分散,有的屬性值比較集中。當(dāng)數(shù)據(jù)的分布在某一個維度較為集中,出現(xiàn)下圖的現(xiàn)象,第一次劃分將數(shù)據(jù)分為左右兩個子集合,安裝輪流的交替原則,第二次劃分的軸并不能很好的分割數(shù)據(jù):

2806861c-965a-11ec-952b-dac502259ad0.png

方差統(tǒng)計法:統(tǒng)計樣本在每個維度上的數(shù)據(jù)方差,選出對應(yīng)方差最大值的那個維度。因?yàn)榉讲畲笳f明在該坐標(biāo)軸上的數(shù)據(jù)點(diǎn)較為分散。

但是理論上空間均勻分布的點(diǎn),在一個方向上分割之后,通過計算方差下一次分割就不會出現(xiàn)在這個方向上了,不過特殊情況如下:

281519ca-965a-11ec-952b-dac502259ad0.png

方差優(yōu)化法:初始維度的劃分依據(jù)數(shù)據(jù)方差范圍最大的那一維作為分割維度,之后也是選中這個維度的中間節(jié)點(diǎn)作為軸點(diǎn),然后進(jìn)行分割,分割出來的結(jié)果如下圖所示:

2823d762-965a-11ec-952b-dac502259ad0.png

b.在某個維度上劃分時,怎樣確保樹盡量平衡?

中位數(shù)法:找到該維度上數(shù)據(jù)的中位數(shù),然后將數(shù)據(jù)點(diǎn)與中位數(shù)進(jìn)行比較,得到兩個子集合的個數(shù)基本相同。

c.怎樣判斷未被訪問的分支里有離搜索數(shù)據(jù)更近的點(diǎn)?

從幾何空間上,通過判斷以搜索數(shù)據(jù)為中心和以記錄的當(dāng)前距離為半徑的超球面與樹分支代表的超矩形之間是否相交。如下圖所示:

28377114-965a-11ec-952b-dac502259ad0.png

星號為搜索數(shù)據(jù),綠色的點(diǎn)為疑似最近點(diǎn),以搜索點(diǎn)和疑似最近點(diǎn)構(gòu)成的圓與所在分割區(qū)域的矩形有交集,則需要回溯根節(jié)點(diǎn)中未被訪問的分支。

什么是Octree

1. Octree的原理

Octree是一種用于描述三維空間的樹狀數(shù)據(jù)結(jié)構(gòu)。八叉樹的每個節(jié)點(diǎn)表示一個正方體的體積元素,每個節(jié)點(diǎn)有八個子節(jié)點(diǎn),將八個子節(jié)點(diǎn)所表示的體積元素加在一起就等于父節(jié)點(diǎn)的體積。能夠很好的壓縮點(diǎn)云節(jié)省存儲空間。

通過對三維空間的幾何實(shí)體進(jìn)行體元剖分,每個體元具有相同的時間和空間復(fù)雜度,通過循環(huán)遞歸的劃分方法對大小為(2n?2n?2n)的三維空間的幾何對象進(jìn)行剖分,從而構(gòu)成一個具有根節(jié)點(diǎn)的方向圖。在八叉樹結(jié)構(gòu)中如果被劃分的體元具有相同的屬性,則該體元構(gòu)成一個葉節(jié)點(diǎn);否則繼續(xù)對該體元剖分成8個子立方體,依次遞剖分,對于(2n?2n?2n)大小的空間對象,最多剖分n 次,如下圖所示:

2844b8e2-965a-11ec-952b-dac502259ad0.png

2. Octree的創(chuàng)建

(1)設(shè)定最大遞歸深度

(2)找出場景的最大尺寸,并以此尺寸建立第一個立方體

(3)依序?qū)挝辉貋G入能被包含且沒有子節(jié)點(diǎn)的立方體

(4)若沒有達(dá)到最大遞歸深度,就進(jìn)行細(xì)分八等份,再將該立方體所裝的單位元元素全部分擔(dān)給八個子立方體

(5)若發(fā)現(xiàn)子立方體所分配到的單位元元素數(shù)量不為零且跟父立方體是一樣的,則該子立方體停止細(xì)分,因?yàn)楦鶕?jù)空間分割理論,細(xì)分的空間所得到的分配必定較少,若是一樣數(shù)目,則再怎么切數(shù)目還是一樣,會造成無窮切割的情形。

(5)重復(fù)3,直到達(dá)到最大遞歸深度。

Octree的葉子節(jié)點(diǎn)代表了分辨率最高的情況。例如分辨率設(shè)成0.01m,那么每個葉子就是一個1cm見方的小方塊。如下圖所示:

285a7966-965a-11ec-952b-dac502259ad0.png

當(dāng)分辨率較高時,方塊很小;分辨率較低時,方塊很大。以斯坦福課程中的兔子模型為例:

286dc732-965a-11ec-952b-dac502259ad0.png

對比總結(jié)

由于三維點(diǎn)云的數(shù)據(jù)量較大,使用Kdtree和Octree進(jìn)行檢索可以較少時間消耗,確保點(diǎn)云的關(guān)聯(lián)點(diǎn)尋找和配準(zhǔn)處于實(shí)時的狀態(tài)。

Kdtree在鄰域查找上比較有優(yōu)勢,但在大數(shù)據(jù)量的情況下,若劃分粒度較小時,建樹的開銷也較大,但比八叉樹靈活些。在小數(shù)據(jù)量的情況下,其搜索效率比較高,但在數(shù)據(jù)量增大的情況下,其效率會有一定的下降,一般是線性上升的規(guī)律。

Octree算法實(shí)現(xiàn)簡單,但大數(shù)據(jù)量點(diǎn)云數(shù)據(jù)下,其使用比較困難的是最小粒度(葉節(jié)點(diǎn))的確定,粒度較大時,有的節(jié)點(diǎn)數(shù)據(jù)量可能仍比較大,后續(xù)查詢效率仍比較低,反之,粒度較小,八叉樹的深度增加,需要的內(nèi)存空間也比較大(每個非葉子節(jié)點(diǎn)需要八個指針),效率也降低。而等分的劃分依據(jù),使得在數(shù)據(jù)重心有偏斜的情況下,受劃分深度限制,其效率不是太高。

如果將Octree和Kdtree結(jié)合起來的應(yīng)用,應(yīng)用八叉樹進(jìn)行大粒度的劃分和查找,而后使用Kdtree樹進(jìn)行細(xì)分,效率會有一定的提升,但其搜索效率變化也與數(shù)據(jù)量的變化有一個線性關(guān)系。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7002

    瀏覽量

    88941
  • 云數(shù)據(jù)
    +關(guān)注

    關(guān)注

    0

    文章

    117

    瀏覽量

    16609

原文標(biāo)題:激光點(diǎn)云的組織形式

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    三維掃描與建模的區(qū)別 三維掃描在工業(yè)中的應(yīng)用

    三維掃描與建模的區(qū)別 三維掃描與建模是兩種不同的技術(shù),它們在操作過程、輸出結(jié)果及應(yīng)用領(lǐng)域上存在顯著的區(qū)別。 操作過程 : 三維掃描 :主要通過激光或光學(xué)掃描設(shè)備,獲取實(shí)物表面的形狀、紋
    的頭像 發(fā)表于 12-19 14:55 ?94次閱讀

    基于深度學(xué)習(xí)的三維點(diǎn)分類方法

    近年來,點(diǎn)云表示已成為計算機(jī)視覺領(lǐng)域的研究熱點(diǎn)之一,并廣泛應(yīng)用于自動駕駛、虛擬現(xiàn)實(shí)、機(jī)器人等許多領(lǐng)域。雖然深度學(xué)習(xí)技術(shù)在處理常規(guī)結(jié)構(gòu)化的二網(wǎng)格圖像數(shù)據(jù)方面取得了巨大成功,但在處理不規(guī)
    的頭像 發(fā)表于 10-29 09:43 ?358次閱讀
    基于深度學(xué)習(xí)的<b class='flag-5'>三維</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>分類方法

    什么是三維點(diǎn)分割

    點(diǎn)是世界的一結(jié)構(gòu)三維數(shù)據(jù)表示,通常由激光雷達(dá)傳感器、立體相機(jī)或深度傳感器采集。它由一系列
    的頭像 發(fā)表于 10-29 09:21 ?175次閱讀

    友思特方案 基于三維點(diǎn)實(shí)現(xiàn)PCB裝配螺絲視覺檢測

    三維點(diǎn)是完成精密化 PCB 檢測的最新視覺技術(shù)。友思特 Saccde Vision 視覺掃描系統(tǒng),采用先進(jìn)的三維成像技術(shù)和算法輸出直觀點(diǎn)云圖,進(jìn)一步確保了PCB生產(chǎn)的可靠性與穩(wěn)定性能
    的頭像 發(fā)表于 08-28 16:35 ?295次閱讀
    友思特方案  基于<b class='flag-5'>三維</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>實(shí)現(xiàn)PCB裝配螺絲視覺檢測

    起點(diǎn),經(jīng)過點(diǎn),終點(diǎn),三點(diǎn)xyz,畫三維圓弧。

    大家好!已知,起點(diǎn),經(jīng)過點(diǎn),終點(diǎn),三點(diǎn)xyz,畫三維圓弧。在三維圖片框里面畫。該如何實(shí)現(xiàn)?甚至三維點(diǎn)
    發(fā)表于 07-17 21:33

    泰來三維 三維掃描古建筑-蘇巴什佛寺遺址數(shù)字化保護(hù)

    首先對蘇巴什佛寺古遺跡外部三維數(shù)據(jù)采集,獲取精準(zhǔn)三維數(shù)據(jù)。數(shù)據(jù)采集之后進(jìn)行內(nèi)業(yè)處理,數(shù)據(jù)成果包括
    的頭像 發(fā)表于 07-03 13:43 ?322次閱讀
    泰來<b class='flag-5'>三維</b> <b class='flag-5'>三維</b>掃描古建筑-蘇巴什佛寺遺址數(shù)字化保護(hù)

    友思特案例 | 自研創(chuàng)新!三維工件尺寸測量及點(diǎn)處理解決方案

    3D相機(jī)等新型傳感器的發(fā)展克服了傳統(tǒng)工件尺寸測量的各種局限,可獲取豐富的三維點(diǎn)數(shù)據(jù)。友思特提供了一工件3D尺寸測量和
    的頭像 發(fā)表于 06-13 14:13 ?448次閱讀
    友思特案例 | 自研創(chuàng)新!<b class='flag-5'>三維</b>工件尺寸測量及<b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>處理解決方案

    三維可視化數(shù)據(jù)大屏的設(shè)計原理和技巧

    三維可視化數(shù)據(jù)大屏設(shè)計面向交通、園區(qū)、城市、建筑、應(yīng)急等領(lǐng)域的客戶,以孿生可視能力賦能,提供行業(yè)解決方案。雙渲染引擎,1:1還原真實(shí)世界,在模型運(yùn)行流暢的基礎(chǔ)上提供極佳的視覺效果。今天,古河
    的頭像 發(fā)表于 05-30 17:09 ?518次閱讀

    泰來三維|數(shù)字化工廠_煤礦三維掃描數(shù)字化解決方案

    采用大空間三維激光掃描儀對廠區(qū)內(nèi)部進(jìn)行架站式精準(zhǔn)三維掃描。廠區(qū)外部采用無人機(jī)傾斜攝影的方式獲取彩色模型數(shù)據(jù),采集控制點(diǎn)坐標(biāo)與三維
    的頭像 發(fā)表于 05-29 11:55 ?456次閱讀
    泰來<b class='flag-5'>三維</b>|數(shù)字化工廠_煤礦<b class='flag-5'>三維</b>掃描數(shù)字化解決方案

    泰來三維|三維掃描服務(wù)_三維激光掃描儀測量山體滑坡點(diǎn)建模

    點(diǎn)建模是將測量得到的點(diǎn)數(shù)據(jù)進(jìn)行擬合、優(yōu)化與處理,生成真實(shí)的三維模型的過程。它能夠全面、準(zhǔn)確地
    的頭像 發(fā)表于 05-15 16:32 ?283次閱讀
    泰來<b class='flag-5'>三維</b>|<b class='flag-5'>三維</b>掃描服務(wù)_<b class='flag-5'>三維</b>激光掃描儀測量山體滑坡<b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>建模

    泰來三維|三維掃描服務(wù)_三維掃描助力園區(qū)改造公園

    三維激光掃描儀利用激光反射測距原理,通過接受和返回的信號,獲取點(diǎn)三維空間坐標(biāo)。這種測量方式可以無接觸快速獲取大型建筑三維空間數(shù)據(jù),實(shí)現(xiàn)實(shí)體
    的頭像 發(fā)表于 05-07 11:44 ?264次閱讀
    泰來<b class='flag-5'>三維</b>|<b class='flag-5'>三維</b>掃描服務(wù)_<b class='flag-5'>三維</b>掃描助力園區(qū)改造公園

    泰來三維|三維掃描點(diǎn)數(shù)據(jù)怎么處理如何建模

    faro premium 350三維激光掃描儀最終采集的數(shù)據(jù)點(diǎn)云和圖像的形式儲存在掃描儀設(shè)備里,運(yùn)用專門進(jìn)行一定處理后,能獲取建筑物的相對位置信息、尺寸、紋理和形狀,進(jìn)而建立真實(shí)的物體數(shù)據(jù)
    的頭像 發(fā)表于 04-23 13:53 ?335次閱讀

    泰來三維|文物三維掃描,文物三維模型怎樣制作

    制作的呢,今天和大家聊聊,三維掃描技術(shù)文物三維掃描文物三維模型的建立。 1、數(shù)據(jù)采集與處理 工作流程 ?原始三維
    的頭像 發(fā)表于 03-12 11:10 ?606次閱讀
    泰來<b class='flag-5'>三維</b>|文物<b class='flag-5'>三維</b>掃描,文物<b class='flag-5'>三維</b>模型怎樣制作

    泰來三維|見過三維掃描烏賊嗎?三維掃描助力仿生設(shè)計學(xué)研究

    利用雙光源手持3D掃描儀EinScan H2三維掃描儀對烏賊整體 重點(diǎn)軀干進(jìn)行掃描,獲取烏賊三維掃描點(diǎn)模型。掃描過程中通過軟件可以實(shí)時看到掃描進(jìn)度以及掃描
    的頭像 發(fā)表于 01-26 11:25 ?383次閱讀

    泰來三維掃描 這邊風(fēng)景獨(dú)好

    城區(qū)外立面改造項(xiàng)目:沿街12公里, 根據(jù)客戶工期要求,泰來三維提供臺法如三維激光掃描儀進(jìn)行外業(yè)數(shù)據(jù)采集。將獲取的點(diǎn)
    的頭像 發(fā)表于 12-26 15:23 ?301次閱讀
    泰來<b class='flag-5'>三維</b>掃描 這邊風(fēng)景獨(dú)好
    RM新时代网站-首页