专栏首页点云PCL一个精简的开源点云库

一个精简的开源点云库

Cilantro是一个精简高效的点云数据处理库,编程是C++,依赖项较少,但是相比较于PCL来说,代码更有可读性,PCL中大量的使用C++高级特性,阅读起来比较难并且不易重构拆解代码,而cilantro重点放在了3D案例上,尽量减少了样板代码的数量,包含了对点云常见的操作,是一个比较简单易懂的API,所以该库可以被广泛的模块化,并且支持多维度数据进行操作,同时保证对算法模块的模块化和可扩展性。作者是一位在Magic leap公司工作的计算机视觉工程师,是马里兰大学伯克利分校的计算机科学博士,是感知机器人小组的成员。

模块划分

点云基本处理模块

(1)一般尺寸的KD树(与PCL一样都用了第三方依赖项nanoflann)

(2)基于原始点云的曲面法向量和曲率的估计

(3)基于常用的尺寸网格的点云重采样算法

(4)主成分分析

(5)三维点云基本的IO操作(其中依赖了第三方库tinyply和Eigen库)

(6)rgbd图像对和点云之间的转换程序

点云凹凸以及空间检测模块

(1)使用了第三方库Qhull实现从常见维度点云凸多面体检测

(2)实现多个图多面体的并集检测运算

点云分类模块

(1)依赖第三方库nanoflann实现多维度的基于距离度量的K-mean聚类算法

(2)基于第三方库Spectra的各种拉普拉斯类型的频谱聚类

(3)支持自定义的基于内核的mean-shift聚类算法

(4)支持任意点之间基于联通性的点云分割算法

点云配准模块

支持任意对应搜索方式的ICP点云配准

(1)点对点的度量方式(通用维度)点对平面的度量(二维或者三维)或者其他任意组合下的刚性或者仿射对齐算法

(2)在点到点和点到平面度量的任意组合下,通过稳定的正则化,局部刚体或者仿射变换,实现二维或者三维点集的非刚性对齐,并支持稠密和稀疏的点云变换的算法。

点云模型估计模块

ransac估计器模板及其在一般维度上的实例:

(1)稳健超平面估计

(2)给定噪声对应的刚性点云配准

点云可视化模块模块

主要是依赖了第三方库Pangolin

安装与实例

安装Eigen以及 Pangolin

安装Eigen3

sudo apt-get install libeigen3-dev

安装Pangolin

sudo apt-get install libglew-dev libpython2.7-dev libboost-dev libboost-thread-dev libboost-filesystem-dev -y

git clone https://github.com/stevenlovegrove/Pangolin

cd Pangolin

mdkir build

cd build

cmake ..

make

sudo make install

安装完成后下载源码并编译

(已经fork到我们的github组群中)

git clone https://github.com/dianyunPCL/cilantro.git

编译

mkdir build

cd build

cmake ..

make

从cmake中我们可以看出来代码是比较精简的,一般性的第三方库都已经在include中,并且直接将其编译为.so文件,而我们在安装成eigen和pangolin

之后,将会编译example中的代码。所以如果想修改其中的代码,相比较PCL的库简单很多。

此时我们找一个example运行一下。这里以可视化的函数为例

./visualizer test.ply

以上就是文章的全部内容了,群主总结一下,该库相比较PCL功能少了很多,但是基本的点云处理涵盖了,并且支持处理的点云的类型主要是PLY格式,可以配合着PCL使用,当然其中还有很多的example,群主也没有细读代码,希望有兴趣的小伙伴可以尝试着自己运行,并且能够深入理解其中的代码,能够从这一套代码中独立出一个算法来,并且有所改进,这应该是是很多小伙伴想做的事情。这也是为了解答前几天在微信群里提问如何改进点云算法的问题吧,期待小伙伴们能够积极主动的邮件与我交流,相互学习。

本文分享自微信公众号 - 点云PCL(dianyunPCL),作者:dianyunPCL

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用深度学习的三维点云分类的介绍

    在过去的这些年里,对二维图像已经有了大量深入的研究,并且有着长足的发展。它在分类任务上取得了极好的结果主要得益于一下两个关键因素:

    点云PCL博主
  • 【点云论文速读】基于YOLO和K-Means的图像与点云三维目标检测方法

    标题:3D Object Detection Method Based on YOLO and K-Means for Image and Point Clou...

    点云PCL博主
  • 三维点云分割综述(上)

    三维点云的语义分割3D Point Cloud Semantic Segmentation (PCSS)在计算机视觉以及机器人领域广泛的应用,随着深度学习技术的...

    点云PCL博主
  • 最新最全 VSCODE 插件推荐(2021版)

    支持 MySQL/MariaDB, Microsoft SQL Server, PostgreSQL, Redis, and ElasticSearch

    白墨石
  • android屏幕圆角实现方法的示例代码

    现在很多全面屏手机的屏幕四角做成圆的,其圆润的感觉给人带来别样的视觉体验。大家来直观感受一下圆角的魅力。

    砸漏
  • 关于WebLogic 9.2与10.0中console异地IP登录不上的解决方法

    关于WebLogic 9.2与10.0中console异地IP登录不上的解决方法

    阿敏总司令
  • 使用XtraBackup备份MySQL 8.0 Part 1 xtrabackup 8.0 安装

    大体上差不多,不过8.0版本移除了innobackupex命令且只能备份8.0版本的MySQL

    bsbforever
  • 三大半导体芯片公司加速切入自驾车市场,机器视觉为何受高度重视?

    2017 年 CES 与 MWC 展上,自动驾驶车抢尽各个消费性电子商品锋头,就能嗅出自驾车已成为科技产业的主战场。早已对车用市场虎视眈眈的半导体业者,其脚步更...

    GPUS Lady
  • 聊聊Kubernetes

    轻量级:消耗资源小 开源,来自Google 内部15年工程经验 弹性伸缩 负载均衡:IPVS

    sparkle123
  • FreeBuf字幕组 | Hacker101白帽进阶:移动应用安全速成讲解(一)

    *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

    FB客服

扫码关注云+社区

领取腾讯云代金券