目录

  • 0.Abstract
    • 0.1逐句翻译
    • 0.2总结
  • 1.Introduction
    • 1.1逐句翻译
    • 1.2总结
  • 2.Problem Statement
    • 2.1翻译
    • 2.2总结
  • 3.Method
    • 3.1 Review of PointNet [20]: A Universal Continuous Set Function Approximator
      • 3.1.1原文翻译
      • 3.1.1总结
    • 3.2 Hierarchical Point Set Feature Learning
      • 3.2.1逐句翻译
      • 3.2.2总结
    • 3.3 Robust Feature Learning under Non-Uniform Sampling Density
      • 3.3.1逐句翻译
      • 3.3.2总结
  • 4.试验

这里是文章的逐句翻译,所以如果您想对论文有一个整体的认知,那么请看:PointNet++的总体概述

0.Abstract

0.1逐句翻译

Few prior works study deep learning on point sets.
以前很少有关于点集的深度学习的研究。
PointNet [20] is a pioneer in this direction.
PointNet[20]是这方面的先驱。
However, by design PointNet does not capture local structures induced by the metric space points live in, limiting its ability to recognize fine-grained patterns and generalizability to complex scenes.
然而,根据设计,PointNet没有捕获点所在的度量空间点引起的局部结构,限制了它识别细粒度模式的能力和对复杂场景的通用性。
In this work, we introduce a hierarchical neural network that applies PointNet recursively on a nested partitioning of the input point set.
在这项工作中,我们介绍了一个递阶神经网络,应用PointNet递归在输入点集的嵌套空间上。
By exploiting metric space distances, our network is able to learn local features with increasing contextual scales.
通过利用度量空间距离,我们的网络能够学习局部特征随着上下文尺度的增加。
With further observation that point sets are usually sampled with varying densities, which results in greatly decreased performance for networks trained on uniform densities, we propose novel set learning layers to adaptively combine features from multiple scales.
进一步观察到点集通常以不同的密度进行采样,这导致在均匀密度下训练的网络性能大大下降,我们提出了新的集学习层来自适应地组合多个尺度的特征。 Experiments show that our network called PointNet++ is able to learn deep point set features efficiently and robustly.
实验表明,PointNet++网络能够有效、稳健地学习深度点集特征。
In particular, results significantly better than state-of-the-art have been obtained on challenging benchmarks of 3D point clouds.
特别是,在具有挑战性的3D点云基准上获得了明显优于最新水平的结果。

0.2总结

PointNet的不足
我们可以看到这里其实是在PointNet的一个提升,那么既然是对已有成果的优化,那么一定是要指出之前方案的不足,这里指出的不足我第一次于都理解的是这里说的是这里出现的问题是没有考虑空间距离对结果的影响,也就是点和点之间的距离。
之后,文章中又提到的空间中点的密度在基础PointNet当中也没有考虑的问题。这个点问题其实和之前的距离是密切相关的,但是又不太一样,点的距离是两个人之间的事情,点的密度是一群人直接的事情。就像计算机网络当中的流量控制和拥塞控制一样。但是两者虽然不同,但是密度的形成原因其实也和距离息息相关。
解决方案
这里没有细说,只是说提出来了新的层
解决效果
state-of-the-art 也就是好于现在所有的情况。

1.Introduction

1.1逐句翻译

第一段(将点集的特点,引出需要考虑距离和密度信息的问题)
We are interested in analyzing geometric point sets which are collections of points in a Euclidean space.
我们感兴趣的是分析几何点集,它是欧氏空间中点的集合。
A particularly important type of geometric point set is point cloud captured by 3D scanners, e.g., from appropriately equipped autonomous vehicles.
一种特别重要的几何点集类型是由3D扫描仪捕获的点云,例如,从适当装备的自动驾驶车辆。
As a set, such data has to be invariant to permutations of its members.
作为一个集合,这样的数据必须对其成员的排列保持不变。
In addition, the distance metric defines local neighborhoods that may exhibit different properties.
此外,距离度量定义了可能显示不同属性的本地邻域。(没有读懂)
For example, the density and other attributes of points may not be uniform across different locations — in 3D scanning the density variability can come from perspective effects, radial density variations, motion, etc.
例如,不同位置的点的密度和其他属性可能不一致——在3D扫描中,密度的可变性可能来自视角效果、径向密度变化、运动等。

