3D点云基础知识(一)-初始入门-知乎整理(一)

本文介绍了3D点云的基础知识和技术,涵盖点云的概念、获取方式、存储格式及常用算法库等内容。深入探讨了点云在3D图像处理中的应用,包括分类、分割和目标检测等关键任务。

本文基于如下知乎文章,调整部分内容整理输出,一为梳理基础知识,二为致敬原作。

作者:Mr.苍雪
链接:https://zhuanlan.zhihu.com/p/344635951
来源:知乎
3D点云基础知识 - 知乎

  1. 3D图像描述
  2. RGB-D
  3. 点云
  4. 何为点云?
  5. 点云的获取
  6. 点云的内容
  7. 点云的属性
  8. 点云目前的主要存储格式包括:pts、LAS、PCD、.xyz 和. pcap 等
  9. 相应基础算法库对不同格式的支持
  10. 三维点云有多种表示方法
  11. 相比于图像数据,点云不直接包含空间结构,因此点云的深度模型必须解决三个主要问题
  12. DataSets
  13. Metric
  14. 基于点云的分类
  15. 基于点云的分割
  16. 基于点云的目标检测
  17. 点云数据的增强和完整化

三维图像是在二维彩色图像的基础上又多了一个维度,即深度(Depth,D),可用一个很直观的公式表示为:

三维图像 = 普通的 RGB 三通道彩色图像 + Depth Map。

1、3D图像描述:

  • 第一种分法:
    • 多边形网格
    • 基于体素的描述
    • 点云
    • 隐式表面
    • 基于视图的描述
  • 第二种分法:
    • 深度图像(depth images)
    • 点云
    • 网格(meshes)
    • 体积网格(volumetric grids)

2、RGB-D

RGB-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、点云的属性:

  • 空间分辨率点位精度表面法向量等。
  • 点云可以表达物体的空间轮廓和具体位置,我们能看到街道、房屋的形状,物体距离摄像机的距离也是可知的;
  • 其次,点云本身和视角无关,可以任意旋转,从不同角度和方向
### 3D点云处理技术实现方法与工具 #### Open3D用于点云裁剪的技术实现 利用Open3D库可以方便地执行点云裁剪操作,这是指从原始的大规模点云数据集中选取特定子集的过程。此过程对于减少不必要的背景信息至关重要,有助于聚焦于感兴趣的对象或场景部分[^2]。 ```python import open3d as o3d # 加载点云文件 pcd = o3d.io.read_point_cloud("input.ply") # 定义边界框参数并创建边界盒对象 bbox = pcd.get_axis_aligned_bounding_box() # 应用裁剪功能获取指定范围内的点云 cropped_pcd = pcd.crop(bbox) o3d.visualization.draw_geometries([cropped_pcd]) ``` 上述代码展示了如何加载个PLY格式的点云文件,并对其进行轴向对齐的边界框裁剪,最后可视化裁剪后的结果。 #### Fast Point Transformer加速3D点云处理 Fast Point Transformer是种创新性的解决方案,在不牺牲太多准确性的情况下极大地提高了3D点云处理的速度。该模型采用了独特的轻量化自注意机制以及体素哈希结构来优化性能表现[^3]。 这种改进使得Fast Point Transformer能够在诸如S3DIS这样的复杂室内环境下的三维语义分割任务中取得优异的成绩——不仅速度快而且准确度高。 #### 使用PointNet进行点云标注 针对具体的物体识别需求,可以通过定制化的点云标注工具来进行精准的数据准备。这类工具通常依赖预训练好的神经网络(如PointNet),并通过交互式的界面让用户能够快速而精确地标记出目标实例的位置和形状特征[^4]。 ```python from pointcloud_annotation_tool import Annotator annotator = Annotator() annotator.load_model('pointnet_shapenet.pth') annotator.annotate_file('room_scan.ply', output='labeled_room_scan.ply') ``` 这段脚本说明了怎样调用专门设计用来辅助人工完成高质量点云标签工作的API接口;其中包含了加载预先训练完毕的分类器权重、读取待标记样本路径以及保存最终成果等功能模块。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值