国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

這篇具有很好參考價(jià)值的文章主要介紹了激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本節(jié)將介紹Open3D開源庫:KDTree的原理及構(gòu)建,將無序點(diǎn)云變?yōu)橛行螯c(diǎn)云,實(shí)現(xiàn)點(diǎn)云的快速鄰近搜索。

激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree


1.KDTree 概述

Open3D使用FLANN構(gòu)建KDTrees,將無序點(diǎn)云變?yōu)橛行螯c(diǎn)云,以便快速檢索最近鄰。
在激光雷達(dá)中,一般使用的是三維點(diǎn)云。所以,kd-tree的維度是3。
KDTree(k 維樹)是一種空間分區(qū)數(shù)據(jù)結(jié)構(gòu),它將一組 k 維點(diǎn)存儲(chǔ)在樹結(jié)構(gòu)中,從而實(shí)現(xiàn)高效的范圍搜索最近鄰搜索最近鄰搜索是處理點(diǎn)云數(shù)據(jù)時(shí)的核心操作,可用于查找點(diǎn)組或要素描述符之間的對(duì)應(yīng)關(guān)系,或定義一個(gè)或多個(gè)點(diǎn)周圍的局部鄰域。

具體KD-Tree原理詳解參考以下文章:

  • KD-Tree原理詳解:https://zhuanlan.zhihu.com/p/112246942
  • 三維點(diǎn)云學(xué)習(xí)(2)中-Kd-tree (k-dimensional tree):https://blog.csdn.net/weixin_41281151
    激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree
    激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

2.KDTree 算法流程

2.1 構(gòu)建KDtree

首先,讀取點(diǎn)云并渲染為灰色便于后面顯示搜索到的點(diǎn)云,通過o3d.geometry.KDTreeFlann函數(shù)建立樹結(jié)構(gòu)

pcd = o3d.io.read_point_cloud("./tree/Tree_singel.pcd")
o3d.visualization.draw_geometries([pcd],width = 700, height = 900)
pcd.paint_uniform_color([0.5, 0.5, 0.5])  # 渲染為灰色
o3d.visualization.draw_geometries([pcd],width = 700, height = 900)
pcd_tree = o3d.geometry.KDTreeFlann(pcd)  # 建立樹結(jié)構(gòu)

激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

2.2 搜索相鄰點(diǎn)

將第480000個(gè)點(diǎn)作為錨點(diǎn)并渲染成紅色

pcd.colors[48000] = [1, 0, 0]  # 將該點(diǎn)作為錨點(diǎn)并渲染為紅色

激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

2.3 鄰近搜索

法1:KNN最近鄰近搜索

采用search_knn_vector_3d函數(shù)實(shí)現(xiàn),返回錨點(diǎn)的 k 個(gè)最近鄰的索引列表。使用np.asarray轉(zhuǎn)換為 numpy 數(shù)組以批量訪問點(diǎn)顏色,將相鄰點(diǎn)渲染成藍(lán)色。搜索時(shí)會(huì)跳過第一個(gè)索引,因?yàn)樗清^點(diǎn)本身。

# 方法1:KNN領(lǐng)域搜索
pcd.colors[48000] = [1, 0, 0]  # 將該點(diǎn)作為錨點(diǎn)并渲染為紅色
[k, idx, _] = pcd_tree.search_knn_vector_3d(pcd.points[48000], 300)
np.asarray(pcd.colors)[idx[1:], :] = [0, 0, 1] # 渲染成藍(lán)色

激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

法2:RNN半徑鄰近搜索

采用search_radius_vector_3d函數(shù)查詢到錨點(diǎn)的距離小于給定半徑的所有點(diǎn)。

# 方法2:RNN半徑領(lǐng)域搜索
pcd.colors[2500] = [1, 0, 0]  # 將該點(diǎn)作為錨點(diǎn)并渲染為紅色
[k1, idx1, _] = pcd_tree.search_radius_vector_3d(pcd.points[2500], 0.2) # 半徑搜索
np.asarray(pcd.colors)[idx1[1:], :] = [0, 1, 0] # 半徑搜索結(jié)果并渲染為綠色
o3d.visualization.draw_geometries([pcd], width = 700, height = 900)

