# Upright-Net

文章出处：<https://airs.cuhk.edu.cn/article/838>

{% file src="<https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FGwv1b8ifukeeMswgs5T2%2FPang_Upright-Net_Learning_Upright_Orientation_for_3D_Point_Cloud_CVPR_2022_paper.pdf?alt=media&token=a5d56543-877f-47f2-bbe7-454e47bd3eea>" %}
点击下载原文
{% endfile %}

## 思维导图

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FbqEofTQ8WvlfQdnQJynp%2FUprightNet%E8%AE%BA%E6%96%87%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE.png?alt=media&#x26;token=36dedfe7-5f3e-4108-a0db-e8a39107c297" alt=""><figcaption></figcaption></figure>

## 原文阅读

### 0.摘要

这篇论文提出了一种名为Upright-Net的基于深度学习的方法，用于估计3D点云的竖直方向。通过将物体的自然基底视为通用的功能结构，研究者们将竖直方向估计问题表述为一个分类模型。这个方法有三个优势：

1. 将连续的方向估计任务表述为离散的分类任务，同时保留了解空间的连续性。
2. 自动学习定义一般3D模型自然基底的综合标准，即使几何形状不对称。
3. 学到的方向感知特征在下游任务中表现良好。

实验结果表明，Upright-Net在方向估计方面优于先前的方法，并具有显著的泛化能力和迁移能力。

**自然基底：**

自然基底（natural base）是指一个物体在现实世界中最常见和最稳定的姿态，或者是物体所依赖的支撑面。在这个姿态下，物体通常遵循一系列特定规则，例如物理定律、功能相关的几何特性、语义线索等。这些规则使得物体能够在现实世界中保持稳定，并实现其预期的功能。

例如，椅子的自然基底是它的腿，因为它们使椅子保持稳定并支撑着坐在上面的人；杯子的自然基底是它的底部，因为这样它才能稳定地站立并容纳液体。在Upright-Net论文中，作者将物体的自然基底视为一个通用的功能结构，以此来学习和估计3D点云的竖直方向。

### 1.引言

这篇论文介绍了一种名为Upright-Net的深度学习方法，用于估计3D点云数据中物体的竖直方向。通常情况下，物体的竖直方向与其在现实世界中最常见的姿态有关。估计物体的竖直方向对于3D模型分析和许多计算机图形学和计算机视觉任务非常重要。然而，这个问题具有挑战性，因为涉及到多个因素，如物理定律、几何特性、功能性等。为了解决这个问题，作者将连续方向问题转换为离散分类问题，并利用深度学习技术提取物体自然基底的点。实验证明，Upright-Net的性能优于现有方法，并具有良好的泛化能力和迁移能力。

在引言中，提及了一些与Upright-Net相关的其他研究工作，这些工作关注了估计物体竖直方向的问题，并对本文的论述具有一定的参考意义。

1. 论文\[5]：这篇论文尝试基于一系列手工制作的几何特征来推断3D模型的竖直方向。然而，由于特征之间的偏差或冲突，它在某些模型上失败了。这意味着我们需要一种更自动化、更智能的方法来处理这个问题。
2. PointNet中的T-Net\[15]和ITN\[26]：这两个方法都试图学习相对于几何变换不变或等变的特征。但是，在姿态变换的弱监督下，它们对性能的贡献有限。这表明，我们需要一种更强大的方法来学习姿态变换，以改善性能。
3. 分治方案\[12]：这个方法首先对物体进行分类，然后通过回归模型估计方向。尽管它取得了可接受的结果，但为不同类别训练单独的回归模型并非理想解决方案。这提示我们寻求一种更通用、更简洁的方法。

### 2.相关工作

本节总结了与本文相关的研究工作，主要包括两部分：图像方向和3D模型方向。

#### 2.1 图像方向

