PointNet++

论文:https://arxiv.org/pdf/1706.02413

github:GitHub - sshaoshuai/Pointnet2.PyTorch: A faster implementation of PointNet++ based on PyTorch.

PointNet++设计思路

PointNet的问题:

  1. pointnet 一开始对每个点做MLP低维到高维的映射,把所有点映射到高维的特征通过Max pooling结合到一起,本质上来说,要么对一个点做操作,要么对所有点做操作,实际上没有局部的概念(loal context) ,比较难对精细的特征做学习,在分割上有局限性。
    ### PointNet++ 深度学习点云处理 #### 三维数据分类与分割原理 PointNet++ 是一种改进自 PointNet 的架构,旨在解决点云数据中的局部几何结构信息利用不足的问题。该方法引入了多尺度分组机制,在不同层次上捕捉点之间的空间关系[^2]。 对于点云数据而言,其特点在于无序性和稀疏分布。为了有效提取这些特性下的特征,PointNet++ 设计了一种分级特征学习策略。具体来说,就是通过对输入点集执行递归分区操作形成树状结构,并在此基础上构建局部区域内的特征向量作为高层描述子的一部分[^1]。 #### 数据预处理流程 在准备喂入 PointNet++ 网络的数据时,需先将其转化为标准化形式——即 N × 3 维矩阵(N 表示点数),接着实施归一化步骤以优化后续训练效果。此过程中会计算整个集合的质心位置并将各点坐标平移至此处;之后依据整体散布程度调整比例尺,通常做法是以标准偏差为准绳进行缩放变换[^3]。 ```matlab % MATLAB 示例代码片段展示如何规范化点云数据 function normalizedCloud = normalizePointCloud(cloud) centroid = mean(cloud, 1); cloudCentered = bsxfun(@minus, cloud, centroid); % 减去重心 stdDeviation = sqrt(sum(cloudCentered.^2)/size(cloud, 1)); normalizedCloud = cloudCentered ./ stdDeviation; % 归一化处理 end ``` #### 特征传播技术详解 当涉及到语义级别上的任务如对象识别或场景解析时,则不仅限于获取高层次抽象表征,还需关注细粒度层面的信息保留情况。为此,PointNet++ 提出了基于逆距离加权插值的方法来重建完整的逐点属性标签预测结果。与此同时,借助跳跃连接方式可以进一步加强上下文关联性表达力,从而提高最终输出质量[^4]。 ```python import torch from pointnet2_ops import three_nn, three_interpolate def feature_propagation(points_xyz, points_features, new_points_xyz): """ 实现特征传播功能 参数: points_xyz (Tensor): 输入点的位置 [B,N,C] points_features (Tensor): 对应上述点的特征 [B,D,N] new_points_xyz (Tensor): 新采样后的点位 [B,M,C] 返回: interpolated_features (Tensor): 插值得到的新点特征[B,D',M] """ dists, idx = three_nn(new_points_xyz, points_xyz) # 找最近邻 weights = 1.0 / (dists + 1e-8) # 计算权重 norm = torch.sum(weights, dim=2, keepdim=True) weights = weights / norm # 正则化权重 interpolated_features = three_interpolate( points_features, idx, weights # 反距离加权插值 ) return interpolated_features ```
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    JoannaJuanCV

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值