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

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

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

激光雷達SLAM中高效的點云數(shù)據(jù)結(jié)構(gòu)

3D視覺工坊 ? 來源:計算機視覺工坊 ? 2023-05-09 09:07 ? 次閱讀

k-d樹是一種常用的多維數(shù)據(jù)結(jié)構(gòu),它可以用于范圍搜索、最近鄰搜索等問題。但是,在實際應(yīng)用中,我們經(jīng)常需要對動態(tài)數(shù)據(jù)進行查詢和修改操作。這時候,傳統(tǒng)的k-d樹就顯得力不從心了。為了解決這個問題,研究人員提出了動態(tài)k-d樹(Dynamic k-d Tree)這一概念。與傳統(tǒng)的k-d樹不同,動態(tài)k-d樹可以支持插入、刪除和修改操作,并且能夠保持平衡狀態(tài)。動態(tài)k-d樹可以用于各種多維數(shù)據(jù)結(jié)構(gòu)問題,例如范圍搜索、最近鄰搜索等。本文將介紹動態(tài)k-d樹的基本原理、實現(xiàn)方法。

1 基本原理

1.1 k-d樹

首先,我們來回顧一下傳統(tǒng)的k-d樹。k-d樹是一種二叉搜索樹,它將每個節(jié)點表示為一個超矩形,并按照某種規(guī)則將超矩形劃分成兩個子區(qū)域。具體來說,k-d樹的構(gòu)建過程如下:

選擇一個維度d,將數(shù)據(jù)集按照第d個維度的值進行排序。

選擇中位數(shù)作為根節(jié)點,并將數(shù)據(jù)集分成兩個子集。左子集包含小于中位數(shù)的所有數(shù)據(jù),右子集包含大于中位數(shù)的所有數(shù)據(jù)。

對左右子集遞歸執(zhí)行步驟1和步驟2,直到每個節(jié)點只包含一個數(shù)據(jù)點

在k-d樹中,每個節(jié)點都表示一個超矩形,其中包含了一些數(shù)據(jù)點。對于任意一個節(jié)點,它的左子樹和右子樹所代表的超矩形是不相交的。因此,在搜索時,我們可以通過比較查詢點與當前節(jié)點所代表的超矩形的位置關(guān)系來確定搜索方向。例如,在二維平面上構(gòu)建k-d樹時,每個節(jié)點都代表一個矩形區(qū)域。如果查詢點在當前節(jié)點所代表的矩形區(qū)域的左下角,則搜索方向為左子樹;如果查詢點在右上角,則搜索方向為右子樹。

1.2 動態(tài)k-d樹

傳統(tǒng)的k-d樹只能處理靜態(tài)數(shù)據(jù)集,即數(shù)據(jù)集不會發(fā)生變化。但是,在實際應(yīng)用中,我們經(jīng)常需要對動態(tài)數(shù)據(jù)進行查詢和修改操作。例如,在機器人運動規(guī)劃中,機器人需要不斷地獲取周圍環(huán)境信息,并進行路徑規(guī)劃。這時候,傳統(tǒng)的k-d樹就無法滿足需求了。

為了解決這個問題,研究人員提出了動態(tài)k-d樹(Dynamic k-d Tree)這一概念。與傳統(tǒng)的k-d樹不同,動態(tài)k-d樹可以支持插入、刪除和修改操作,并且能夠保持平衡狀態(tài)。

在動態(tài)k-d樹中,每個節(jié)點都代表一個超矩形區(qū)域,其中包含了一些數(shù)據(jù)點。與傳統(tǒng)的k-d樹不同的是,動態(tài)k-d樹中的節(jié)點可以被插入、刪除或修改。當一個節(jié)點被插入時,我們需要重新構(gòu)建整個樹;當一個節(jié)點被刪除時,我們需要將其從樹中移除,并重新平衡整個樹;當一個節(jié)點被修改時,我們需要更新其所代表的超矩形區(qū)域,并重新平衡整個樹。