对于计算机视觉任务（如图像分类、物体检测和人脸识别等），物体在图像上的方向变化会导致外观变化，增加构建特征描述符的难度。传统的解决方法是针对不同方向训练多个分类器，但这种方法不适用于广泛的应用场景。深度学习方法的发展推动了新的解决方案，如论文\[6]提出的生成定向建议（OOPs）的方法，以减小物体不同方向引起的检测误差。另一种方法是通过不同角度旋转训练图像来过拟合训练数据集。然而，物体方向是一个连续变量，过拟合训练数据集会增加训练负担。

#### 2.2 3D模型方向

针对3D模型的竖直方向估计，方法可以分为基于几何处理的方法和基于数据驱动学习的方法。基于几何处理的方法，如主成分分析（PCA），通常受到手工制作特征的冲突或不完整性的限制，对一般模型的适用性较低。论文\[9]和\[22]分别提出了基于矩阵秩最小化的方法，但它们在非对称3D对象上也存在问题。Trimesh\[3]方法同样不适用于我们的问题，因为它没有考虑语义和功能信息。

基于数据驱动学习的方法能更好地处理一般物体。论文\[5]和\[11]通过聚类3D模型的简化凸包上的面片来提取候选基底，并使用一系列手工制作特征进行评估。然而，这些方法难以处理自然物体，因为很难通过手工特征定义一个通用的3D模型竖直规则。深度学习的出现促使了许多尝试，如论文\[12]使用3D卷积网络进行回归模型预测，论文\[14]将连续方向估计任务转换为一组离散方向估计任务。然而，这些方法在稠密采样时具有较低的区分度，在稀疏采样时估计较为粗糙。此外，在机器人操控领域，竖直方向估计也引起了关注，用于指导机器（代理）根据当前观察逐步将3D模型调整为竖直方向。

在我们的工作中，我们利用了一个共同的功能结构，即模型的自然基底，将连续方向任务转换为一个分类（分割）问题以提取自然基底。基于这样的方案，我们简化了方向估计问题，但保留了解空间的连续性，即竖直方向。这种方法充分利用了数据驱动深度学习方法的优势，能够自动学习自然基底的综合特征，提高了竖直方向估计的准确性和泛化能力。

### 3.问题陈述

为了实现通用3D模型竖直方向估计的连续解决方案，我们将连续方向问题表述为一个精细的分类任务，分为两个步骤。

首先，它提取3D模型上形成自然基底的点。

其次，我们用这些点拟合一个平面，并用指向模型质心的平面法向量定义模型的竖直方向。

给定一个点云

<img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FInqG2MTtR5O9N7OET63X%2Fimage.png?alt=media&#x26;token=9a94ce6b-2c7a-43dc-8ac4-e5c3d54dccb4" alt="" data-size="original">

我们首先为每个点估计一个二进制标签，然后将自然基底上的支持点识别为具有正标签的点云的子集：

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FjbCyeI9Z0VkTzCQTbkVm%2Fimage.png?alt=media&#x26;token=a8261460-53cd-4adf-964d-249a9262f401" alt=""><figcaption></figcaption></figure>

&#x20;其中yˆi是点pi的输出标签，m表示预测支持点的数量。

然后，我们使用RANSAC算法将支持点集S拟合成一个自然基底，然后推断物体的竖直方向。

为了编码定义自然基底的复杂规则，我们基于EdgeConv \[23]和Attention机制\[20]设计了一种新的网络架构，名为Upright-Net。这种架构直接将无组织点集作为输入，并为任何通用3D点云模型预测自然基底。

<details>

<summary>什么是RANSAC算法</summary>

~~这是从一堆点拟合出一个形状的算法~~

RANSAC（Random Sample Consensus，随机抽样一致性）算法是一种迭代的模型拟合方法，主要用于从包含噪声和离群点的数据集中估计模型参数。RANSAC 算法在计算机视觉和机器学习领域被广泛应用，如拟合直线、平面、圆等几何模型。

RANSAC算法的基本思想是：