第二段(肯定PointNet的工作,同时指出其不足–没有局部信息)
Few prior works study deep learning on point sets.
以前很少有关于点集的深度学习的研究。
PointNet [20] is a pioneering effort that directly processes point sets.
PointNet[20]是直接处理点集的开创性工作。
The basic idea of PointNet is to learn a spatial encoding of each point and then aggregate all individual point features to a global point cloud signature.
PointNet的基本思想是学习每个点的空间编码,然后将所有单独的点特征聚合为一个全局点云信号。
By its design, PointNet does not capture local structure induced by the metric.
根据它的设计,PointNet不捕获由度量(我理解这里应该理解为距离)引起的局部结构。
However, exploiting local structure has proven to be important for the success of convolutional architectures.
然而,利用局部结构已经被证明对卷积结构的成功非常重要。
A CNN takes data defined on regular grids as the input and is able to progressively capture features at increasingly larger scales along a multi-resolution hierarchy.
CNN将在规则网格上定义的数据作为输入,能够沿着多分辨率层次逐步捕获越来越大的尺度上的特征。
At lower levels neurons have smaller receptive fields whereas at higher levels they have larger receptive fields.
在较低水平的神经元有较小的接受域,而在较高水平的神经元有较大的接受域。(我理解这里的receptive fields应该理解为感受野)
The ability to abstract local patterns along the hierarchy allows better generalizability to unseen cases.
沿着层次结构抽象局部模式的能力允许更好地一般化到看不见的情况

第三段(大约如何借鉴CNN的优点)
We introduce a hierarchical neural network, named as PointNet++, to process a set of points sampled in a metric space in a hierarchical fashion.
我们引入了一个层次神经网络,称为PointNet++,以一种层次的方式处理在度量空间采样的一组点。
The general idea of PointNet++ is simple.
PointNet++的总体思想很简单。
We first partition the set of points into overlapping local regions by the distance metric of the underlying space.
我们首先通过距离度量的基础空间将点集划分为重叠的局部区域。(也就是类似聚类的一个东西,通过聚类划成一堆)
Similar to CNNs, we extract local features capturing fine geometric structures from small neighborhoods; such local features are further grouped into larger units and processed to produce higher level features.
与CNN相似,我们从小邻域中提取局部特征捕捉精细的几何结构;这些局部特征被进一步分组成更大的单元,并被处理以产生更高层次的特征。
This process is repeated until we obtain the features of the whole point set.
这个过程不断重复,直到我们得到整个点集的特征。

第四段(具体怎么实现对CNN的借鉴)
The design of PointNet++ has to address two issues: how to generate the partitioning of the point set,and how to abstract sets of points or local features through a local feature learner.
PointNet++的设计必须解决两个问题:如何生成点集的划分,以及如何通过局部特征学习器抽象点集或局部特征集。
The two issues are correlated because the partitioning of the point set has to produce common structures across partitions, so that weights of local feature learners can be shared, as in the convolutional setting.
这两个问题是相关的,因为点集的划分必须产生跨分区的公共结构,这样局部特征学习者的权值就可以共享,就像在卷积设置中一样。(这里必须得到一样的结构体,因为想要产生类似卷积的参数共用)
We choose our local feature learner to be PointNet.
我们选择我们的局部特征学习器为PointNet。
As demonstrated in that work, PointNet is an effective architecture to process an unordered set of points for semantic feature extraction.
正如在该工作中所演示的,PointNet是处理无序点集以提取语义特征的有效体系结构。
In addition, this architecture is robust to input data corruption.
此外,该体系结构对于输入数据损坏是健壮的。
As a basic building block, PointNet abstracts sets of local points or features into higher level representations.
作为一个基本的构建块,PointNet将局部点或特性集合抽象成更高层次的表示。
In this view, PointNet++ applies PointNet recursively on a nested partitioning of the input set.
在这个视图中,PointNet++递归地在输入集的嵌套分区上应用PointNet。

第五段(怎么产生类似卷积中每一步的相同结构:质心的产生)
One issue that still remains is how to generate overlapping partitioning of a point set.
仍然存在的一个问题是如何生成点集的重叠分区。
Each partition is defined as a neighborhood ball in the underlying Euclidean space, whose parameters include centroid location and scale.
每个分区被定义为底层欧氏空间中的一个邻域球,其参数包括质心位置和尺度。
To evenly cover the whole set, the centroids are selected among input point set by a farthest point sampling (FPS) algorithm.
为了均匀地覆盖整个集合,采用最远点采样(FPS)算法从输入点集中选择质心。
Compared with volumetric CNNs that scan the space with fixed strides, our local receptive fields are dependent on both the input data and the metric, and thus more efficient and effective.
与以固定步数扫描空间的体积CNN相比,我们的本地接受域既依赖于输入数据,也依赖于度量,因此效率更高。