2. ikd-Tree設(shè)計與實現(xiàn)

ikd-Tree是一種基于K-D樹的動態(tài)數(shù)據(jù)結(jié)構(gòu)。它由一個二叉搜索樹組成,在每個節(jié)點上存儲一個超矩形區(qū)域和一個點集合。超矩形區(qū)域是由該節(jié)點所代表的所有點確定的最小超矩形區(qū)域。每個節(jié)點都有一個劃分軸和劃分值來將其子節(jié)點分成兩個子集。ikd-Tree的基本結(jié)構(gòu),包括節(jié)點、分割平面和子樹等和一些增量操作,包括插入、重新插入和刪除等。在這些操作中,ikd-Tree使用遞歸算法來更新節(jié)點,并通過旋轉(zhuǎn)和重建子樹來保持平衡。此外,該節(jié)還介紹了如何進行動態(tài)重新平衡,以避免樹的不平衡導致查詢效率下降。最后,該節(jié)討論了如何使用ikd-Tree進行最近點搜索。ikd-Tree 中樹節(jié)點的屬性在下表中給出。第 2-4 行是標準 k-d 樹的公共屬性。屬性 left tson 和 rightson 分別是指向它的左子節(jié)點和右子節(jié)點的指針。點信息(例如點坐標、強度)存儲在點中。由于一個點對應(yīng)于 k-d 樹上的單個節(jié)點,因此我們將互換使用點和節(jié)點。劃分軸記錄在axis中。第 5-7 行是為第 III-C 節(jié)中詳述的增量更新而設(shè)計的新屬性。

798ab186-edf5-11ed-90ce-dac502259ad0.png

2.1 增量更新和重新平衡

圖1展示了增量k-d樹的更新和重新平衡過程。在這個例子中,黑色點表示現(xiàn)有的k-d樹節(jié)點,紅色三角形表示要插入的新點。藍色立方體表示需要重新平衡的空間(即分支)。在插入新點后,ikd-Tree使用旋轉(zhuǎn)和重建子樹來保持平衡,并將藍色立方體移動到正確的位置。

79b432ea-edf5-11ed-90ce-dac502259ad0.png

2.2 盒式操作和下采樣

盒式操作是指將空間劃分為多個盒子,以便更快地搜索最近的點。在ikd-Tree中,這是一種針對數(shù)據(jù)坐標軸對齊的矩形框內(nèi)的所有點進行插入、刪除或重新插入操作的方法。這些矩形框可以由用戶指定,也可以根據(jù)數(shù)據(jù)集自動計算得出。下采樣是指在保持數(shù)據(jù)分布的同時減少數(shù)據(jù)量,從而提高查詢效率。

79e14852-edf5-11ed-90ce-dac502259ad0.png

2.3 動態(tài)重新平衡

ikd-Tree還支持動態(tài)重新平衡,以避免樹的不平衡導致查詢效率下降。具體來說,ikd-Tree使用部分重建方法來重新平衡樹。當需要重新平衡時,ikd-Tree將樹分成兩個部分,并在兩個線程中同時進行重建操作。這種方法可以最大限度地減少重建時間,并提高整體效率。

7a08e272-edf5-11ed-90ce-dac502259ad0.png

3 時間和空間復(fù)雜度

該節(jié)介紹了ikd-Tree分別對插入、刪除、查詢和重建等操作的時間復(fù)雜度進行了分析。最后,該節(jié)還討論了ikd-Tree的空間復(fù)雜度和實際應(yīng)用中的性能表現(xiàn)。ikd-Tree是一種基于k-d樹的增量數(shù)據(jù)結(jié)構(gòu),可以在機器人應(yīng)用中高效地進行點云數(shù)據(jù)處理、路徑規(guī)劃等操作。

