• 【PointNet—论文笔记分享】


    第一个直接基于原始点云数据进行分割、分类的模型,之前都是基于多视图或者体素的方式。

    基本模型架构:
    在这里插入图片描述
    分别对每个点进行特征提取(卷积或者全连接),再MAX得到全局特征进行输出

    基于以下Properties of Point Sets in Rn(Rn中点集特性)

    • 无序(Unordered):换句话说,一个处理N个3D点集的网络需要对N!个输入集数据馈送顺序的排列(permutations)保持不变

    • 点之间的相互作用(Interaction among points)。 这些点来自具有距离度量(distance metric)的空间。这意味着点不是孤立的,并且相邻点形成一个有意义的子集。因此,模型需要能够从附近的点捕捉局部结构,以及局部结构之间的组合相互作用。

    • 变换下的不变性(Invariance under transformations)。作为一个几何对象,点集的学习表示应该对某些变换是不变的。例如,旋转和平移点都不应该修改全局点云类别,也不应该修改点的分割。

    PointNet Architecture

    其中分类网络和分割网络共享大部分结构
    image-20231015101939501

    网络具有三个关键模块:

    • 最大池化层作为一个对称函数来聚合来自所有点的信息

    • 一个局部和全局信息组合结构

    • 两个对齐输入点和点特征的联合对齐网络(joint alignment networks)

    T-Net
    在这里插入图片描述
    PointNet采用了两次STN(Spatial Transformer Network)

    • 第一次input transform是对空间中点云进行调整,直观上理解是旋转出一个更有利于分类或分割的角度,比如把物体转到正面
    • 第二次feature transform是对提取出的64维特征进行对齐,即在特征层面对点云进行变换

    应用:

    • 对象分类(obejct classification)
    • 部分分割(part segmentation)
    • 场景语义解析(scene semantic parsing)

    总结(个人理解)

    • 本文最大的贡献使用max pool对称函数解决了点云的无序性问题,也就是针对以上提到的点集特性第一点,创建了第一个直接基于原始点云的分类、分割模型。
    • 本文中的两次T-Net 从理解上是用于调整点云和特征姿态,针对点集特性第三点,但是效果好像不太明显。
    • 本文的点云语义分割只是聚合了单个点的特征和整个点云的全局特征,其实并没有利用到局部特征,也就是点集特性第二点,不过紧接着作者又提出了PointNet++来针对此点进行改进。
  • 相关阅读:
    内容安全检测接口
    Django视图与路由:打造你的网络帝国
    【C++游戏引擎Easy2D】基于Node节点展开的Text文本拓展详解
    Java——String类全面解析
    Mac环境下,简单反编译APK
    Java中使用CountDownLatch实现并发流程控制
    复杂AB实验
    Netty优化-扩展自定义协议中的序列化算法
    jsp儿童网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
    C/C++算术表达式求值
  • 原文地址:https://blog.csdn.net/m0_48069265/article/details/134019857