1. 从数据集中随机选择一组最小子集，这组子集包含了拟合模型所需的最少数据点；
2. 使用这组最小子集拟合模型；
3. 用拟合出的模型计算数据集中所有数据点的误差，根据误差阈值划分内点和离群点；
4. 如果内点的数量足够多，认为该模型是有效的；
5. 重复上述过程一定次数，选择具有最多内点的模型作为最终结果。

RANSAC算法的优点是它对噪声和离群点具有很好的鲁棒性。然而，它需要确定合适的误差阈值和迭代次数，并且不能保证找到全局最优解。

</details>

### 4.Upright-Net

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FflKdd0E0e6YjU0XMEPB6%2Fimage.png?alt=media&#x26;token=ecdabdf3-b2dd-4921-80a7-57c637d46a29" alt=""><figcaption><p>网络结构</p></figcaption></figure>

#### 4.1 点云特征编码

我们的点云特征编码应满足以下要求：

1\) 捕捉几何特征和语义信息；\
2\) 描述有助于学习任务的感兴趣区域。

为了满足这些需求，Upright-Net首先应用经典的EdgeConvLayer，它逐层学习局部几何特征并将点分组到语义空间中，然后通过堆叠的masked Attention层来提取核心信息，并使用MLP层重新映射特征空间以进行更好的探索。我们将介绍以下三个使用的模块。

**MLP（多层感知器）层**

我们应用MLP进行特征嵌入，它对每个点特征执行1×1卷积，后面跟一个批量归一化层和激活函数：

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FFdhmNIq9DhJa8RIaziIM%2Fimage.png?alt=media&#x26;token=0db7ae29-922d-41ab-8ac3-5022abb0a888" alt=""><figcaption></figcaption></figure>

其中σ表示激活函数，BN表示批量归一化，conv表示卷积，下标表示滤波器大小。

\
**EdgeConv层**

EdgeConv显式地构建一个局部图并学习局部上下文的嵌入。对于每个具有df维度的点特征fi，计算fi的KNN（K近邻）查询作为Nk(fi) = {fi,j |j = 1, ..., k} ∈ R k×df，并然后在这个点子集上构建一个径向局部有向图，边向量从fij指向fi。结合全局信息和局部上下文的边特征eij计算为：

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2F5ZpThG9fUEwoTeqFZD16%2Fimage.png?alt=media&#x26;token=d3b6ba53-8c72-4c6e-b962-c5c4a96774cc" alt=""><figcaption></figcaption></figure>

其中\[·，·]表示点特征和边向量的连接。给定边特征eij，我们首先通过共享的MLP层将其映射到高维特征，然后应用最大池化在局部图上聚合边特征。具体来说，我们的EdgeConv层实现为

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2Fe4yNx1waBSodzeWdhaBD%2Fimage.png?alt=media&#x26;token=bffe562c-edc6-4133-bbc5-5719afef1e5b" alt=""><figcaption></figcaption></figure>

注意，fi表示欧几里得空间中的点特征或新嵌入空间中的点特征。

> 我的理解：在点云中，对于每个点特征fi，我们使用K近邻（KNN）算法找到它附近的k个最近邻点。将这个点与其附近的点相连接形成局部图。图中的每一条边（连接）表示一个特征，整个图的所有边构成了局部特征。
>
> 接下来，对于这些局部特征，我们使用共享的多层感知机（MLP）进行特征映射，将它们映射到高维特征空间。然后，我们对这些高维特征进行最大池化处理，以便在局部图上聚合边特征。这样，我们就得到了一个局部特征的新表示，它捕捉了点云数据中的局部结构信息。这对于理解和处理这种不规则数据类型至关重要。

**注意力机制（Attention Layer）**

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FPIGwOwjZNmHO5TZrzkt6%2Fimage.png?alt=media&#x26;token=b736f80b-041e-415a-97fc-a254d9562237" alt=""><figcaption></figcaption></figure>

通常用于在特征映射中提取核心信息。在Upright-Net中，我们使用**缩放点积注意力**（Scaled Dot-Product Attention）\[20]来识别点云上不同区域的重要性。