在ikd-Tree中,每個節(jié)點都包含一個分割平面和兩個子樹,其中左子樹包含小于分割平面值的點,右子樹包含大于等于分割平面值的點。通過遞歸算法,在每個節(jié)點上進行二分查找,并通過旋轉(zhuǎn)和重建子樹來保持平衡。在插入操作方面,該節(jié)指出,在最壞情況下,插入一個新點需要O(n)次比較操作(其中n表示樹中節(jié)點數(shù)目)。這是因為新點可能會被插入到所有節(jié)點的左或右子樹中。但是,在實際應(yīng)用中,由于ikd-Tree使用動態(tài)重新平衡方法來保持平衡,并且支持下采樣等功能來減少數(shù)據(jù)量,因此插入操作的時間復(fù)雜度通常為O(log n)。

在刪除操作方面,該節(jié)指出,刪除一個節(jié)點需要O(log n)次比較操作。這是因為ikd-Tree使用遞歸算法來查找要刪除的節(jié)點,并通過旋轉(zhuǎn)和重建子樹來保持平衡。但是,在實際應(yīng)用中,由于ikd-Tree支持下采樣等功能來減少數(shù)據(jù)量,因此刪除操作的時間復(fù)雜度通常為O(log n) 在查詢操作方面,該節(jié)指出,ikd-Tree的查詢操作需要O(log n)次比較操作。這是因為在每個節(jié)點上進行二分查找,并根據(jù)分割平面的值來選擇左或右子樹進行遞歸查找。由于ikd-Tree使用動態(tài)重新平衡方法來保持平衡,并且支持下采樣等功能來減少數(shù)據(jù)量,因此查詢操作的時間復(fù)雜度通常為O(log n)。

在重建操作方面,該節(jié)指出,ikd-Tree使用部分重建方法來重新平衡樹。當需要重新平衡時,ikd-Tree將樹分成兩個部分,并在兩個線程中同時進行重建操作。這種方法可以最大限度地減少重建時間,并提高整體效率。由于ikd-Tree支持動態(tài)重新平衡和部分重建等功能,因此重建操作的時間復(fù)雜度通常為O(log n)。

在空間復(fù)雜度方面,該節(jié)指出,ikd-Tree需要O(n)的空間來存儲所有節(jié)點和數(shù)據(jù)點。每個節(jié)點都需要存儲其分割平面、子樹信息以及其他元數(shù)據(jù)。但是,在實際應(yīng)用中,由于ikd-Tree支持下采樣等功能來減少數(shù)據(jù)量,并且可以通過壓縮存儲等技術(shù)進一步減少所需存儲空間。

歡迎關(guān)注「3D視覺工坊」,加群/文章投稿/課程主講,請加微信:dddvisiona,添加時請備注:加群/投稿/主講申請

實驗結(jié)果與分析

該節(jié)首先介紹了測試環(huán)境和數(shù)據(jù)集,包括使用的硬件和軟件配置以及測試數(shù)據(jù)的來源和特點。然后,該節(jié)詳細討論了ikd-Tree在不同應(yīng)用場景下的性能表現(xiàn),并與其他數(shù)據(jù)結(jié)構(gòu)進行了比較。這些實驗分別是基于隨機增量數(shù)據(jù)集的實驗和基于LiDAR測距儀的室外SLAM實驗。在隨機增量數(shù)據(jù)集實驗中,ikd-Tree的效率得到了充分驗證。該實驗使用1000個點作為初始數(shù)據(jù)集,并逐步增加1000個點進行測試。圖4(a)展示了ikd-Tree和靜態(tài)k-d樹之間的運行時間比較,其中x軸表示增量更新次數(shù),y軸表示運行時間(單位:毫秒)。

