三维数据处理格式
引用 https://zhuanlan.zhihu.com/p/344635951
引用https://blog.csdn.net/qq_28087491/article/details/107965151
pcd数据可视化
三维他图像是在二维彩色图像上加了一个深度维度=RGB+D
主要存储格式:pts、LAS、PCD、.xyz 和. pcap
现有的文件结构因本身组成的原因不支持由 PCL 库引进 n 维点类型机制处理过程中的某些扩展,而 PCD 文件格式能够很好地补足这一点。PCD 格式具有文件头,用于描绘点云的整体信息:定义数字的可读头、尺寸、点云的维数和数据类型;一种数据段,可以是 ASCII 码或二进制码。数据本体部分由点的笛卡尔坐标构成,文本模式下以空格做分隔符。PCD 存储格式是 PCL 库官方指定格式,典型的为点云量身定制的格式。优点是支持 n 维点类型扩展机制。
pcd和pcap和点云的关系
PCD(Point Cloud Data)和PCAP(Packet Capture)是两种不同的数据格式,它们在点云数据和网络数据包捕获领域中有着广泛的应用。
PCD是一种用于存储点云数据的文件格式,它被广泛用于三维扫描、无人机测绘、自动驾驶汽车等领域。
PCD文件可以包含点的位置坐标(x, y, z)以及颜色、法线、强度等附加信息。PCD文件格式支持ASCII和二进制两种编码方式,其中ASCII格式便于阅读和编辑,而二进制格式文件尺寸更小,读写速度更快。PCD文件通常使用特定的软件进行处理,如PCL(Point Cloud Library)。
PCAP(Packet Capture):
PCAP是一种用于存储网络数据包的文件格式,它被广泛用于网络分析、调试和监控。
PCAP文件包含了网络上捕获的数据包的原始信息,可以用于离线分析网络流量。PCAP文件格式通常由网络抓包工具如Wireshark生成,并且可以用这些工具进行查看和分析。
点云数据与这两种格式的关系如下:
点云数据可以存储在PCD文件中,这种格式专门为点云数据设计,能够高效地存储和处理大量的三维点数据。在某些情况下,激光雷达(LiDAR)传感器生成的原始数据可能会以PCAP格式存储,因为这些数据本质上是传感器接收到的一系列信号。这些PCAP文件随后可以被转换为PCD格式,以便于点云处理软件的使用。
在实际应用中,点云数据的处理和分析通常涉及到从各种传感器(如激光扫描仪、深度相机等)获取数据,然后将这些数据转换为PCD或其他点云格式,以便进行进一步的处理和分析。而PCAP格式则更多地用于网络数据的捕获和分析,与点云数据的直接关系不大,除非是在处理由激光雷达传感器生成的原始数据时可能会用到。
第一种图像的描述
- 多边形网格
- 基本体素描述
- 点云
- 隐式表面
- 基于视图的描述
第二种描述
- 深度图像
- 点云
- 网格
- 体积网络
自动驾驶最常见的是点云数据,包括三维坐标XYZ、颜色、分类值、强度值、时间等等,在组成特点上分为两种:有序点云(深度图还原的点云),无序点云。前者是按照图方针一行一行的,从左上到右下排列,其中有一些无效点。无序点云就是点的集合,点的顺序交换后没有任何影响。点云保留了三维空间种原始的集合信息,不进行离散化
点云的获取:三维成像传感器,比如双目相机,三维扫描仪、RGB-D相机等,点云可通过扫描的 RGB-D 图像,以及扫描相机的内在参数创建点云,方法是通过相机校准,使用相机内在参数计算真实世界的点(x,y,z),RGB-D 图像是网格对齐的图像,而点云则是更稀疏的结构。此外,获得点云的较好方法还包括 LiDAR 激光探测与测量。
点云内容:根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向以及仪器的发射能量、激光波长有关;根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)
结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)
点云属性:空间分辨率、点位精度、表面法向量等,不同的点云只要在同一坐标系就可直接融合
处理点云的库:
PCL(Point Cloud Library)库支持跨平台存储,可以在 Windows、Linux、macOS、iOS、Android 上部署。可应用于计算资源有限或者内存有限的应用场景,是一个大型跨平台开源 C++ 编程库,它实现了大量点云相关的通用算法和高效数据结构,其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等操作,非常方便移动端开发
VCG 库(Visulization and Computer Graphics Libary)是专门为处理三角网格而设计的,该库很大,且提供了许多先进的处理网格的功能,以及比较少的点云处理功能。
CGAL(Computational Geometry Algorithms Library)计算几何算法库,设计目标是以 C++ 库的形式,提供方便、高效、可靠的几何算法,其实现了很多处理点云以及处理网格的算法。
Open3D 是一个可以支持 3D 数据处理软件快速开发的开源库。支持快速开发处理 3D 数据的软件。Open3D 前端在 C++ 和 Python 中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。Open3D 是从一开始就开发出来的,带有很少的、经过仔细考虑的依赖项。它可以在不同的平台上设置,并且可以从源代码进行最小的编译。代码干净,样式一致,并通过清晰的代码审查机制进行维护。在点云、网格、rgbd 数据上都有支持。
点云必须解决三个主要问题
相比于图像数据,点云不直接包含空间结构,因此点云的深度模型必须解决三个主要问题:
如何从稀疏的点云找到高信息密度的表示,
如何构建一个网络满足必要的限制如size-variance和permutation-invariance,
如何以较低的时间和计算资源消耗处理大量数据
datasets:
metirc:
Classification method: overall accuracy , mean accuracy
Segmentation models: accuracy , (m)IoU
detection tasks: (m)IoU , accuracy , precision , recall
Object tracking: MOTA , MOTP
scene for estimation: EPE
3D match and registration models: ROC curves
点云分类方法
三维形状分类模型通常是先通过聚合编码器生成全局嵌入,然后将嵌入通过几个完全连通的层来获得最终结果
基于点云聚合方法,分类模型大致可分为两类:基于投影的方法和基于点的方法,基于投影的方法将非结构化的三维点云投影到特定的预设模态中(例如体素、柱状体),并从目标格式中提取特征,从而在相应方向上受益于之前的研究成果。
Multi-view representation
MVCNN:
GVCNN
Volumetric representation
VoxNet
3D ShapeNet
OctNet
OCNN
Basis point set
BPS
3D分割
3D分割的目的是对每个点进行标记,这需要模型在每个点上收集全局上下文和详细的局部信息。。在三维图像分割中,主要有两个任务:语义分割和实例分割。
语义分割方法大致可分为基于投影的方法和基于点的方法
3D检测
大多数基于点的方法都试图在特征提取过程中使信息损失最小化,是目前性能最好的一组方法。基于分割的方法对于复杂场景和遮挡对象有更好的效果
点云数据的增强和完整化
来自室外场景的点云,遭受不同种类的质量问题,如噪音,异常值,和遗漏点。所以我们的目标是补全缺失的点,移除掉异常的点。
- 传统的方法包括局部表面拟合、邻域平均和猜测底层噪声模型
- PointCleanNet提出了一种基于数据驱动的方法去消除错误点减少噪声
- PCPNet首先对异常值进行分类并丢弃它们,然后估计一个将噪声投影到原始表面的修正投影
- Total Denoising,在不需要额外数据的情况下实现了非监督降噪对点云数据
- 临界点层(CPL)在保留重要点的同时学会减少点的数量。这一层是确定性的,不确定顺序的,并且通过避免邻接搜索也很有效。
- 通过将采样后的点近似为原始点的混合来逼近点采样的可微松弛
也可以通过生成假样本,帮助定位网络的潜在缺陷。
point perturbation and point generation:扰动是通过对已有的点进行可忽略的移动来实现的,生成是通过添加一些独立分散的点或少量具有预定义形状的点簇来实现的。
除了对抗性生成,生成模型也用于点云上采样。向上采样点云通常有两种动机。一是减少数据的稀疏性和不规则性,二是恢复遮挡造成的缺失点
广角相机
omnidirectional camera(广角相机):在一个水平面有360°视野的相机,或视野能覆盖半个球或近似整个球的相机
- 面镜用的是镜面反射
- 透镜用的是镜面折射
广角相机成像步骤与普通相机基本一致,主要的区别在于镜头聚光的部分,广角相机为了获得更大的FOV,有三种镜头聚光方式
Dioptric(折射光学的) camera:通过透镜来实现,主要是折射;仅通过折射,比如鱼眼镜头。
Catadioptric(反射折射的) camera:使用一个标准相机和一个面镜 shaped mirror — such as a parabolic, hyperbolic, or elliptical mirror,其在水平面可以提供360度视野,仰角方向大于100度;
Poly-dioptric camera:通过组合多个相机来重叠相机视野。