假设层输入是一个df维特征矩阵，表示为![](https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FOPSvx30pL7ODa1alZZxr%2Fimage.png?alt=media\&token=22376d43-3248-4fc8-822e-279cf401001f)我们首先分别通过三个独立的MLP层获得查询矩阵Q、键矩阵K和值矩阵V： Q = MLP\_q(F), K = MLP\_k(F), V = MLP\_v(F)。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2F0zoGIYmZHNIlR2VB0Yf8%2Fimage.png?alt=media&#x26;token=52fc6725-f767-49d5-9fda-1c789a2231c3" alt=""><figcaption></figcaption></figure>

然后，我们计算Q和转置矩阵K的点积，将其除以√dk，并在结果上应用softmax函数，以获得表示成对点特征之间的相互依赖性的权重矩阵W

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2Fka0dd1pLT5YUJrJ5Mvd1%2Fimage.png?alt=media&#x26;token=ac2a282e-6dc6-451d-a79e-5472fe0050a0" alt=""><figcaption></figcaption></figure>

&#x20;![](https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FTAsTrGN8pWkJXvojtRH4%2Fimage.png?alt=media\&token=a5202ecd-c01c-4bf7-b057-21d70d1b8d26)

利用这个权重矩阵，我们计算加权特征矩阵为<img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FCDIDowNQZiBLEDx4O5tl%2Fimage.png?alt=media&#x26;token=ce965c41-aaa1-4a61-a6fb-112f49cda3db" alt="" data-size="line">，其中

![](https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FvsZ5at24HiIdaKXSWAQE%2Fimage.png?alt=media\&token=9dea9dbf-48ae-4147-b930-c3b06100ecaf)

通过额外地通过一个MLP层重新映射加权特征并使用残差连接来简化训练过程，输出矩阵计算为：&#x20;

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FSILeDYRAdtdjp2TKek7r%2Fimage.png?alt=media&#x26;token=a62c89d2-36d9-48cf-846c-ade90ad7bdbb" alt=""><figcaption></figcaption></figure>

这里，\[ · ]表示将特征向量打包到特征矩阵的操作。注意力层通过关注点云上不同区域的重要性来提取和利用更有意义的信息。

#### 4.2 网络架构

Upright-Net接收点云作为输入，并为每个点预测一个二进制标签，表示它是否是一个支持点。

架构如图1所示

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FflKdd0E0e6YjU0XMEPB6%2Fimage.png?alt=media&#x26;token=ecdabdf3-b2dd-4921-80a7-57c637d46a29" alt=""><figcaption></figcaption></figure>

首先应用三个EdgeConv层来扩展特征维度，并逐层在欧几里得和语义空间中对点进行分组。

然后使用四个堆叠的注意力层来强调核心信息。通过连接来自不同注意力层的层次特征，再经过一个MLP层和最大池化操作，我们获得点云的全局特征。

之后，该架构通过连接来自不同层的层次特征，共同考虑低级特征、加权特征和全局特征，以获得更好的嵌入并防止网络训练中的梯度消失问题。

然后，根据预测出的支持点，考虑到估计器的抗离群点性能，我们应用随机样本一致性（RANSAC）算法在点上拟合一个平面模型：![](https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FUox8jke8xXGZpjDau0E3%2Fimage.png?alt=media\&token=02c875d5-d451-4be6-a982-ea646e218f9d)

因此，支持平面（自然基底所在的位置）由系数向量<img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2Fki6CqFyrSDzDKiNv1efS%2Fimage.png?alt=media&#x26;token=db9d5195-2f5e-4d49-9d43-88bf312bf868" alt="" data-size="line">确定，其中aˆ表示平面的单位法向量，dˆ表示原点到平面的距离。然后，通过指向模型质心的方向定义正向朝向oˆ = ±aˆ。在极少数情况下，预测支持点的数量少于3个，那么正向朝向将计算为从预测点的质心开始指向点云质心的矢量的方向。

#### 4.3 损失函数