可以看出,在增量更新次數(shù)較少時,ikd-Tree和靜態(tài)k-d樹之間的運行時間差異不大。但是,當增量更新次數(shù)達到一定數(shù)量時,ikd-Tree明顯優(yōu)于靜態(tài)k-d樹,并且具有更好的擴展性。圖4(b)展示了ikd-Tree和靜態(tài)k-d樹之間的最近鄰搜索時間比較,其中x軸表示查詢次數(shù),y軸表示運行時間(單位:毫秒)??梢钥闯?,在查詢次數(shù)較少時,ikd-Tree和靜態(tài)k-d樹之間的查詢時間差異不大。但是,在查詢次數(shù)達到一定數(shù)量時,ikd-Tree明顯優(yōu)于靜態(tài)k-d樹,并且具有更好的擴展性。圖4(c)展示了ikd-Tree和靜態(tài)k-d樹之間的操作計數(shù)和總時間消耗比較,其中x軸表示點數(shù),y軸表示操作計數(shù)和總時間消耗。在點數(shù)達到一定數(shù)量時,ikd-Tree明顯優(yōu)于靜態(tài)k-d樹。

7a2235b0-edf5-11ed-90ce-dac502259ad0.png

在LiDAR的室外SLAM實驗中,ikd-Tree也表現(xiàn)出了優(yōu)異的性能。該實驗使用了一個移動機器人和一個LiDAR,通過對周圍環(huán)境進行掃描來構(gòu)建地圖。圖5展示了ikd-Tree在該實驗中的性能表現(xiàn),其中x軸表示時間(單位:秒),y軸表示運行時間(單位:毫秒)??梢钥闯?,在整個實驗過程中,ikd-Tree的運行時間始終保持在較低水平。

7a3f8f52-edf5-11ed-90ce-dac502259ad0.png






審核編輯:劉清

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

    關(guān)注

    211

    文章

    28466

    瀏覽量

    207327
  • SLAM
    +關(guān)注

    關(guān)注

    23

    文章

    425

    瀏覽量

    31856
  • 激光雷達
    +關(guān)注

    關(guān)注

    968

    文章

    3981

    瀏覽量

    190021
  • LiDAR芯片
    +關(guān)注

    關(guān)注

    1

    文章

    17

    瀏覽量

    3232

原文標題:ikd樹:激光雷達SLAM中高效的點云數(shù)據(jù)結(jié)構(gòu)

