点云学习---入门

1.点云数据格式

常见的点云格式包括:

*.las:用于激光雷达点云及其他任何三维xyz元组,是一种用于交换三维点数据的公共文件格式。文件主要由4部分组成,包括公共头块(包含版本号、缩放因子、偏移值、时间、范围等),变长记录(包含变长类型数据、坐标投影信息和用户信息等),点数据记录(包括三维坐标、回波、强度、扫描角度、分类、飞行航带、飞行姿态、GPS时间、点颜色等信息),扩展的边长记录。LAS文件按每条扫描线排列方式存放数据,包括激光点的三维坐标、多次回波信息、强度信息、扫描角度、分类信息、飞行航带信息、飞行姿态信息、项目信息、GPS信息、数据点颜色信息等。

点云学习---入门_第1张图片

(引用自点云数据格式与存储格式 - 知乎) 

*.laz:对las文件的无损压缩

*.pcd:pcl指定格式,支持n维点类型的扩展机制,具有ASCII和binary两种数据存储类型。主要包含文件头(版本、每个纬度的字段名、每个纬度大小、数据类型,元素数、点数量宽度、高度、点云的获取试点、数据存储类型)

点云学习---入门_第2张图片

 (引用自PCL:点云数据(*.pcd)文件格式详解)

*.txt;*.xyz;*.pts等:文本格式可直接用文本工具打开查看

2.点云数据集

        学习点云,不想其他数据一样,点云数据获取需要借助一些仪器,而我们作为初学者几乎无法接触到这些,只能从公开的数据集中获取,下面搜集整理一些可供学习使用的数据集地址:

  • The Stanford 3D Scanning Repository

        Stanford 3D扫描库,是初学者用的比较多的数据集,模型居多:

        http://graphics.stanford.edu/data/3Dscanrep/

  • ASL Datasets Repository

        ASL机载激光雷达数据集,该站点致力于为机器人社区提供数据集,旨在促进结果评估和比较,数据类型比较多,目标检测和点云配准的都有:
       http:// https://projects.asl.ethz.ch/datasets/doku.php?id=home

  • RGB-D Object Dataset

        RGB-D 对象数据集是一个包含 300 个常见家庭对象的大型数据集。这些对象被组织成 51 个类别,使用 WordNet 上位词-下位词关系(类似于 ImageNet)排列。该数据集是使用 Kinect 风格的 3D 相机记录的,该相机以 30 Hz 的频率记录同步和对齐的 640x480 RGB 和深度图像。每个物体都放置在转盘上,并在整个旋转过程中捕获视频序列。对于每个物体,有 3 个视频序列,每个视频序列都使用安装在不同高度的摄像机进行记录,以便从与地平线不同的角度观察物体。
        http://rgbd-dataset.cs.washington.edu/index.html

  • Oakland 3-D Point Cloud Dataset - CVPR 2009 subset

        据库的采集地点是在美国卡耐基梅隆大学周围,用激光扫描仪扫描得到,包含训练集,验证集和测试集数据;
        http://www.cs.cmu.edu/~vmr/datasets/oakland_3d/cvpr09/doc/

  • NPM3D Benchmark Suite

        城市车载点云数据:
        https://npm3d.fr/paris-lille-3d

  • 树木点云:

        https://www.3dforest.eu/

  • 3D Point Clouds

        WHU-TLS 基准数据集涵盖了地铁站、高铁站、山地、森林、公园、校园、住宅、河岸、文化遗产建筑、地下矿道、隧道等 11 种不同的环境,共包含 115 个测站、17.4 亿个三维点以及点云之间的真实转换矩阵。
        http://3s.whu.edu.cn/ybs/en/benchmark.htm

引用自(文中还包含其他的数据集这里没有一一统计):

点云数据下载汇总 - 知乎

三维点云数据集——持续更新 - 知乎

3.点云数据处理三方库及软件

可以处理点云数据的三方库有:

libLAS:

libLAS是一个C/C ++库(有python库 liblas),用于读写LAS格式的点云。ASPRS LAS格式是一种顺序二进制文件格式,用于存储来自LiDAR传感器以及LiDAR处理软件的数据以进行数据交换和存档。libLAS支持ASPRS LAS格式规范版本:1.0、1.1、1.2和1.3(基本支持)。

虽然libLAS已经被PDAL取代,但是不可否认,它是一个很nice的库。

libLAS库可以通过OSGeo4W下载,也可以自己编译。
引用自:libLAS:读写点云_累了就要打游戏的博客-CSDN博客_liblas

PDAL:

PDAL是点云数据处理的库。这是一个C/C++开源库,用于点云数据的转换和处理。尽管该库中许多工具的重点和发展都起源于激光雷达点云数据的处理,但它也不限于激光雷达数据。

引用自:PDAL点云处理库介绍_yamgyutou的博客-CSDN博客_点云处理库

PCL:

PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。

引用自:PCL(点云库)_百度百科

开源软件有:CloudCompare

CloudCompare是一个三维点云(网格)编辑和处理软件。最初,它被设计用来对稠密的三维点云进行直接比较。它依赖于一种特定的八叉树结构,在进行点云对比这类任务时具有出色的性能。此外,由于大多数点云都是由地面激光扫描仪采集的,CloudCompare的目的是在一台标准笔记本电脑上处理大规模的点云——通常超过1000万个点云。在2005年后,cloudcompare就实现了点云和三角形网格之间的比较。随后,许多其他点云处理算法(配准、重采样、颜色/法线向量/尺度、统计计算、传感器管理、交互式或自动分割等)以及显示增强工具(自定义颜色渐变、颜色和法向量处理,校准图像处理、OpenGL着色器、插件等)
引用自:CloudCompare的介绍_Being_young的博客-CSDN博客

        以上是对点云数据、数据处理的三方库以及开源软件作了简单的整理,后续将以pcl为主要工具来学习和处理点云数据。

你可能感兴趣的:(c++,pcl,点云,c++,学习)