第六段(怎么产生类似卷积中每一步的相同结构:半径的产生)
Deciding the appropriate scale of local neighborhood balls, however, is a more challenging yet intriguing problem, due to the entanglement of feature scale and non-uniformity of input point set.
然而,由于特征尺度的纠缠和输入点集的不均匀性,确定局部邻域球的适当尺度是一个更具挑战性和耐受性的问题。
We assume that the input point set may have variable density at different areas, which is quite common in real data such as Structure Sensor scanning [18] (see Fig. 1).
我们假设输入点集可能在不同的区域有不同的密度,这在实际数据中很常见,如Structure Sensor扫描[18] (Fig1)。
Our input point set is thus very different from CNN inputs which can be viewed as data defined on regular grids with uniform constant density.
因此,我们的输入点集与CNN输入非常不同,CNN输入可以看作是定义在均匀恒定密度的规则网格上的数据。
In CNNs, the counterpart to local partition scale is the size of kernels.
在cnn中,与本地分区规模对应的是内核的大小。
[25] shows that using smaller kernels helps to improve the ability of CNNs.
[25]表明使用较小的内核有助于提高神经网络的能力。
Our experiments on point set data,however, give counter evidence to this rule.
然而,我们在点集数据上的实验给出了与此规则相反的证据。
Small neighborhood may consist of too few points due to sampling deficiency, which might be insufficient to allow PointNets to capture patterns robustly.
由于取样不足,小的邻域可能包含太少的点,这可能不足以让PointNets健壮地捕获模式。

第七段(本文贡献)
A significant contribution of our paper is that PointNet++ leverages neighborhoods at multiple scales to achieve both robustness and detail capture.
我们的论文的一个重要贡献是PointNet++利用了附近的信息,在多个尺度上实现鲁棒性和细节捕获。
Assisted with random input dropout during training,the network learns to adaptively weight patterns detected at different scales and combine multi-scale features according to the input data.
借助训练过程中的随机输入dropout,网络学习自适应加权不同尺度检测到的模式,并根据输入数据组合多尺度特征。
Experiments show that our PointNet++ is able to process point sets efficiently and robustly.
实验表明,PointNet++能够有效地处理点集,且具有鲁棒性。
In particular, results that are significantly better than state-of-the-art have been obtained on challenging benchmarks of 3D point clouds.
特别是,在具有挑战性的3D点云基准上获得了明显优于目前最先进水平的结果。

1.2总结

先介绍点云:
点云是一个点的集合,来自于各种扫描设备、雷达(我之前一直认为只有雷达),文章肯定了PointNet当中提出来的点的无序性,之后提出来一个新的考量因素——点的距离,或者是密度,也应该作为一个重要的属性被考量。因为这些密度的变化来自于视角效果、径向密度变化、运动等,这些在我的理解当中,视角变化、运动都是雷达的主要应用方向,也就是自动驾驶的主要考量因素。

在提出文章自己的构思(主要设计思想):
我第一次读到这里的时候有如下结论:
之前提到的点的密度上没有考虑的不足,是没有考虑局部信息导致的,所以还是得考虑局部信息,然后作者就提到了考虑局部信息最好的还是卷积网络啊。

于是文正开始分析卷积网络是如何考虑局部信息的,并取得成功的。卷积网络是逐层逐渐扩大的感受野(文章里描述为receptive fields,我理解应该指的是感野),不断提取逐渐全面的信息。这取得了很好的成功。

但是因为在PointNet那篇当中,作者就已经否定了直接使用卷积网络的可能性,所以这里不能对卷积网络进行真正的照抄照搬。需要提取其中可以借用的部分。于是本文主要参考的是卷积网络的层次结构,所以本文也提出了一种层次网络。好了到了这里主要的设计思路就已经搞清楚了。
(上面是文中内容的总结,下面我说一下我第一次读到这里的理解,下面全是我个人的理解,如果不对,我期待与您进行交流)
我觉得文章有一个没有描述清楚的事情,我自己思考了一下,那就是:**这个文章怎么想到按照距离先进行聚类这件事的呢?**想要知道问题的答案,我们就得代入作者的角度,作者当时只能看到PointNet这个东西,那么PointNet当中没有使用卷积来处理,不能很好的抓住图像数据相接近的点之间能提取出更多信息的关键。这个是一个显而易见的,但是不使用卷积也是被逼无奈的,PointSet的特点就放在那里,不能使用就是不能使用。
所以我们就得想怎么:1.怎么改变PointSet的特点,或是2.怎么改变卷积对数据结构的要求,显然第二个好很多。所以,作者才顺利想到了聚类这个方向。