激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

法3:RKNN混合搜索

采用search_hybrid_vector_3d函數(shù)實(shí)現(xiàn),結(jié)合 KNN 搜索和 RNN 搜索的條件最多返回K個(gè)和錨點(diǎn)距離小于給定半徑的最鄰近點(diǎn)。在許多實(shí)際情況下具有性能優(yōu)勢(shì),并在Open3D的許多函數(shù)中大量使用。

# 法3:混合搜索
pcd.colors[222] = [1, 0, 0]
[k2, idx2, _] = pcd_tree.search_hybrid_vector_3d(pcd.points[222], 0.5,200) # RKNN混合搜索
np.asarray(pcd.colors)[idx2[1:], :] = [0, 1, 0.8]#半徑搜索結(jié)果并渲染為青色
o3d.visualization.draw_geometries([pcd], width = 700, height = 900)

激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

總結(jié)

本節(jié)介紹采用開源點(diǎn)云處理庫Open3D之構(gòu)建KDtree樹實(shí)現(xiàn)點(diǎn)云的快速鄰近搜索。


激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree文章來源地址http://www.zghlxwxcb.cn/news/detail-446172.html

到了這里,關(guān)于激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用激光雷達(dá)(LiDAR)和相機(jī)進(jìn)行3D物體跟蹤

    使用激光雷達(dá)(LiDAR)和相機(jī)進(jìn)行3D物體跟蹤

    使用相機(jī)和激光雷達(dá)進(jìn)行時(shí)間到碰撞(TTC)計(jì)算 在我的先前文章中,我介紹了通過檢測(cè)關(guān)鍵點(diǎn)和匹配描述符進(jìn)行2D特征跟蹤的主題。在本文中,我將利用這些文章中的概念,以及更多的內(nèi)容,開發(fā)一個(gè)軟件流水線,使用相機(jī)和激光雷達(dá)測(cè)量在3D空間中檢測(cè)和跟蹤對(duì)象,并使用

    2024年02月05日
    瀏覽(21)
  • 【Open3D】如何在CMake/C++中調(diào)用Open3D

    qquad Open3D是點(diǎn)云的開源處理庫,支持Python或C++。其Python已有較全的教程,也可以直接使用 pip install open3d 直接進(jìn)行安裝,而若想在C++中調(diào)用Open3D則麻煩一些,需要滿足以下條件: Open3D git源代碼(本教程針對(duì)0.16.1的版本) CMake = 3.20 clang = 7 分為以下幾步進(jìn)行: 下載Open3D源代碼

    2023年04月18日
    瀏覽(14)
  • open3d教程(一):open3d的安裝和測(cè)試(Python版本)

    Open3d:用于3D數(shù)據(jù)處理的現(xiàn)代庫。 Open3D 是一個(gè)開源庫,支持快速開發(fā)處理 3D 數(shù)據(jù)的軟件。 Open3D 前端在 C++ 和 Python 中公開了一組精心挑選的數(shù)據(jù)結(jié)構(gòu)和算法。后端經(jīng)過高度優(yōu)化,并設(shè)置為并行化。我們歡迎來自開源社區(qū)的貢獻(xiàn)。 Open3d的核心功能: 3D數(shù)據(jù)結(jié)構(gòu) 3D數(shù)據(jù)處理算法

    2024年02月17日
    瀏覽(38)
  • 基于Open3D的點(diǎn)云處理17-Open3d的C++版本

    基于Open3D的點(diǎn)云處理17-Open3d的C++版本

    http://www.open3d.org/docs/latest/cpp_api.html http://www.open3d.org/docs/latest/getting_started.html#c http://www.open3d.org/docs/release/cpp_project.html#cplusplus-example-project https://github.com/isl-org/open3d-cmake-find-package https://github.com/isl-org/open3d-cmake-external-project https://github.com/isl-org/Open3D/releases Note: -DBUILD_SHARED_LIBS

    2024年02月09日
    瀏覽(47)
  • open3d 0.17.0的open3d.visualization.ViewControl類有bug

    在使用過程中發(fā)現(xiàn) open3d.visualization.ViewControl 的如下方法,在 open3d 0.17.0 環(huán)境下不起作用,點(diǎn)云的顯示視場(chǎng)還是默認(rèn)配置;而在 open3d 0.16.0 環(huán)境下卻正常工作。 rotate set_front set_lookat set_up set_zoom 上述測(cè)試代碼在如下虛擬環(huán)境中進(jìn)行過測(cè)試,均失敗。 在如下虛擬環(huán)境中正常工作

    2024年02月21日
    瀏覽(19)
  • Open3D點(diǎn)云數(shù)據(jù)處理(一):VSCode配置python,并安裝open3d教程

    Open3D點(diǎn)云數(shù)據(jù)處理(一):VSCode配置python,并安裝open3d教程

    專欄地址:https://blog.csdn.net/weixin_46098577/category_11392993.html 在很久很久以前,我寫過這么一篇博客,講的是open3d點(diǎn)云處理的基本方法。?? 當(dāng)時(shí)是 PyCharm + Anaconda + python3.8 + open3d 0.13 已經(jīng)是2023年了,現(xiàn)在有了全新版本。目前python由當(dāng)年的3.8更新到了3.11版本,open3d也從0.13來到了

    2024年02月07日
    瀏覽(37)
  • 【Open3D可視化——添加標(biāo)簽】:如何在Open3D的可視化窗口中添加文字標(biāo)簽?

    【Open3D可視化——添加標(biāo)簽】:如何在Open3D的可視化窗口中添加文字標(biāo)簽? Open3D是一個(gè)基于Python語言開發(fā)的跨平臺(tái)開源工具包,主要用于三維數(shù)據(jù)處理和可視化。在進(jìn)行三維數(shù)據(jù)可視化過程中,往往需要在場(chǎng)景中添加標(biāo)簽來標(biāo)識(shí)物體、點(diǎn)云等信息。本文將介紹如何在Open3D的可

    2024年02月11日
    瀏覽(208)
  • Open3D讀取文件

    Open3D讀取文件

    Open3D可以讀取點(diǎn)云文件,三角網(wǎng)格文件,也可以讀取圖片。具體方法如下: 一、點(diǎn)云文件操作 ????????Open3D支持的文件格式有xyz,xyzn,xyzrgb,pts,ply,pcd等文件。讀取的方式也非常簡(jiǎn)單。data = o3d.io.read_point_cloud(\\\"文件名“) 1、讀寫文件 ????????函數(shù)原型如下: ???

    2024年02月08日
    瀏覽(22)
  • Open3D學(xué)習(xí)筆記

    Open3D是一個(gè)開源庫,它支持處理3D數(shù)據(jù)的軟件的快速開發(fā)。Open3D前端在C++和Python中有一些公開的數(shù)據(jù)結(jié)構(gòu)和算法。后端經(jīng)過高度優(yōu)化,并設(shè)置為并行化。 PCL也是3D點(diǎn)云數(shù)據(jù)處理的優(yōu)秀開源庫,在C++平臺(tái)上表現(xiàn)較好,但是在Python上python-pcl長(zhǎng)時(shí)間不更新,維護(hù)少,不太好用,不建

    2024年02月01日
    瀏覽(19)
  • 什么是open3D?

    什么是open3D?

    目錄 一、說明 二、如何安裝open3d?? 三、顯示點(diǎn)云數(shù)據(jù) 3.1 顯示點(diǎn)云場(chǎng)景數(shù)據(jù) 3.2 體素下采樣 3.3 頂點(diǎn)法線估計(jì) ????????對(duì)于點(diǎn)云?處理,這里介紹哦pen3d,該軟件和opencv同樣是interl公司的產(chǎn)品。 ????????Open3D 是一個(gè)開源庫,支持快速開發(fā)處理 3D 數(shù)據(jù)的軟件。 Open3D 前

    2024年02月03日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包