我们的损失函数包括三个部分：二进制交叉熵、拟合残差和稳定性，即

![](https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2F7z4mEV1n7GPpKQzE8yui%2Fimage.png?alt=media\&token=452df968-e010-48b2-bd9c-9e94f8513c4d)

其中α1和α2是超参数，实验上设置为α1 = 0.1和α2 = 1。在这一部分，我们详细介绍每个部分的公式。

**二进制交叉熵损失**

二进制交叉熵项LBCE用于鼓励预测的点标签ŷi与地面真实标签yi匹配：&#x20;

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FxN6cLh3Fjr4NNRmWGtLq%2Fimage.png?alt=media&#x26;token=db06d3e9-ac9e-44a3-9b46-770daf7804b9" alt=""><figcaption><p>二进制交叉熵损失</p></figcaption></figure>

其中n是点云中点的数量。与其他两个术语相比，二进制交叉熵损失在训练过程中提供直接和强烈的反馈，并允许架构实现快速收敛率。

**拟合残差损失**

点状二进制交叉熵损失对错误预测施加相等的惩罚，无论它距离自然基底远还是近。

在我们的案例中，这显然是不合理的，因为具有较小位移的预测可能不会颠覆正向方向估计的结果，但具有较大位移的预测可能可以。\
因此，拟合残差项用于引入灵活的惩罚，**鼓励自然基底附近的正预测，同时抑制远离自然基底的预测。**

该项计算为正预测与Groundtrue自然基底之间的平均距离：

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FZ2f0kQqeslHoxneXpk3k%2Fimage.png?alt=media&#x26;token=507bd37c-ced2-437d-8462-5eebaf0799de" alt=""><figcaption></figcaption></figure>

其中pi是预测的支持点，β = (a, d)是地面真实支持平面的拟合系数向量表示。在预测支持点的数量小于3的情况下，拟合残差损失设置为我们训练中的最大距离2，这大于标准化点云的最大尺寸。

**稳定性损失**

通常认为，物体的静态稳定性与其位于自然基底上方的质量比例有关，例如，对于一个大致对称的形状，其质心在自然基底上的投影应接近自然基底的中心，而对于一个不对称的形状，情况则相反。然而，只要物体质心沿着正向方向矢量投影在物体的自然基底上，大多数立式物体在设计上就具有相当的稳定性，能抵抗较小的扰动力。因此，为了涵盖一般形状的规则，我们简单地强制预测的自然基底的质量分布与地面真实自然基底的质量分布保持一致。因此，我们通过简单的几何估计来定义稳定性项：

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2F5PdDgkwl2vg0D1kSRPWD%2Fimage.png?alt=media&#x26;token=bc835b1c-8b3c-479b-90d1-ca8768c99f68" alt=""><figcaption></figcaption></figure>

其中，通过将预测或地面真实支持点投影到它们的拟合平面上，ĉ 或 c 被计算为由投影确定的凸包的中心。

在这个损失函数中，我们同时考虑了二元交叉熵损失、拟合残差损失和稳定性损失。这三个损失项共同作用，以达到优化模型性能的目的。通过将这些损失结合在一起，我们可以在训练过程中平衡各种影响因素，进而使得模型更好地学习支持点的预测以及生成一个更准确的立式方向估计。

> 凸包（Convex Hull）是指对于一个给定的点集，包含所有这些点的最小凸多边形。换句话说，凸包是一个点集的外围，所有的点都位于凸包内部或其边界上。在二维平面上，凸包可以看作是一个橡皮筋围绕在所有点周围所形成的形状。在更高维度的空间中，概念类似，但形状可能更难以直观表示。
>
> 在这个算法中，提到的凸包是将预测的支持点和地面真实支持点投影到它们各自的拟合平面上后得到的。投影本质上是将点从三维空间映射到二维平面上，同时保持点之间的相对位置。计算凸包的中心有助于评估预测的支持面与真实支持面的稳定性。通过计算预测支持面和真实支持面的质心差值，我们可以获得稳定性损失，从而优化模型性能。

