3D点云基础知识(一) |
您所在的位置:网站首页 › 3d画框 › 3D点云基础知识(一) |
本文基于如下知乎文章,调整部分内容整理输出,一为梳理基础知识,二为致敬原作。 作者:Mr.苍雪 链接:https://zhuanlan.zhihu.com/p/344635951 来源:知乎3D点云基础知识 - 知乎 3D图像描述RGB-D点云何为点云?点云的获取点云的内容点云的属性点云目前的主要存储格式包括:pts、LAS、PCD、.xyz 和. pcap 等相应基础算法库对不同格式的支持三维点云有多种表示方法相比于图像数据,点云不直接包含空间结构,因此点云的深度模型必须解决三个主要问题DataSetsMetric基于点云的分类基于点云的分割基于点云的目标检测点云数据的增强和完整化三维图像是在二维彩色图像的基础上又多了一个维度,即深度(Depth,D),可用一个很直观的公式表示为: 三维图像 = 普通的 RGB 三通道彩色图像 + Depth Map。 1、3D图像描述: 第一种分法: 多边形网格基于体素的描述点云隐式表面基于视图的描述第二种分法: 深度图像(depth images)点云网格(meshes)体积网格(volumetric grids) 2、RGB-DRGB-D 是广泛使用的 3D 格式,其图像每个像素都有四个属性:即红(R)、绿(G)、蓝(B)和深度(D)。 在一般的基于像素的图像中,我们可以通过(x,y)坐标定位任何像素,分别获得三种颜色属性(R,G,B)。而在 RGB-D 图像中,每个(x,y)坐标将对应于四个属性(深度 D,R,G,B)。 3、点云我们在做 3D 视觉的时候,处理的主要是点云,点云就是一些点的集合。相对于图像,点云有其不可替代的优势——深度,也就是说三维点云直接提供了三维空间的数据,而图像则需要通过透视几何来反推三维数据。 4、何为点云? 其实点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标 X,Y,Z、颜色、分类值、强度值、时间等等。点云在组成特点上分为两种,一种是有序点云,一种是无序点云。 有序点云:一般由深度图还原的点云,有序点云按照图方阵一行一行的,从左上角到右下角排列,当然其中有一些无效点。有序点云按顺序排列,可以很容易的找到它的相邻点信息。有序点云在某些处理的时候还是很便利的,但是很多情况下是无法获取有序点云的。无序点云:无序点云就是其中的点的集合,点排列之间没有任何顺序,点的顺序交换后没有任何影响。是比较普遍的点云形式,有序点云也可看做无序点云来处理。 5、点云表示的优点: 点云表示保留了三维空间中原始的几何信息,不进行离散化 6、点云当前面临的挑战: 数据集规模小高维性3维点云的非建构化特性 7、点云的获取: 点云不是通过普通的相机拍摄得到的,一般是通过三维成像传感器获得,比如双目相机、三维扫描仪、RGB-D 相机等。目前主流的 RGB-D 相机有微软的 Kinect 系列、Intel 的 realsense 系列、structure sensor(需结合 iPad 使用)等。点云可通过扫描的 RGB-D 图像,以及扫描相机的内在参数创建点云,方法是通过相机校准,使用相机内在参数计算真实世界的点(x,y,z)。因此,RGB-D 图像是网格对齐的图像,而点云则是更稀疏的结构。此外,获得点云的较好方法还包括 LiDAR 激光探测与测量,主要通过星载、机载和地面三种方式获取。 8、点云的内容: 根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向以及仪器的发射能量、激光波长有关。根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。 9、点云的属性: 空间分辨率、点位精度、表面法向量等。点云可以表达物体的空间轮廓和具体位置,我们能看到街道、房屋的形状,物体距离摄像机的距离也是可知的;其次,点云本身和视角无关,可以任意旋转,从不同角度和方向观察一个点云,而且不同的点云只要在同一个坐标系下就可以直接融合。 10、点云目前的主要存储格式包括:pts、LAS、PCD、.xyz 和. pcap 等.pts 点云文件格式是最简便的点云格式,直接按 XYZ 顺序存储点云数据, 可以是整型或者浮点型。 LAS 是激光雷达数据(LiDAR),存储格式比 pts 复杂,旨在提供一种开放的格式标准,允许不同的硬件和软件提供商输出可互操作的统一格式。LAS 格式点云截图,其中 C:class(所属类),F:flight(航线号),T:time(GPS 时间),I:intensity(回波强度),R:return(第几次回波),N:number of return(回波次数),A:scan angle(扫描角),RGB:red green blue(RGB 颜色值)。 PCD 存储格式,现有的文件结构因本身组成的原因不支持由 PCL 库(后文会进行介绍)引进 n 维点类型机制处理过程中的某些扩展,而 PCD 文件格式能够很好地补足这一点。PCD 格式具有文件头,用于描绘点云的整体信息:定义数字的可读头、尺寸、点云的维数和数据类型;一种数据段,可以是 ASCII 码或二进制码。数据本体部分由点的笛卡尔坐标构成,文本模式下以空格做分隔符。 PCD 存储格式是 PCL 库官方指定格式,典型的为点云量身定制的格式。优点是支持 n 维点类型扩展机制,能够更好地发挥 PCL 库的点云处理性能。文件格式有文本和二进制两种格式。.xyz 一种文本格式,前面 3 个数字表示点坐标,后面 3 个数字是点的法向量,数字间以空格分隔。 .pcap 是一种通用的数据流格式,现在流行的 Velodyne 公司出品的激光雷达默认采集数据文件格式(厂商格式)。它是一种二进制文件 obj是一种文本文件,通常用以“#”开头的注释行作为文件头,数据部分每一行的开头关键字代表该行数据所表示的几何和模型元素,以空格做数据分隔符 11、相应基础算法库对不同格式的支持 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 数据上都有支持。本作新增: Halcon 经实例测试,将xyz坐标提取,直接通过gen_object_model_3d_from_points (X, Y, Z, ObjectModel3D) 输出为halcon的3D默认格式om3。read_object_model_3d — Read a 3D object model from a file。 The operator supports the following file formats:: om3:HALCON format for 3D object model. Files with this format can be written by write_object_model_3d. The default file extension for this format is 'om3'。dxf:AUTOCAD format.off:Object File Format. This is a simple ASCII-based format that can hold 3D points and polygons. The binary OFF format is not supported. The default file extension for this format is 'off'.ply:Polygon File Format (also Stanford Triangle Format).obj:OBJ file format,also 'Wavefront OBJ-Format'。 12、三维点云有多种表示方法 (如图所示),不同的表示对应着不同的处理方法。比较容易的处理方式为将其投影为二维图像或者转换为三维体素 (Voxel),从而将无序的空间点转变为规则的数据排列;也可以使用原始点作为表示,不做任何变换,该方式的好处为最大可能保留所有原始信息。此外,点云作为空间无序点集,可以被看作普适意义上的图数据。点云还有另外一种表示,称作网格 (Mesh),其也可以被看作是构建了局部连接关系的点,即为图。将点云看作图数据,可以使用图领域新兴的图卷积 (Graph Convolution) 技术进行处理。需要提及的是,原始点的表示和图表示之间并无明确界限(事实上原始点云和网格 (Mesh) 之间有一定区别,但若从语义理解方法的角度看,可暂时忽略此区别,将Mesh看作是增加了一种连接关系)![]() ![]() ![]() ![]() |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |