这里我们直接给出PointNet的网络结构,如下图所示。大致的运算流程如下(借鉴美团无人配送:PointNet系列论文解读): 1、输入为一帧的全部点云数据的集合,表示为一个nx3的2d tensor,其中n代表点云数量,3对应xyz坐标。 2、输入数据先通过和一个T-Net学习到的转换矩阵相乘来对齐,保证了模型的对特定空间转换的不变性。
Pointnet提取的全局特征能够很好地完成分类任务,由于模型基本上都是单点采样,代码底层用的是2Dconv,只有maxpooling整合了整体特征,所以局部特征提取能力较差,这使得它很难对复杂场景进行分析。 PointNet++的核心是提出了多层次特征提取结构,有效提取局部特征和全局特征。 2.1 思路流程 先在输入点集中选择一些点作为中心点,...
num_point = point_cloud.get_shape()[1].value input_image = tf.expand_dims(point_cloud, -1)#转为4D张量#构建T-Net模型,64--128--1024net = tf_util.conv2d(input_image,64, [1,3], padding='VALID', stride=[1,1], bn=True, is_training=is_training, scope='tconv1', bn_decay=bn_...
作者对他们模型进行了进一步的理论分析,并提出了两个定理: 定理1证明了PointNet的网络结构能够拟合任意的连续集合函数。其作用类似证明神经网络能够拟合任意连续函数一样【1】。同时,作者发现PointNet模型的表征能力和maxpooling操作输出的数据维度(K)相关,K值越大,模型的表征能力越强。 定理2(a)说明对于任何输入数据集S...
基本模型架构 分别对每个点进行特征提取(卷积或者全连接),再MAX得到全局进行输出 [1*3]*[3*1024] 升维 [1*1024] 变为高维特征 1024个特征 权重参数矩阵 将1024个特征映射成少量结果 (1,2,3) MLP g=max 保持置换不变性 (1,1,1) MLP (2,3,2) ...
1、输入数据首先与T-net学习到的转换矩阵相乘,来对齐(得到想要的输出格式),保证了模型的对特定空间转换的不变性(指的是点云数据所代表的目标对某些空间转换应该具有不变性,如旋转和平移等刚体变换)。 如何实现对齐: 通过训练一个小型的网络(也就是上图中的T-Net)来得到转换矩阵,并将之和输入点云数据相乘来实现...
Pointnet提取的全局特征能够很好地完成分类任务,由于模型基本上都是单点采样,代码底层用的是2Dconv,只有maxpooling整合了整体特征,所以局部特征提取能力较差,这使得它很难对复杂场景进行分析。 PointNet++的核心是提出了多层次特征提取结构,有效提取局部特征提取,和全局特征。
1.2 PointNet体系结构概述 PointNet体系结构由两个主要组件组成:分类网络和扩展分割网络。 分类网络接收n个输入点,应用输入和特征变换,并通过最大池化聚合点特征。它生成k个类别的分类分数。分割网络是分类网络的自然扩展,将全局和局部特征组合起来生成每个点的分数。术语“mlp”表示多层感知器,其层大小在方括号中指定。
下图为PointNet网络结构,其中里面的input_transform我们无需太过在意,可以看到,其输入的是所有点云,随后进行维度变换,最终输出分类或分割结果。 PointNet++网络介绍 根据其论文中给出的介绍,Point++是用于点云分割与分类的深度学习模型,由下图可知,该模型主要分为三部分,分别是点空间特征提取、分割模型以及分类模块。其...
在PointNet++ 层级多尺度的情况下,模型可以接受这种点云局部稀疏度变化的问题,毕竟在整合中可以用大点的尺度提取稀疏处的点集。可以先看下模型的整体结构: 创新点主要就在左半部分的层级化特征提取网络,以及在分割任务中将这些不同层次的特征信息融合的方法。分类网络后端以及层级之间都使用了 PointNet 对称函数的理念:...