### 5.实验&#x20;

在本节中，我们首先介绍在实验中使用的数据集和网络实现细节（第5.1节）。然后，我们提供详细的实验来评估网络在垂直方向估计方面的性能（第5.2节）。之后，我们分别验证网络的泛化能力（第5.3节）和迁移能力（第5.4节）。最后，通过消融研究验证网络设计（第5.5节）。

#### 5.1 数据集与实现细节

为了训练UprightNet，需要一个带有标注支撑点的大型数据集。幸运的是，我们发现ModelNet40 \[24] 和ShapeNet \[25] 数据集中的大多数物体都以规范坐标系的直立姿势放置，即+y轴指向垂直方向。

因此，我们首先从ModelNet40 \[24]中选择15个具有直立站姿的常见物体类别来收集数据集，每个类别保留100个形状，除了Bowl只有80个，如图3所示的示例形状。然后对归一化的模型，我们将y坐标小于阈值（0.05）的点标记为支持点。为了获得一个涵盖各种可能姿势的数据集，我们将每个模型旋转100次，旋转角度由均匀随机采样得到。最终，我们生成了一个最多包含148,000个模型的数据集（1,480个形状×100个旋转），在论文中称为UprightNet15，其中15表示类别数目。我们将数据划分为训练集和测试集，按3-1的比例划分。此外，通过应用类似的标签和数据增强方法，我们从ShapeNet \[25] 数据集中选择5个未见类别中的20个形状，形成一个名为UprightNet5的小数据集，以验证网络的泛化能力，并使用RobustPointSet \[18] 的Original和Rotation集来测试网络的迁移能力。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FulWcEaHprNvZctmYdItd%2Fimage.png?alt=media&#x26;token=57963b86-177a-4726-b96a-2324a2218f6a" alt=""><figcaption><p>图3</p></figcaption></figure>

Upright-Net是用PyTorch实现的，并在Nvidia RTX 2080 Ti GPU上进行训练。在训练阶段，我们使用Adam优化器，学习率为10^-3，批大小为64。动量和权重衰减分别设置为0.9和10^-4，共训练50个epoch。

#### 5.2 垂直方向估计性能评估

我们通过两个性能测量指标对Upright-Net进行定量评估。一个是平均误差（ME），它测量估计的垂直方向 oˆi 和其真实值 oi 之间的平均角度偏差：

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FtTcPupEkLUOC3J4aF9KX%2Fimage.png?alt=media&#x26;token=9f7bf214-e417-4f75-ad4b-04050edef96a" alt=""><figcaption></figcaption></figure>

其中 ⟨·, ·⟩ 表示内积运算，N 表示测试模型的数量，oˆi 和 oi 是单位向量。我们还通过计算角度偏差小于给定角度 τ 的模型比例来评估垂直方向估计的准确性：

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FDciMFJRRwzqfpbfs8E1D%2Fimage.png?alt=media&#x26;token=e365dea0-d20c-4c66-ba6b-90c2afdee642" alt=""><figcaption></figcaption></figure>

在我们的实验中，τ 被设置为 10°。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2F3YDZVVafdNimDDHqX1Ae%2Fimage.png?alt=media&#x26;token=012470d4-1d02-4758-a842-db4d82c1a7f6" alt=""><figcaption><p>将 Upright-Net 与 ConvNets [12] 在垂直方向估计任务上进行比较。</p></figcaption></figure>

在表 1 中，我们的网络明显优于采用分而治之策略的 ConvNets。这个结果有两个可能的原因：首先，ConvNets 将垂直方向问题建模为回归问题，尽管针对不同类别进行训练，但在有限的离散旋转样本上训练是很困难的；其次，分类网络的错误预测会直接将数据输入到错误的回归网络中，可能导致偏离方向预测。在我们的实验中，ConvNets 的总体分类准确率达到了 83.89%。另一方面，Upright-Net 采用端到端学习并将连续方向问题建模为分类问题，这被证明是一个更容易训练的任务。