大致说明本文如何实现的:
上面,我们明确了设计思路之后,文章真正开始说明这个网络的情况,首先,进行聚类,之后对聚类进行卷积类似的操作,目标是有效地提取信息,之后再继续向上迭代,相当于不断扩大感受野,进而得到想要的信息。
(读完之后的内容)
这里描述为聚类显然不好,因为聚类不需要相同的结构,但是这里需要相同的结构。

细致说明本文的实现方式:
应该将这部分分成两个主要问题理解

  • 1.怎么产生相同结构的数个“聚类”
    为什么需要使用相同的结构?因为必须要和卷积网络一样共享参数,这样可以在计算量一定的情况下,获得更好的效果(当然可能引起过拟合,但是还有什么各种正交化来制约,因此不用过于在意)
    然后怎么产生这个相同的部分就比较简单了,只需要使用一个球体划进来相同的部分就可以了,想要使用一个球,就需要两个要素需要生成:1.一个质心2.一个半径。
    怎么获得质心
    之后使用a farthest point sampling (FPS) algorithm来产生中心点就行(刚刚读到这里的时候这里我还不懂)。
    怎么获得半径
    这里面对的一个大问题就是一个图片的不同区域的密度是不相同的,CNN相当于是使用相同大小的半径,但是这里因为不均匀,所以我们应当使用不同的半径,另外半径应该适当地大,因为适当地大才能得到足够的信息。
    另外,
    1.文章中提出来一个点就是:这里不像卷积一样使用固定的步长和固定距离的卷积中心,是依据输入的数据集灵活生成的,所以效果好一些(这里我很好奇,一会得深究一下怎么实现的)
    2.[25] shows that using smaller kernels helps to improve the ability of CNNs.这句话对应的论文没看过,应该得再看一下了。

  • 2.怎么提取信息?
    文章回答这个问题就非常简单了,直接使用之前就用有的PointNet不就行了。

最后
总结文章可以有效地获得多尺度信息,并获得很好的结果。

2.Problem Statement

描述文章的内容

2.1翻译

Suppose that X = (M, d) is a discrete metric space whose metric is inherited from a Euclidean space Rn, where M ⊆ Rn is the set of points and d is the distance metric.
假设X = (M, d)是一个离散度量空间,其度量继承自欧几里得空间Rn,其中 M ⊆ Rn 是点的集合,d为距离度量。
In addition, the density of M in the ambient Euclidean space may not be uniform everywhere.
此外,环境欧几里得空间中的M密度可能不是处处均匀的。
We are interested in learning set functions f that take such X as the input (along with additional features for each point) and produce information of semantic interest regrading X .
我们感兴趣的是学习集函数f,它将X作为输入(以及每个点的附加特征),并产生优化过的语义信息X
In practice, such f can be classification function that assigns a label to X or a segmentation function that assigns a per point label to each member of M
在实践中,这样的f可以是为X分配一个标签的分类函数,也可以是为M的每个成员分配一个点标签的分段函数。

2.2总结

输入:一个点集X = (M, d)
中间结果:一个语义的特征集合
最终过程:依据需求选择整体大标签或是点集的小标签。
这里的说明我觉得说的比较模糊,没有对聚义的数据集情况进行说明,应该是PointNet论文中已经定义的很好的原因吧。

3.Method

下面是原文给出来的章节介绍,我直接翻译一下也就不总结了。
Our work can be viewed as an extension of PointNet [20] with added hierarchical structure.
我们的工作可以看作是PointNet[20]的扩展,增加了层次结构。
We first review PointNet (Sec. 3.1) and then introduce a basic extension of PointNet with hierarchical structure (Sec. 3.2).
我们首先回顾PointNet(第3.1节),然后介绍具有层次结构的PointNet的基本扩展(第3.2节)。
Finally, we propose our PointNet++ that is able to robustly learn features even in non-uniformly sampled point sets (Sec. 3.3).
最后,我们提出了即使在非均匀采样点集中也能稳健地学习特征的PointNet++(第3.3节)。

3.1 Review of PointNet [20]: A Universal Continuous Set Function Approximator

这里就是带着大家回顾一下之前的PointNet

3.1.1原文翻译

Given an unordered point set {x1, x2, …, xn} with xi ∈ Rd, one can define a set function f : X → R that maps a set of points to a vector:
给定一个无序点集{x1, x2,…, xn}对于xi∈Rd,可以定义集合函数f: X→R,将一组点映射到一个向量:

where γ and h are usually multi-layer perceptron (MLP) networks.
其中γ和h通常是多层感知器(MLP)网络。

The set function f in Eq. 1 is invariant to input point permutations and can arbitrarily approximate any continuous set function [20].
式1中的集合函数f对于输入点排列是不变的,可以任意逼近任何连续集合函数[20]。
Note that the response of h can be interpreted as the spatial encoding of a point (see [20] for details).
注意,h的响应可以解释为一个点的空间编码(详见[20])。

PointNet achieved impressive performance on a few benchmarks.
PointNet在一些基准测试上取得了令人印象深刻的表现。
However, it lacks the ability to capture local context at different scales(就是我们从不同大小的感受野获得信息).
然而,它缺乏捕获不同规模的本地上下文的能力。
We will introduce a hierarchical feature learning framework in the next section to resolve the limitation.
我们将在下一节介绍一个层次特征学习框架来解决这个限制。

3.1.1总结

就是又说了一下之前的PointNet。然后提出来了不足,没有层次信息的提取。
这里虽然之前完整的度过了PointNet的文章,但是这里读起来还是有很多收获。
收获如下:
1.对PointNet的理解又更加的深入了,我觉得原因是读原文和读别人总结过的东西是不一样的。所以以后一件事还得多听一些建议。
2.其他收获没有

3.2 Hierarchical Point Set Feature Learning

3.2.1逐句翻译

第一段与之前的比起来,作了什么优化
While PointNet uses a single max pooling operation to aggregate the whole point set, our new architecture builds a hierarchical grouping of points and progressively abstract larger and larger local regions along the hierarchy.
当PointNet使用一个单一的最大池操作来聚合整个点集时,我们的新体系结构建立了一个分层的点分组,并沿着分层逐步抽象出越来越大的局部区域。
第二段简单说明PointNet++的过程
Our hierarchical structure is composed by a number of set abstraction levels (Fig. 2).
我们的层次结构由许多集合抽象级别组成(图2)。
At each level, a set of points is processed and abstracted to produce a new set with fewer elements.
在每个层次上,处理和抽象一组点以产生一个包含更少元素的新集合。
The set abstraction level is made of three key layers: Sampling layer, Grouping layer and PointNet layer.
集合抽象层由三个关键层组成:采样层、分组层和PointNet层。
The Sampling layer selects a set of points from input points, which defines the centroids of local regions.
采样层从输入点中选择一组点,定义局部区域的质心。
Grouping layer then constructs local region sets by finding “neighboring” points around the centroids.
分组层通过寻找质心周围的“邻近”点来构造局部区域集。
PointNet layer uses a mini-PointNet to encode local region patterns into feature vectors.
点网层使用一个小点网将局部区域模式编码为特征向量。

第三段(介绍网络单层的输入输出的变化情况)
A set abstraction level takes an N × (d + C) matrix as input that is from N points with d-dim coordinates and C-dim point feature.
集合抽象层以N × (d + C)矩阵作为输入,该输入来自N个具有d-dim坐标和C-dim点特征的点。
It outputs an N0 × (d + C0) matrix of N0 subsampled points with d-dim coordinates and new C0-dim feature vectors summarizing local context.
输出具有d-dim坐标的N0下采样点的N0 × (d + C0)矩阵和总结局部上下文的新的C0-dim特征向量。

We introduce the layers of a set abstraction level in the following paragraphs.
我们将在下面的段落中介绍集合抽象层。

第四段
Sampling layer. Given input points {x1, x2, …, xn}, we use iterative farthest point sampling (FPS)to choose a subset of points {xi1, xi2, …, xim}, such that xij is the most distant point (in metricdistance) from the set {xi1, xi2, …, xijj 1 } with regard to the rest points.
给定输入点{x1, x2,…, xn},我们使用迭代最远点采样(FPS)选择一个点的子集{xi1, xi2,…, xim},使xij是离集合{xi1, xi2,…, xijj 1}关于其余的点。
Compared with random sampling, it has better coverage of the entire point set given the same number of centroids.
与随机抽样相比,在相同质心数的情况下,它对整个点集的覆盖效果更好。
In contrast to CNNs that scan the vector space agnostic of data distribution, our sampling strategy generates receptive fields in a data dependent manner.
与扫描向量空间不可知数据分布的cnn相比,我们的采样策略以数据依赖的方式生成接受域。

