点云处理绕不开的算法!如何高效搜索最近邻?开源工具库汇总

添加小助理微信AIDriver004,加入近30+自动驾驶技术方向交流群!更多行业咨询与技术分享,欢迎加入『自动驾驶之心知识星球』,国内最大的自动驾驶技术交流社区,你想要的这里都有。

论文作者 | 3D视觉之心

编辑 | 自动驾驶之心

(一)ANN benchmark

链接:https://github.com/erikbern/ann-benchmarks

在高维空间中快速搜索最近的邻居是一个越来越重要的问题,尽管显然需要这样来推动优化,但很少有实证尝试以客观的方式比较方法。

该项目包含用于对所选度量的近似最近邻(ANN)搜索的各种实现进行基准测试的工具。已经预先生成了数据集(HDF5格式),并为每个算法准备了Docker容器,以及一个验证功能完整性的测试套件。

51f9a6233b73189a25db7ead2e9ddd52.png 1248a877c6b318e2e5cc016707d2e2f5.png

(二)PCL

知名点云库 Point Cloud Library | The Point Cloud Library ,这个就不多说了,里面的功能非常丰富,支持多类点云处理算法。

(三)ikdtree

链接:https://github.com/hku-mars/ikd-Tree

香港大学开源,ikd树是为机器人应用程序设计的增量k-d树。ikd树只使用新的到来点来增量更新k-d树,从而比现有的静态k-d树的计算时间低得多。除了逐点操作外,ikd树还支持一些功能,如逐box操作和下采样,这些功能在机器人应用中非常有用。

c41e7b94d05298ec7e860c2428b0b4cf.png

相关参考论文:

  • ikd-Tree: An Incremental K-D Tree for robotic applications

  • FAST-LIO2: Fast Direct LiDAR-Inertial Odometry

(四)nanoflann

nanoflann只有头文件方便集成,nanoflann是一个仅限C++11头的库,用于构建具有不同拓扑结构的数据集的KD树:R2、R3(点云)、SO(2)和SO(3)(2D和3D旋转组)。不支持approximate NN。nanoflann不需要编译或安装,只需要在代码中#包含<nanoflan.hpp>。

931b9ccf7afe81a3b365257ed0775da1.png

(五)libpointmatcher:

ETH 点云 icp 库,libpointmatcher用于实现点云对齐的迭代最近点(ICP)算法。它同时支持点对点和点对平面ICP。使用前者,它不仅可以解决刚性变换,还可以解决云之间的比例变化(即相似性变换)。

链接:https://libpointmatcher.readthedocs.io/en/latest/#developer99a473fdabd9f4e63e13e8195615d8fc.png

8089bca7f3ad2921b9c0627c887dda6e.png

(六)Open3D

英特尔实验室点云处理库:https://www.open3d.org/

Open3D是一个开源库,支持处理3D数据的软件的快速开发。Open3D前端公开了一组精心选择的C++和Python数据结构和算法。后端经过高度优化,并设置为并行化。它可以在不同的平台上进行设置,并以最小的工作量从源代码进行编译。代码干净、风格一致,并通过清晰的代码审查机制进行维护。Open3D已被用于许多已发表的研究项目,并积极部署在云中。里面也集成了各类最近邻匹配算法、ICP等配准算法。

1200a94a439084beb844b7a2574a81f7.png c6a4b7b77a73ef59947535a55096852a.png

(七)Faiss

Meta 用于高效相似性搜索和密集向量聚类,链接:https://github.com/facebookresearch/faiss

Faiss包含几种相似性搜索方法。它假设实例被表示为向量,并由整数标识,并且向量可以与L2(欧几里得)距离或点积进行比较。与查询向量相似的向量是与查询向量具有最低L2距离或最高点积的向量。它还支持余弦相似性,因为这是归一化向量上的点积。