Upright-Net 的性能可能比表 1 中的统计数据更好。我们通过逐渐增加角度阈值 τ 并分析它们方向预测的误差分布来比较我们的网络和 ConvNets 的准确性。

如图 所示，对于 Upright-Net，其准确性在 τ = 10° 时达到 90%，然后保持稳定并在 τ = 180° 附近提升，这表明误差主要是由倒立预测引起的，如图 5 所示，其 ME 也因此而增加。另一方面，对于基于回归的 ConvNets，误差预测更随机分布，与图 5 中的结果相比，这在感知上难以解释。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FZUMaklRiEHQhwryTr9MM%2Fimage.png?alt=media&#x26;token=a0e4e708-843c-4c32-baf1-5f1531010a29" alt=""><figcaption><p>错误方向预测的示例模型。蓝色表示估计的支撑平面，红色表示真实值。如我们所见，倒立错误预测可能是由于模型上的干扰平面结构所导致的。</p></figcaption></figure>

> 在这个例子中，错误方向预测可能是因为模型中存在干扰平面结构。这些结构可能会导致 Upright-Net 错误地将这些结构识别为支撑平面。因此，这些模型的预测方向可能会出现错误。这种情况说明，在一些复杂模型中，准确识别支撑平面仍然具有挑战性。为了改进这些错误预测，可以考虑进一步优化网络结构，或者尝试集成更多上下文信息来辅助识别支撑平面。

#### 5.3 泛化能力验证

为了验证网络的泛化能力，作者在UprightNet5数据集上测试了经过训练的Upright-Net和ConvNets。UprightNet5数据集包含2000个模型（20个形状×5个类别×100次旋转），详情可参见5.1节。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2Fr4NHz0POWpiXk9m4CSro%2Fimage.png?alt=media&#x26;token=f82ccec3-7635-48c4-b304-3bb823657b6d" alt=""><figcaption><p>Upright-Net 和 ConvNets在不同类别上的泛化性能对比</p></figcaption></figure>

如表2所示，Upright-Net在所有类别上的准确率均明显高于ConvNets。Upright-Net平等地对待所有类别，通过特殊设计的损失项约束训练，学习全局和局部特征，并强调与功能相关的几何结构。因此，对于未见过的类别，Upright-Net的预测主要取决于其自然基底的几何特征，而非其语义信息。具体可参见图6中的Upright-Net可视化结果。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2Foh2HP14H9ESzSiOBNhwp%2Fimage.png?alt=media&#x26;token=6a2214b4-c812-444f-a378-9fa8690447eb" alt=""><figcaption></figcaption></figure>

另一方面，ConvNets的结果严重依赖于类别特定的系统：一个分类网络将BASKET归类为CUP，MICROPHONE归类为LAMP，POT归类为TOILET，SKATEBOARD归类为BENCH，以及TOWER归类为BOTTLE；同时还有类别特定的回归网络，在未见过的类别上明显过拟合。因此，其准确率大幅下降。

#### 5.4 迁移能力验证

作者通过在RobustPointSet数据集\[18]的下游对象分类任务上验证Upright-Net的迁移能力。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2FxHdfSx3XbMjCcmBReehl%2Fimage.png?alt=media&#x26;token=cc50a09a-1ed3-43bc-b513-df1c350eaf86" alt=""><figcaption></figcaption></figure>

如图7所示，作者使用预训练的Upright-Net编码器进行特征嵌入，然后微调MLP层以获得c个类别的分类分数。作者将自己的方法与完全监督的方法\[15,23]和自监督方法\[14]进行比较。由于之前的方法通常在原始数据集上或在小角度范围内的旋转增强数据集上进行评估，为了公平起见，作者在三个不同的设置下进行比较：

1\) 在原始RobustPointSet上训练和测试模型，表示为Org/Org；\
2\) 在原始数据集上训练模型，但在旋转增强数据集上测试它们，表示为Org/Rot；\
3\) 在旋转增强数据集上训练和测试模型，表示为Rot/Rot。