第五段
Grouping layer. The input to this layer is a point set of size N × (d + C) and the coordinates of a set of centroids of size N0 × d.
该层的输入是一个大小为N × (d + C)的点集和一组大小为N0 × d的质心的坐标。(也就是在原有数据集的基础上额外输入我们选择了哪个点)
The output are groups of point sets of size N0 × K × (d + C), where each group corresponds to a local region and K is the number of points in the neighborhood of centroid points.
输出为大小为N0 × K × (d + C)的点集组,其中每组对应一个局部区域,K为质心点邻域内的点数。
Note that K varies across groups but the succeeding PointNet layer is able to convert flexible number of points into a fixed length local region feature vector.
注意,K在组之间是不同的,但是后续的PointNet层能够将灵活数量的点转换为固定长度的局部区域特征向量。(也就是上文所说的K其实大约是一个抽象值,其实并不存在这么个值,因为每个group之间k的大小都是不相同的)

第六段(谈和卷积的区别)
In convolutional neural networks, a local region of a pixel consists of pixels with array indices within certain Manhattan distance (kernel size) of the pixel.
在卷积神经网络中,一个像素的局部区域由像素的一定曼哈顿距离(核大小)内的数组索引的像素组成。(大约说的就是在特征图中一个像素对应的就是一个卷积和大小个数的元素)
In a point set sampled from a metric space, the neighborhood of a point is defined by metric distance.
在从度量空间采样的点集中,点的邻域由度量距离定义。(正常的图的)

第七段(介绍中心点确定之后,如何选择附近的元素的方法)
Ball query finds all points that are within a radius to the query point (an upper limit of K is set in implementation).
球形查询查找与查询点半径范围内的所有点(在实现中设置了K的上限)。
An alternative range query is K nearest neighbor (kNN) search which finds a fixed number of neighboring points.
另一种可选的范围查询是K近邻(KNN)搜索,它能找到固定数量的邻近点。
Compared with kNN, ball query’s local neighborhood guarantees a fixed region scale thus making local region feature more generalizable across space, which is preferred for tasks requiring local pattern recognition (e.g. semantic point labeling).
与kNN相比,球查询的局部邻域保证了固定的区域尺度,使得局部区域特征在空间上更具有泛化性,这对于需要局部模式识别的任务(如语义点标记)更有优势。

第八段
PointNet layer. In this layer, the input are N0 local regions of points with data size N0×K×(d+C).
在这一层中,输入是N0个数据大小为N0×K×(d+C)的点的局部区域。
Each local region in the output is abstracted by its centroid and local feature that encodes the centroid’s neighborhood. Output data size is N0 × (d + C0).
输出中的每个局部区域通过其质心和对质心的邻域进行编码的局部特征来提取。输出数据大小为N0 × (d + C0)。

3.2.2总结

首先,与PointNet比起来,PointNet++的分层聚合的方法可以提取出更多的信息。
之后,介绍了网络大致的处理流程,我将其总结成三个步骤:

  • 1.选定质心
  • 2.选定每个质心的半径
  • 3.使用PointNet对其进行聚合。

通过这三个步骤我们最后完成的一个操作就是:

  • 1.我们看一个局部空间的结果,将每个质心和半径(局部空间)形成的一个小空间,聚合成为一个特征向量。
  • 2.如果看一个整体的空间,得到的结果就是,我们将一个空间中的点集,提取信息成为一个点数更少,更有代表性的点集。

进而,介绍硬核心的输入输出结构,好了现在我们得去看复现了。

// 复现不太顺利,还有bug之后上线。
  • 1.我们先理解这个数据变化的过程:数据的处理过程是在原来的中心点的坐标的后面,加入更多特征维度,这些维度来自于这个点周围圆形空间点的信息,也就是第三段说的内容。
    从N × (d + C)到N0 × (d + C0),其中N很好理解就是原来的点的个数;N0表示的是我们选取的中心点的个数将原来的点集提取出N0个更具有代表性的点;d表示的是点最原始的坐标维度,也就是如果是三维空间这里就是三维,如果是二维空间这里就是二维;C表示的是之前一层的特征提取结果的维度;C0表示的则是新一层的特征维度。
  • 上面的部分是综述部分,下面才开始真正的详细叙述了:
  • 2.Sampling layer.首先是采样的方法:farthest point sampling (FPS),论文描述其依赖数据集,覆盖性更好,并且毕竟是结合数据集提取的点,所以效果好一点。我觉得这里还需要继续优化,因为我们毕竟不是直接让机器提取的信息,而是使用了某种算法。
  • 3.Grouping layer. 首先传入的是上一层得到的点集(这里的坐标的特征已经被扩张了),另外一个输入就是我们选择了哪些点作为中心。
    当然,选定这些之后,一个新的问题就是出现了,就是如何围绕这些点选择一个需要聚合的部分。文章给出了两种方式:1.选择附近某个距离的区域。2.选择与当前点最近的k个点。
    然后,我们知道文章最后选择了第一个,但没有给解释,我自己理解了一下:如果选择第二种,结合点集有的地方稀疏有的地方密集的特点,那么稀疏的部分将会选出很大的一个范围,那么我们的网络就很难获得这些部分的局部信息,这是我们不希望看到的。
  • 4.PointNet layer.前面将组都给大家分好了,之后Poinet直接给他们聚合到一起就完事了。

