PointNet++论文复现(二)【最远点采样-球查询-采样和分组 代码详解】

最远点采样-球查询-采样和分组-代码详解

专栏持续更新中!关注博主查看后续部分!

最远点采样、球查询等位于 pointnet2_utils.py 定义

点云坐标归一化

点云坐标归一化是一种预处理步骤,用于将点云数据标准化到一个统一的尺度,通常是在一个特定的范围内,比如 [-1, 1] 或 [0, 1]。这一步骤对于很多三维数据处理和分析任务来说是很重要的,比如三维重建、物体识别、点云分类等。归一化可以帮助改善算法的性能,因为它消除了数据在尺度上的差异,让算法能够更专注于数据的结构和形状特征。

# 归一化点云,以centroid为中心,球半径为1进行归一化 (将点云数据中心化并缩放至单位球内)

# pc 表示输入点云

欧几里得距离计算

# square_distance 用于在 ball query 过程中确定每一个点距离形心的距离

# 函数的输入时两组点, N 为 src 的个数, M 为 dst 的个数, C 为输入点的通道数(特征数)

# 函数的返回是两组点的欧几里得距离,即 N×M

# src: source points, [B, N, C]

# dst: target points, [B, M, C]

对应索引的坐标查询

输入点云集和索引,查询对应的坐标。

# 按照输入点云数据和索引返回索引的点云数据

# 例如 points 为 2×10×3 小批量点云集, idx 为 [[1, 2, 10], [5, 3, 2]] (2×3×3)

# 则返回 Batch1 中第 1, 2, 10 和 Batch2 中第 5, 3, 2 组成的 2×3×3 的点云集

最远点采样

最远点采样(Farthest Point Sampling, FPS)是一种在点云数据中进行子采样的方法,常用于三维计算机视觉和图形处理中。这种方法的目标是从原始点云中选择一组代表性的点,这组点能够尽可能覆盖原始点云的整个形状。最远点采样特别适用于那些需要减少计算量和内存消耗,同时尽量保留几何信息的场景。

# FPS 最远点采样

# 输入: xyz 表示点云数据集合 (B×N×3), npoint 表示采样点的个数(对每个batch来说)

# 输出: centroids (B×npoint) 即每个 batch 采样点的索引

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 10:40:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 10:40:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 10:40:04       82 阅读
  4. Python语言-面向对象

    2024-03-24 10:40:04       91 阅读

热门阅读

  1. 蓝桥杯刷题--python-30

    2024-03-24 10:40:04       44 阅读
  2. C#与三菱PLC网络模块通讯

    2024-03-24 10:40:04       43 阅读
  3. go实现tcp客户端

    2024-03-24 10:40:04       44 阅读
  4. [ESP32] 编码旋钮驱动

    2024-03-24 10:40:04       42 阅读
  5. 深度学习 (自动求导)

    2024-03-24 10:40:04       40 阅读
  6. 大模型产品整理

    2024-03-24 10:40:04       41 阅读
  7. 机器学习概念、步骤、分类和实践

    2024-03-24 10:40:04       37 阅读
  8. 【NC229005】同余方程

    2024-03-24 10:40:04       39 阅读