作者将RobustPointSet的每个形状旋转100次，通过均匀随机采样的角度生成旋转增强数据集。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2F8JIemkPFbjpVitTdHzxk%2Fimage.png?alt=media&#x26;token=8803b6f7-8f26-4efb-8def-ecf899e50be9" alt=""><figcaption></figcaption></figure>

表3展示了实验结果。Upright-Net在原始的RobustPointSet（Org/Org）上获得了可比的准确率，同时在旋转增强数据集（Rot/Rot）上表现出极大的优越性。这表明，与其他设计相比，我们的网络在旋转变化方面具有更强的表达能力。此外，在具有预训练编码器的情况下，Upright-Net的性能得到了提升，并在旋转增强数据集（Org/Rot，Rot/Rot）上明显优于其他方法。因此，我们可以得出结论：我们的网络能够学习3D模型的方向感知特征，这提高了其在下游任务中的迁移能力。

#### 5.5 消融研究

作者首先验证了Upright-Net主干的有效性，然后分析了损失函数的超参数，并可视化了Upright-Net内部学习到的特征图。

支持点分割主干的比较。作者将Upright-Net与PointNet\[15]和DGCNN\[23]进行比较以进行支持点分割。实验结果表明，Upright-Net获得了最低的ME（平均误差）和最高的准确率，见表4。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2Ff0t6etHcjPENulmou8H6%2Fimage.png?alt=media&#x26;token=ca0a139d-ede6-4c12-8f44-21e4a89182f0" alt=""><figcaption></figcaption></figure>

作者认为这是因为其EdgeConv层提取了局部特征，而注意力机制强调了功能相关的几何特征。此外，将不同层次的特征连接在一起，使网络能够考虑全局、局部和加权特征以获得更具信息量的嵌入。

超参数调整。通过使用不同的参数设置运行整个训练过程并选择最佳性能设置，调整损失函数中的超参数α1和α2。表5表明，使用α1 = 1和α2 = 0.1训练的Upright-Net在测试集上表现最好，但作者发现它在未见类别上表现较差。因此，作者在模型中设置α1 = 0.1和α2 = 1，以在估计性能和泛化能力之间取得合理的折衷。

<figure><img src="https://3522718595-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD1M64ktNsEA8xmIL6eKj%2Fuploads%2F5PDB0v5OX6Cn0ZE1yiRU%2Fimage.png?alt=media&#x26;token=72ca7d1c-2e09-4712-9302-2b985e6ae67c" alt=""><figcaption></figcaption></figure>

可视化。作者使用热图表示特征平均值，可视化了Upright-Net最后一个MLP层之前的连接特征。如图8所示，接近自然基底的点获得了较高的响应，这符合预期，同时靠近垂直轴的点也获得了较高的响应，这是一个可解释的积极现象，因为它代表了对稳定性项的强烈响应。

### 6.总结与展望

在本文中，我们将连续的垂直方向问题表述为一个分类模型，同时仍保留解空间的连续性。为了编码定义物体自然基底的复杂规则，我们提出了一种基于EdgeConvs和注意力机制的新型简单网络结构——Upright-Net，并受到特殊设计的损失函数的约束。实验证明，我们的网络在方向估计和下游分类任务上均优于之前的方法。此外，我们可以轻松地将我们的框架扩展到多类设置中，以应对具有多个自然基底的物体。然而，在极少数倒置预测的情况下，可能表明我们的模型没有获得足够的语义线索，以应对具有干扰平面结构的实例，因此，在三个方面的改进上进一步研究平衡语义和几何特征是有价值的：平衡训练数据，捕获更多语义的结构，提供更强线索的损失。另一个局限是我们的数据集由完整形状组成，进一步实验局部点云将是有趣且有意义的。为了鼓励未来的工作，我们在我们的网站上发布了我们的数据集。

<https://airs.cuhk.edu.cn/en/article/798>\\