3.3 Robust Feature Learning under Non-Uniform Sampling Density

3.3.1逐句翻译

第一段
As discussed earlier, it is common that a point set comes with non-uniform density in different areas.
如前所述,点集在不同区域具有不均匀的密度是很常见的。
Such non-uniformity introduces a significant challenge for point set feature learning.
这种非均匀性给点集特征学习带来了巨大的挑战。
Features learned in dense data may not generalize to sparsely sampled regions.
在密集数据中学习到的特征可能不能推广到稀疏采样区域。
Con-sequently, models trained for sparse point cloud may not recognize fine-grained local structures.
因此,为稀疏点云训练的模型可能无法识别细粒度的局部结构。

第二段(尽量提取细微的特征和稀疏点集处输入过少的矛盾)
Ideally, we want to inspect as closely as possible into a point set to capture finest details in densely sampled regions.
理想情况下,我们希望尽可能近地检查到一个点集,以捕获密集采样区域的最精细细节。
However, such close inspect is prohibited at low density areas because local patterns may be corrupted by the sampling deficiency.
然而,这种近距离的检查是禁止在低密度区域,因为局部模式可能被取样缺陷损坏。
In this case, we should look for larger scale patterns in greater vicinity.
在这种情况下,我们应该在更大范围内寻找更大规模的模式。
To achieve this goal we propose density adaptive PointNet layers (Fig. 3) that learn to combine features from regions of different scales when the input sampling density changes.
为了实现这一目标,我们提出了密度自适应PointNet层(图3),当输入采样密度变化时,该层可以学习组合来自不同尺度区域的特征。
We call our hierarchical network with density adaptive PointNet layers as PointNet++.
我们将具有密度自适应PointNet层的分层网络称为PointNet++。

第三段
Previously in Sec. 3.2, each abstraction level contains grouping and feature extraction of a single scale.
在前面的3.2节中,每个抽象层包含单个尺度的分组和特征提取。
In PointNet++, each abstraction level extracts multiple scales of local patterns and combine them intelligently according to local point densities.
在PointNet++中,每个抽象层提取多个尺度的局部模式,并根据局部点密度智能组合它们。
In terms of grouping local regions and combining features from different scales, we propose two types of density adaptive layers as listed below.
根据局部区域的分组和结合不同尺度的特征,我们提出了两种密度自适应层,下面的部分将细说。

第四段
Multi-scale grouping (MSG). As shown in Fig. 3 (a), a simple but effective way to capture multiscale patterns is to apply grouping layers with different scales followed by according PointNets to extract features of each scale. Features at different scales are concatenated to form a multi-scale feature.

3.3.2总结

首先,提出问题:我们小的点云的点分布是不均匀的,所以,我们如果选择一个相同的结构在各处提取信息,那么很难达到很好的结果。进而,抛出一个矛盾,也就是我们想要在每一层都提取尽量细微的特征(也就是将group范围设置的更小),和有些稀疏的部分如果使用过小的范围只能选到非常少的点(也就是group范围不能设置过小)。
所以,提出了我们要结合多尺度信息。

4.试验

PointNet++一开始点比较密集的时候,可以看到他的效果很好,这个大致是因为多层的网络结构。可以看到,如果半径不能进行动态调整的话,随着点的丢失变多,PointNet++的准确率下降的可怕。

可以看到加入多半径之后取得了很好的效果。并且让网络自适应的选择特征值之后,网络对于特征丢失的鲁棒性提升很大。

当然为了了解上图还需要了解什么是MSG和MRG,

