3d点云保存格式、数据集

点云数据存储格式

点云有数百种文件格式可用,不同的扫描仪会以许多格式生成原始数据。点云数据文件之间的最大区别在于使用ASCII和二进制。二进制系统直接将数据存储在二进制代码中。常见的点云二进制格式包括FLS、PCD、LAS等。其他几种常见文件类型可以同时支持ASCII和二进制格式。其中包括PLY、FBX。E57以ASCII和二进制代码存储数据,并将许多ASCII和二进制的优点结合在一个文件类型中。以下是一些 常用的点云数据存储格式:

  • Obj:obj格式的点云文件由Wavefront Technologies开发。它是一个文本文件。它是一种简单的数据格式,仅表示3D数据的几何、法线、颜色和纹理信息。这种格式通常以ASCII形式表示,但也有专有的obj二进制版本。

  • Las:las格式主要用于存储LIDAR点云数据,本质上是一个二进制格式文件。LAS文件由三部分组成:头文件区(包括点总数、数据范围、每个点的维度信息)、可变长度记录区(包括坐标系、额外维度等)、点集记录区(包括点坐标信息、R、G、B信息、分类信息、强度信息等)。las格式考虑到LIDAR数据的特点,结构合理,易于扩展。

  • Ply:PLY的全称是Polygon File Format,受obj启发,专门用于存储3D数据。PLY使用名义上的平面多边形列表来表示对象。它可以存储包括颜色、透明度、表面法向量、纹理坐标和数据置信度在内的信息,并且可以为多边形的前后两侧设置不同的属性。该文件有两个版本,一个是ASCII版本,一个是二进制版本。

  • E57:E57是用于点云存储的供应商中立文件格式。它还可以用于存储激光扫描仪和其他3D成像系统生成的图像和元数据信息,是一个使用固定大小字段和记录的严格格式。它使用ASCII和二进制代码保存数据,并提供了ASCII的大部分可访问性和二进制的速度,可以存储3D点云数据、属性、图像。

  • PCD:PCD是Point Cloud Library的官方指定格式。它由头文件和点云数据两部分组成。它用于描述点云的整体信息。它有两种数据存储类型,ASCII和二进制,但PCD文件的头文件必须使用ASCII编码。PCD的一个好处是它很好地适应了PCL,与PCL应用程序相比,性能最高。

 3D点云公共数据集

今天,许多工业和大学提供了许多点云数据集。不同方法在这些数据集上的表现反映了方法的可靠性和准确性。这些数据集包含虚拟或真实场景,可以为网络训练提供地面真实标签。在本节中,我们将介绍一些常用的点云分类数据集,每个数据集的划分如表I所示。

  • ModelNet40:该数据集由普林斯顿大学的视觉和机器人实验室开发。ModelNet40数据集包含合成CAD对象。作为最广泛使用的点云分析基准,ModelNet40因其多样的类别、清晰的形状和良好结构的数据集而受欢迎。该数据集包含40个类别的对象(例如飞机、汽车、植物、灯具),其中9843个用于训练,2468个用于测试。相应的点是从网格表面均匀采样的,然后通过移动到原点并缩放到单位球来进一步预处理。

  • ModelNet-C:ModelNet-C集合包含185,000个不同的点云,是基于ModelNet40验证集创建的。这个数据集主要用于测试3D点云识别的损伤鲁棒性,其中包括15种损伤类型和每种损伤类型的5种严重程度,例如噪声、密度等。有助于了解模型的鲁棒性。

  • ModelNet10:ModelNet10是ModelNet40的一个子集,该数据集仅包含10个类别,分为3991个训练和908个测试形状。

  • Sydney Urban Objects:该数据集收集于悉尼中央商务区,包含各种常见的城市道路物体,包括631个类别为车辆、行人、标志和树木的扫描对象。

  • ShapeNet:ShapeNet是由斯坦福大学、普林斯顿大学和芝加哥丰田技术研究所的研究人员开发的大型3D CAD模型仓库。该仓库包含超过3亿个模型,其中22万个模型被分类为3135个类别,使用WordNet上下位关系排列。ShapeNetCore是ShapeNet的一个子集,包括近51,300个独特的3D模型。它提供了55个常见物体类别和注释。ShapeNetSem也是ShapeNet的一个子集,包含12,000个模型。规模较小,但覆盖面更广,包括270个类别。

  • ScanNet:ScanNet是一个实例级室内RGB-D数据集,包含2D和3D数据。它是一个带标记的体素集合,而不是点或对象。截至目前,最新版本的ScanNet,ScanNet v2,已经收集了1513个带有大约90%表面覆盖率的标记扫描。在语义分割任务中,该数据集用20个类别的注释3D体素化对象进行标记。

  • ScanObjectNN:ScanObjectNN是一个由2902个3D对象组成的真实世界数据集,分为15个类别,由于数据集中的背景、缺失部分和变形等因素,这是一个具有挑战性的点云分类数据集。