文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    淺析自動駕駛發(fā)展趨勢,激光雷達是未來?

    。激光雷達主導的解決方案未來可以沿如下兩個方向繼續(xù)推進商業(yè)化進程:一個是發(fā)展攝像頭與激光雷達的硬件模組,把兩者結(jié)合起來,既有激光雷達,又有彩色攝像頭,可以直接獲得彩色激光
    發(fā)表于 09-06 11:36

    激光雷達是自動駕駛不可或缺的傳感器

    看到這種低成本的激光雷達,從研發(fā)、樣品到商用,可能會比原來預(yù)想的周期更快。因為不是一家激光雷達公司在努力,而是整個產(chǎn)業(yè)鏈都在努力。是在同一空間倡導系下表達目標空間分布和目標表面特性
    發(fā)表于 09-08 17:24

    常見激光雷達種類

    單線激光雷達特點:結(jié)構(gòu)簡單、掃描速度快、分辨率高、可靠性高、成本低。單線激光雷達實際上就是一個高同頻激光脈沖掃描儀,加上一個一維旋轉(zhuǎn)掃描。單線激光雷
    發(fā)表于 09-25 11:30

    激光雷達面臨的機遇與挑戰(zhàn)

    機遇激光雷達在智能機器生態(tài)系統(tǒng)中有很多機遇。與使用二維圖像相比,能夠更容易的被計算機使用,用于構(gòu)建物理環(huán)境的三維形象——二維圖像是人腦最容易理解的數(shù)據(jù),而對于計算機來說,
    發(fā)表于 09-26 14:30

    激光雷達究竟為什么這么牛,這么貴

    比對上一幀和下一幀環(huán)境的變化可以較為容易的探測出周圍的車輛和行人。2.SLAM加強定位。激光雷達另一大特性是同步建圖(SLAM),實時得到的全局地圖,通過與高精度地圖中特征物的比對,可以實現(xiàn)導航及加強
    發(fā)表于 10-16 16:31

    消費級激光雷達的起航

    。超聲波傳感器無法探測到障礙物的具體方位信息,而攝像頭、紅外傳感器則容易受到環(huán)境光的影響。綜合對比,激光雷達方案精度最高,數(shù)據(jù)可靠性也最好,可以說是AGV避障的最優(yōu)選擇。 然而,目前兩種傳統(tǒng)AGV避障
    發(fā)表于 12-07 14:47

    激光雷達除了可以激光測距外,還可以怎么應(yīng)用?

    簡單的3D雷達,獲取三維數(shù)據(jù)呢?目前市面上主流的有2種方式:1、采用線狀激光器,將原先的一個變成一條線型光;2、使用一個2D激光雷達掃描,
    發(fā)表于 05-11 15:33

    5 款激光雷達:iDAR、高清3D LiDARInnovizPro、S3、SLAM on Chip、VLS-128

    (3D),以此讓系統(tǒng)來探測并識別目標。同樣的場景下,其效率是只配備激光雷達產(chǎn)品的 10-20 倍。除此之外,iDAR 還能將 2D 圖像覆蓋在 3D 之上,這樣我們就有了真正的彩色激光雷達
    發(fā)表于 07-26 20:45

    AGV激光雷達SLAM定位導航技術(shù)

    4個開關(guān)量輸入信號組合選取15組區(qū)域組(FieldSet)中的任一個作為當前工作區(qū)域組,適應(yīng)復(fù)雜多變的應(yīng)用環(huán)境,還可以輸出點數(shù)據(jù)?!    鲨D神激光雷達+SLAM算法可實現(xiàn)的五大功能
    發(fā)表于 11-09 15:59

    【北醒TFmini-S 測距/避障激光雷達傳感器免費試用連載】基于FPGA平臺的YOLO-Complex數(shù)據(jù)加速

    )/顯示控制等內(nèi)容。目前正在研究項目是基于FPGA ZCU102平臺的算法開發(fā)(YOLO-Complex),希望借助北醒TFmini-S 測距/避障激光雷達傳感器可以進行特定場景的
    發(fā)表于 05-28 17:32

    激光雷達知多少:從技術(shù)上講講未來前景

    激光雷達產(chǎn)業(yè)迅速擴大。 地基激光雷達 地基激光雷達可以獲取林區(qū)的3D信息,利用
    發(fā)表于 07-14 07:56

    當“思嵐”激光雷達邂逅盲人拐杖

    的具體姿勢視覺傳感器:結(jié)合激光雷達,做SLAM建圖圖源:Science Robotics其中,相信大家對這款激光雷達很眼熟,就是思嵐科技的 RPLIDAR A1。A1的應(yīng)用,可以用來幫助盲人探測周圍物體
    發(fā)表于 11-12 14:12

    激光雷達數(shù)據(jù)分割算法的嵌入式平臺上的部署實現(xiàn)

    點擊上方“AI算法修煉營”,選擇“星標”公眾號精選作品,第一時間送達這篇文章是激光雷達數(shù)據(jù)分割算法的嵌入式平臺上的部署實現(xiàn)。主要的創(chuàng)新
    發(fā)表于 12-21 08:28

    詳解激光雷達數(shù)據(jù)的處理過程

    隨著激光雷達的上車數(shù)量的不斷攀升,如何用好激光雷達成為了重中之重,而用好激光雷達的關(guān)鍵之一就在于處理好點
    的頭像 發(fā)表于 03-14 09:36 ?3970次閱讀

    激光雷達數(shù)據(jù)包含哪些信息

    )、環(huán)境監(jiān)測、城市規(guī)劃等領(lǐng)域。激光雷達數(shù)據(jù)激光雷達系統(tǒng)收集到的一系列三維空間坐標點,包含了豐富的空間信息。本文將介紹
    的頭像 發(fā)表于 08-29 17:18 ?959次閱讀