当前位置:   article > 正文

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

球查询 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 采样点的索引

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/594207
推荐阅读
相关标签
  

闽ICP备14008679号