一些方法,如基于二进制矢量和紧凑量化码的方法,仅使用矢量的压缩表示,不需要保留原始矢量。这通常是以不太精确的搜索为代价的,但这些方法可以在单个服务器的主存中扩展到数十亿个向量。其他方法,如HNSW和NSG,在原始向量的顶部添加索引结构,以提高搜索效率。

GPU实现可以接受来自CPU或GPU存储器的输入。在具有GPU的服务器上,GPU索引可以用作CPU索引的插入式替换(例如,用GpuIndexFlatL2替换IndexFlatL2),并且自动处理到GPU存储器的副本/从GPU存储器的复制。然而,如果输入和输出都保持在GPU上,结果将更快。同时支持单GPU和多GPU使用。

(八)ivox

基于LRU机制可DIY,链接:https://github.com/gaoxiang12/faster-lio

Faster LIO是一种用于激光雷达姿态跟踪和点云测绘的轻型激光雷达惯性里程计。它是在FastLIO2的基础上开发的,可提供约1.5-2倍的速度提升。对于固态激光雷达,它可以达到近1k-2k赫兹,对于典型的32线旋转激光雷达,可以达到超过100赫兹。

论文:https://github.com/gaoxiang12/faster-lio/blob/main/doc/faster-lio.pdf

7ff0c51a2e0c39c80eed90f7edd7382f.png

(九)nmslib

高效的相似性搜索库、用于评估通用非度量空间的 k-NN 方法的工具包。

链接:https://github.com/nmslib/nmslib

非度量空间库(NMSLIB)是一个高效的跨平台相似性搜索库,也是评估相似性搜索方法的工具包。核心库没有任何第三方依赖项。它最近越来越受欢迎。该项目的目标是创建一个有效和全面的工具包,用于在通用和非度量空间中进行搜索。尽管该库包含各种度量空间访问方法,但我们的主要关注点是通用和近似搜索方法,特别是非度量空间的方法。NMSLIB可能是第一个原则上支持非度量空间搜索的库。

NMSLIB是一个可扩展的库,这意味着可以添加新的搜索方法和距离函数。NMSLIB可以直接在C++和Python中使用(通过Python绑定)。此外,还可以构建一个查询服务器,该服务器可以从Java(或Apache Thrift(0.12版本)支持的其他语言)使用。Java有一个本机客户端,即它可以在许多平台上工作,而不需要安装C++库。

016c312787c1d389017027279a30e5e6.png

投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测车道线检测轨迹预测在线高精地图世界模型点云3D目标检测目标跟踪Occupancy、cuda与TensorRT模型部署大模型与自动驾驶Nerf语义分割自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

7d1a2eaf35d552f89c24af61930868f2.png

网页端官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

b260b81502ca99dcbb107ce93afe542b.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!

自动驾驶感知:目标检测、语义分割、BEV感知、毫米波雷达视觉融合、激光视觉融合、车道线检测、目标跟踪、Occupancy、深度估计、transformer、大模型、在线地图、点云处理、模型部署、CUDA加速等技术交流群;

多传感器标定:相机在线/离线标定、Lidar-Camera标定、Camera-Radar标定、Camera-IMU标定、多传感器时空同步等技术交流群;

多传感器融合:多传感器后融合技术交流群;

规划控制与预测:规划控制、轨迹预测、避障等技术交流群;

定位建图:视觉SLAM、激光SLAM、多传感器融合SLAM等技术交流群;

三维视觉:三维重建、NeRF、3D Gaussian Splatting技术交流群;

自动驾驶仿真:Carla仿真、Autoware仿真等技术交流群;

自动驾驶开发:自动驾驶开发、ROS等技术交流群;

其它方向:自动标注与数据闭环、产品经理、硬件选型、求职面试、自动驾驶测试等技术交流群;

扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

4efe9ad8eabb327efcb72ea3826e5747.jpeg

④【自动驾驶之心】硬件专场

6ac2a4d4f50268d2f3206b1ec7ba739a.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值