首页
学习
活动
专区
圈层
工具
发布
综合排序最热优先最新优先
时间不限
PointNet代码解读
今天写点代码方面的内容,昨天已经简单讲解过paper了,只看文章的话,理解的效果一般,所以今天结合代码再来充分认识PointNet。代码分为分类、分割两部分,本文以分类为例。 网络结构 这部分代码位于pointnet_cls.py中。 PointNet中使用了maxpooling和T-net,作者文章中起到关键作用的是maxpooling,而T-net对性能的提升作用也还是有的。 接下来就重点分析PointNet中的T-net代码,这部分代码位于transform_nets.py脚本中。 下一篇会讲讲PointNet++,由于是改进版,所以可能会结合代码一起介绍。
点云乐课堂
2020-05-18
1.5K0
标签:
点云深度学习系列一: PointNetPointNet++
PointNetPointNet: Deep Learning on Point Sets for 3D Classification and Segmentation) (作为第一个直接处理点云的深度学习框架 PointNet++ (PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space) 文章要解决的两个问题 使用PointNet作为局部特征学习器作为一个基础的结构部件,PointNet要在局部点集中抽取特征,或者把特征组合成更高层表示,所以PointNet++递归地使用PointNet在一个嵌套划分的输入点云集合上 (PointNet layer) 但是存在采样不均匀密度的问题。 PointNet网络进行特征提取(MSG、MRG),不断迭代。
点云PCL博主
2019-07-30
5.5K0
标签:
PointNet++论文复现
++模型 Set Abstraction Layer(集合抽象层) 集合抽象层是PointNet++的核心模块,它通过迭代地采样点云中的点,并在每个采样点上应用PointNet来提取局部特征。 局部特征提取(Local Feature Extraction):对每个分组应用PointNet或类似的结构,提取局部特征。 多层感知机(MLP) 在PointNet++中,多层感知机(MLP)用于对点云中的点进行特征提取。MLP是一个简单的前馈神经网络,它可以在每个点上进行多次非线性变换,以提取更复杂的特征。 Symmetric Function(对称函数) PointNet++使用最大池化作为对称函数,以确保特征的排列不变性。这意味着无论点的顺序如何变化,提取的特征都是相同的。 这些层将特征向量映射到最终的分类标签或每个点的分割标签 PointNet++核心代码 特征提取核心代码 class PointNetSetAbstraction(nn.Module): def
Srlua
2024-11-28
6340
标签:
PointNet分享_1
个人实验的一些总结 对于点云的在深度学习上的运用可以参考其在深度学习在二维图像上的一些点来进行相关优化, 目前做的实验都只是按照传统的深度学习优化方法优化现有的模型, 对于正则化似乎对于整体的pointnet 的提升不是很大 一方面 pointnet 模型采用的是 L2 正则化,相比于 L1 正则化要更好,另一方面,采取的 alpha*L1+(1-alpha)*L2 可能效果更好, 因为调参的问题 总的来说,其他常规深度学习优化对于 pointnet 应该是能带来一些提升的,大家可以试一下。
点云PCL博主
2019-07-30
9340
标签:
PointNet++论文个人理解
Abstract Motivation:PointNet不能捕捉局部结构信息,因此限制了其在细粒度任务和复杂场景的泛化能力。 作者提出了一个层级的网络来学习上下文尺度逐渐增大的局部特征。 Introduction PointNet++的想法很简单,首先使用距离度量将点云分成若个个有重叠的子区域。使用网络在这些子区域上提取特征。 最后使用pointNet对这些“patch"抽取特征。 2. 如何通过特征提取器提取特征。 作者选用PointNet作者特征提取器。 PointNet layer: 使用PointNet来对一个个patch提取特征。 值得注意的是,输入pointnet的坐标需要进行一个处理。就是将每个点的坐标减去中心点坐标。 其实这个也很好理解,我们使用pointnet来提取的是这个patch的特征,坐标剪完就是个相对坐标(相对于一个patch中心点的 坐标)。
3D视觉工坊
2020-12-11
1.2K0
标签:
【技术解析】PointNet系列论文解读
换个角度来讲,PointNet能够总结出表示某类物体形状的关键点,基于这些关键点PointNet能够判别物体的类别。这样的能力决定了PointNet对噪声和数据缺失的鲁棒性。 如图所示,作者通过实验列出了PointNet学习到的以下几个物体的关键点。 ? 3PointNet系列模型结构 3.1 PointNet ? 3.3 Frustum-PointNet 上述的PointNetPointNet++主要用于点云数据的分类和分割问题,Frustum-PointNet(F-PointNet)将PointNet的应用拓展到了 将点云平移到计算得到的目标质心后,通过PointNet(或PointNet++)对3D bbox的中心、尺寸和朝向进行回归得到最终的输出。 4目标检测效果 因为目前我们主要考虑点云的目标检测问题,在此忽略PointNetPointNet++论文中提出的分类和语义分割的效果,只考虑F-PointNet的检测效果。
美团无人配送
2019-04-26
2.6K0
标签:
PointNet++文章及代码
[0lrup2k9hf.gif] PointNet++是PointNet的升级版本,增加了对局部信息的感知能力。体现到代码上的话,变化还是比较多的,我们以分类为例,对结构和代码进行分析。 网络结构 首先是网络结构方面,复习前任PointNet网络结构的,请点这里 改进版去掉了T-net,在网络层次上变多了,但是更加组织有序。 pointnet_sa_module模块的代码如下: def pointnet_sa_module(xyz, points, npoint, radius, nsample, mlp, mlp2, group_all 分类任务部分与PointNet差别不大,不再赘述。 小结 上述代码是pointnet2_cls_ssg.py,它的多尺度版本为pointnet2_cls_msg.py,单尺度版本搞清楚了,多尺度版本的理解也不成问题。
点云乐课堂
2020-05-18
9110
标签:
点云深度网络——PointNet
今天要聊的论文是斯坦福大学Charles等人在CVPR2017上发表的论文,提出了一种直接处理点云的深度学习网络——PointNet。 因为在PointNet之前,点云没办法直接处理。 由于点云是三维的、无序的,别说深度神经网络了,就是普通算法很多都不能奏效。 比如MVCNN的有些指标就不输PointNet。 这时候我们就会觉得,冥冥中一定存在一种网络,可以摆脱上面这些操作。 于是,PointNet出现了,从此点云处理领域分成“前PointNet时代”和“后PointNet时代”。接着,各种直接处理点云的网络也纷纷出现,如PointCNN、SO-Net,效果也是越来越好。 后续还会陆续讲到其他网络,并与PointNet做对比。
点云乐课堂
2020-05-18
2K0
标签:
关于Pointnet++的几点疑问
PointNetPointNet++,这个参数量笔者始终没搞明白,这里把计算过程放上来,希望有同学一起看看。 1、PointNet++中分类任务ssg版本的计算。 这里需要注意一点,计算conv_num的公式里,用红字标出来的‘+3’,这是代码里提到的,pointnet_sa_module首先进行sample_and_group运算,来看代码做了什么: sample_and_group 2.这里还想提一点,上一张图中,我们注意到作者说pointnet的Model size是40MB,但是pointnet论文里是这么写的: ? 3.5MB。 不知道两个数字为什么不一致。
点云乐课堂
2020-05-18
1.7K0
标签:
【他山之石】PointNet论文复现及代码详解
可以发现,PointNet的结构并不复杂,比起CNN还要简单一些。理解PointNet关键在于理解一维卷积在网络中的作用,本文对该部分进行了详细的说明。 另外,可以看到,PointNet最大的缺陷就是没有考虑周围的局部信息,所有的卷积操作都是针对单个点的进行的。这一点在PointNet++中得到了关注,后面的文章会对其进行解读。 关于一维卷积conv1d 在PointNet中,用到的卷积操作都是conv1d,和卷积神经网络用到的conv2d有些不同,这里先介绍一下conv1d操作原理,这样能更好的理解数据在PointNet中是怎么变化的 05 延伸 在NLP的文本分类中,用的也是一维卷积,但和PointNet中卷积核大小总是1不同,文本分类网络中卷积核大小很多时候是大于1的。 但类似的做法并不能在PointNet中实现。
马上科普尚尚
2020-11-19
1.7K1
标签:
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档