3D点云概述
定义与特点
3D点云是 三维空间中一组离散点的集合 ,每个点包含至少三个坐标信息(X,Y,Z),用于精确描述物体表面的几何形态。点云数据具有以下独特特点:

这些特点使3D点云成为三维重建、场景理解等领域的重要数据形式。

无序性 :点云中的点没有固定的排列顺序,这种特性增加了处理难度。

不规则分布 :点云中的点在空间中分布不均匀,可能导致某些区域密集而其他区域稀疏。

高度灵活性 :点云能够精确表示各种复杂形状,包括不规则物体。

丰富属性 :除了基本坐标外,还可包含颜色、法向量等附加信息,全面描述物体特征。

这些特点使3D点云成为三维重建、场景理解等领域的重要数据形式。 

数据获取方式
在探讨3D点云数据的获取方式之前,我们需要了解点云数据的重要性。3D点云是三维空间中物体表面几何信息的离散表示,广泛应用于三维重建、机器人导航和虚拟现实等领域。获取高质量的点云数据是后续处理和分析的基础。

3D点云数据的主要获取方式包括:

激光扫描 : 利用激光测距原理,通过记录物体表面大量密集点的三维坐标、反射率和纹理等信息,快速重建目标的三维模型。这种方法适用于多种应用场景,包括逆向工程、曲面抄数和工件三维测量等。

深度相机 : 通过近红外激光器将结构化光线投射到物体上,再通过红外摄像头采集深度信息。这种方式的特点是成本较低,计算量小,且不受环境光照条件限制,在室内机器人和AR/VR应用中表现突出。

双目相机 : 使用两个相机从不同位置获取物体的两幅图像,通过计算对应点的位置偏差,利用三角原理计算点的三维坐标。这种方法成本较低,适用于室内外多种环境,但在强光或弱纹理场景下可能存在匹配困难的问题。

这些数据获取方式各有优缺点,选择合适的方法需根据具体应用场景的需求和条件综合考虑。 

3D点云数据结构 
基本组成元素
在探讨3D点云数据结构时,我们首先需要了解其基本组成元素。3D点云数据的核心组成部分包括 空间坐标 、 颜色信息 和 法向量 等关键属性。这些元素共同构成了点云数据的完整信息框架,为后续处理和分析奠定了基础。

空间坐标
空间坐标 是点云数据中最基本也是最重要的属性。每个点都包含三个坐标值(X,Y,Z),精确描述了该点在三维空间中的位置。这些坐标信息构成了点云数据的几何骨架,是重建三维模型和进行空间分析的基础。

颜色信息
颜色信息 为点云增添了丰富的视觉特征。通常采用RGB三元组表示,每个颜色通道的值范围为0至255。颜色信息不仅增强了点云的可视化效果,还在物体识别、场景分类等应用中扮演着关键角色。例如,在城市建模中,颜色信息可以帮助区分建筑物、植被和道路等不同地物。

法向量
法向量 描述了点云中每个点的局部表面方向。它是一个单位向量,垂直于该点所在的局部平面。法向量的计算通常涉及邻域内的点,反映了点云的局部几何特征。在表面重建、点云配准和特征提取等算法中,法向量信息起着至关重要的作用。

值得注意的是,点云数据的这些基本组成元素并非孤立存在,而是相互关联的。例如,颜色信息和法向量常常被用来辅助空间坐标的理解和解释。这种多重属性的结合使得点云数据能够在三维空间中精确描述复杂的几何形态和物理特性,为后续的处理和分析提供了丰富的信息基础。

数据格式与存储
在3D点云数据结构的基础上,我们需要关注其存储方式。点云数据通常采用特定的文件格式进行存储,主要包括 PCD 和 PLY 格式:

这些格式的选择直接影响数据的读取效率和存储空间需求。例如,二进制存储通常比ASCII更紧凑,适合大规模数据处理。选择合适的存储格式对提高点云数据处理效率至关重要。

3D点云处理技术 
点云配准
点云配准是3D点云处理中的核心环节,旨在将来自不同视角的点云数据对齐到同一坐标系下。这一过程对于实现精确的三维重建至关重要。在实际应用中,点云配准面临着诸多挑战,如数据噪声、局部最优解等问题。为此,研究人员开发了一系列先进的配准算法,其中最具代表性的是迭代最近点算法(ICP)及其改进版本。