点云网络的论文理解(四)-点云网络的优化 PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space相关推荐

  1. 点云网络的论文理解(七)-Frustum PointNets for 3D Object Detection from RGB-D Data

    名词解释 RGB:就是彩色图像. RGB-D:就是彩色图像外加一个深度,这个深度就是摄像头到那个东西的距离. 单目RGB-D:就是一个摄像头采集RGB-D数据 双目RGB-D:就是两个摄像头一起采集R ...

  2. 点云网络的论文理解(二)- PointNet的pytorch复现

    1.了解PointNet 为了更好的复现这个东西我们需要先了解这个东西,先把原文给出的图片放在这里,之后我们再一点点理解. 1.1点云的特点 1.1.1无序性:也就是说这个点的先后顺序和实际上是什么无 ...

  3. 点云网络的论文理解(一)-点云网络的提出 PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation

    1.摘要 1.1逐句翻译 Point cloud is an important type of geometric data structure. 点云是一种重要的数据结构. Due to its ...

  4. 点云网络的论文理解(六)-Frustum PointNets 总体概括

    这里的总结一下: 1.解决什么总体问题:解决三维空间中的目标识别,最终结果是用一个小盒子也就是bounding box把这个东西框起来. 2.解决什么痛点 :1.原有的方案中忽略了三维最原始的特性.2 ...

  5. 点云网络的论文理解(三)-点云网络的优化 PointNet++的总体说明

    总体说明 这个部分是为了让大家可以更好地理解文章 1.以前的网络有什么缺点 1.首先第一点就是论文当中反复提到的没有局部特征的问题. 2.另外一个就是PointNet不具有平移不变性,理解一下这个,P ...

  6. GAN对抗生成网络原始论文理解笔记

    文章目录 论文:Generative Adversarial Nets 符号意义 生成器(Generator) 判别器(Discriminator) 生成器和判别器的关系 GAN的训练流程简述 论文中 ...

  7. 【论文理解】ArcFace: Additive Angular Margin Loss for Deep Face Recognition(InsightFace)

    论文地址:https://arxiv.org/abs/1801.07698 github:https://github.com/deepinsight/insightface 这篇论文基本介绍了近期较 ...

  8. 网络计算机辅助软件4字,【网络技术论文】计算机辅助软件和网络技术应用(共2906字)...

    摘要:近年来,随着我国经济的飞速发展,计算机辅助软件越来越多地被应用在各行各业中,计算机辅助功能在工程设计中发挥了非常重要的作用,不但降低了劳动强度,还大大提高了工作效率和工作的稳定性.准确性.本文主 ...

  9. 【3D点云】弱监督点云分割(论文解读 CVPR2020)

    文章目录 一.摘要 1.Introduction 2.四点贡献 二.相关工作 1.不完全(半监督)学习 2.不准确注释 3.点云分析 三.方法论 1.点云编码网络(encoder) 2.不完整的监督分 ...

最新文章

  1. php开发自学经典.pdf_PHP从入门到精通(第3版) PDF扫描版[45MB]
  2. 安装 | OpenCV4.2.0 + VS2017安装教程
  3. 从服务器检索时出错dfdferh01_大数据实战项目之海量人脸特征检索解决方案演进...
  4. 求对一组数据进行排名的算法
  5. task_struct结构体查找
  6. 好程序员web前端分享JS引擎的执行机制
  7. android方向触摸事件,Android触摸事件传递机制,这一篇就够了
  8. TeamViewer 收不到邮件该怎么办?
  9. 计算机如何设置多用户,windows7远程桌面多用户连接怎么设置_win7远程桌面如何设置多人登录-win7之家...
  10. 【JAVA SE基础篇】24.包的机制和import详解
  11. ShaderForge-霓虹漩涡
  12. java把一个对象赋值给另一个对象
  13. 运算放大器自激振荡仿真
  14. 冰羚-README.md翻译
  15. 【Mongodb和Solr】Mongodb和solr整合
  16. python抓取微博数据_Python爬虫实现半自动发微博
  17. C# 获取字符串字节长度
  18. Xilinx XCKU115 FPGA 加速卡
  19. 计算机知识竞赛赛制,知识竞赛方案及规则
  20. Windows映射linux磁盘驱动器

热门文章

  1. [新活动] 2015年推广返利活动
  2. RAID重组和数据库数据的修复与验证
  3. Linux文件管理以及一些常用的基础命令解析
  4. Navicat for Oracle实现连接Oracle
  5. Windows server 2012 活动目录回收站
  6. PAT甲级1114 Family Property:[C++题解]结构体、并查集、测试点3、4、5有问题的进来!!
  7. Leetcode1712. 将数组分成三个子数组的方案数[C++题解]:双指针和前缀和
  8. golang python性能_Golang构建Python高性能模块
  9. 服务器安装系统时无法创建新的分区,重装系统出现“我们无法创建新的分区,也找不到现有的分区”...
  10. python导入mongo数据库文件