ICP算法
迭代最近点算法(ICP) 是点云配准领域中最经典的算法之一。其核心思想是通过迭代的方式逐步减小源点云和目标点云之间的距离。ICP算法的具体步骤如下:

计算对应点对

估计变换参数

应用变换

重复上述步骤直到收敛

虽然ICP算法在理想情况下能给出较好的配准结果,但它对初始位置敏感,容易陷入局部最优解。为克服这些问题,研究人员提出了多种改进方案:

基于特征的配准方法 :通过提取点云的局部特征(如FPFH)来提高配准的鲁棒性。

全局配准方法 :如NDT算法,能在一定程度上缓解局部最优问题。

深度学习方法 :如DeepClosestPoint,利用神经网络学习点云的内在特征,提高配准精度。

FINet算法
近年来,深度学习在点云配准领域取得了突破性进展。 FINet算法 就是一个典型代表。FINet创新性地引入了双分支结构,分别处理旋转和平移,有效解决了传统ICP算法中旋转和平移耦合的问题。同时,FINet在特征提取阶段引入了交互模块,实现了源点云和目标点云之间的信息交换,进一步提高了配准的精度和鲁棒性。

在实际应用中,点云配准技术广泛应用于三维重建、机器人定位与导航等领域。例如,在自动驾驶中,通过精确的点云配准,可以实现车辆的实时定位和周围环境的三维重建,为路径规划和决策提供关键依据。随着硬件设备的进步和算法的不断完善,点云配准技术将在更多的领域发挥重要作用,推动3D技术的发展和应用。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.youkuaiyun.com/Java_rich/article/details/143620886

3D点云目标检测数据集标注工具 保姆级教程——CVAT

3D点云目标检测数据集标注工具 保姆级教程——CVAT (附json转kitti代码)_3d点云标注工具-优快云博客

点云下载 

常见的点云下载地址/点云集合/点云库30个_点云数据下载-优快云博客

3DMatch:从 RGB-D 重建中学习局部几何描述符

点云库

pcl 1.6 all-in-one(64位) 安装步骤及所需软件(含cmake) - 点云库PCL基础 - 点云技术相关产学研社区 - Powered by Discuz!

 modenet40点云数据集

下载地址:

modelnet40_normal_resampled_数据集-飞桨AI Studio星河社区

### 如何下载 KITTI 3D 点云数据集 #### 下载官方链接 可以访问官方提供的 AWS S3 存储桶地址进行下载。以下是具体资源的下载链接: - **图片数据**: 可以通过此链接获取图像数据[^3]: ``` https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2.zip ``` - **点云数据**: Velodyne LiDAR 扫描生成的点云数据可以通过以下链接下载: ``` https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_velodyne.zip ``` - **标签数据**: 这些文件包含了标注的目标类别以及对应的三维边界框信息,可通过以下链接下载: ``` https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_label_2.zip ``` - **校准文件**: 校准参数对于将点云投影到相机坐标系至关重要,可从此处下载: ``` https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_calib.zip ``` 如果上述链接无法直接点击打开,则建议复制链接并使用迅雷或其他支持断点续传的工具进行高速下载。 #### 数据说明 KITTI 数据集专注于自动驾驶场景下的计算机视觉任务研究,特别是目标检测和3D方向估计的任务。该数据集中包含多种传感器的数据融合,例如摄像头采集的二维图像、LiDAR扫描得到的三维点云等。其核心特点在于提供了精确的3D边界框标注,覆盖了车辆、行人等多种常见交通参与者对象[^4]。 每帧数据通常由以下几个部分组成: - `calib`: 提供摄像机与激光雷达之间的外参矩阵及内参矩阵。 - `velodyne`: 原始点云数据存储为 `.bin` 文件形式,每一行为四个浮点数表示 (x, y, z, reflectance),分别对应空间位置坐标与反射强度值[^1]。 - `label_2`: 文本格式保存的真实标注信息,记录有物体分类名称、截面积尺寸大小、方位角角度等内容[^2]。 #### 示例代码读取点云数据 下面展示一段 Python 脚本用来加载单个样本中的点云数据: ```python import numpy as np def load_point_cloud(file_path): """ 加载 velodyne .bin 文件 """ point_cloud = np.fromfile(file_path, dtype=np.float32).reshape(-1, 4) return point_cloud[:, :3] # 返回 xyz 坐标 point_cloud_data = load_point_cloud('path_to_your_file.bin') print(point_cloud_data.shape) # 输出形状应类似于 (n_points, 3) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值