论文阅读 - Non-Local Spatial Propagation Network for Depth Completion

文章目录

  • 1 概述
  • 2 模型说明
    • 2.1 局部SPN
    • 2.2 非局部SPN
    • 2.3 结合置信度的亲和力学习
      • 2.3.1 传统正则化
      • 2.3.2 置信度引导的affinity正则化
  • 3 效果
    • 3.1 NYU Depth V2
    • 3.2 KITTI Depth Completion
  • 参考资料

1 概述

本文提出了一种非局部的空间传播网络用于深度图补全,简称为NLSPN。
(1)为什么需要深度图补全?
在AR、无人机控制、自动驾驶和运动规划等应用当中,需要知道物体的稠密深度信息。现有的大部分深度传感器,如雷达、RGB-D相机等,可以提供RGB图片和准确的稀疏深度图,未提供的部分需要通过算法进行补全。
这种通过稀疏的深度图和其他信息(如RGB信息)对深度图进行补全的算法称为深度补全算法

(2)现有的技术有哪些缺陷?
在这篇论文出现之前的深度补全算法中,直接深度补全算法采用RGB或RGB-D图像,并使用深度卷积神经网络(CNN)直接预测稠密深度。与传统的算法相比,这些直接预测算法表现出更好的性能,然而,它们仍然会在深度边界附近生成模糊的深度图
因此,最近基于亲和力(affinity)的空间传播方法缓解了这种现象。通过学习局部邻域的亲和力并迭代地细化深度预测,使最终的稠密深度变得更加准确。尽管如此,以前的传播网络有一个明确的限制,即它们具有用于传播的固定局部邻域配置。固定局部邻居通常具有不相关的信息,不应与参考信息混合,尤其是在深度边界上。因此,它们在深度补全任务中仍然存在混合深度问题。
这里混合深度的意思就是在预测时物体边界部分的深度将前景与背景的深度插值了,从点云图上看的话,就会看到如同瀑布一般的噪声。

(3)本文提出的方法有什么创新点?
为了解决混合深度的问题,本文提出了一种非局部空间传播网络(NLSPN),该网络预测每个像素的非局部邻居(即信息应该来自哪里)和空间变化的亲和力(即应该传播多少信息)。通过放宽固定局部邻域配置,所提出的网络可以避免与其他相邻对象关联的不相关局部邻域。因此,本文的方法本质上对混合深度问题具有鲁棒性。也就是边界部分的前景点只参考位于前景的邻域点,边界部分的背景点只参考位于背景的领域点。
此外,基于对传统亲和力归一化方案的分析,提出了一种可学习的亲和力归一化方法,该方法具有更大的亲和力组合表示能力。它支持更准确的亲和力估计,从而提高了非本地邻居之间的传播。为了进一步提高对输入异常值和不准确的初始预测的鲁棒性,本文预测初始稠密深度的置信度,并将其纳入亲和归一化中,以最小化不可靠深度值的传播。
这里的初始稠密深度是网络根据RGB图和稀疏深度图预测的稠密深度图,后面会具体说明。
NYU Depth V2数据集上效果示例图

图1-1 NYU Depth V2数据集上效果示例图

图1-1中,(a)表示NLSPN预测的某几个像素的邻域示例,可以看出范围很广,且都在同一个物体上,(b)表示网络预测的初始稠密深度图,©表示使用局部空间传播修正(b)的结果,(d)表示使用非局部空间传播修正(b)的结果,可以看出边界部分明显优于©,(e)是真值。

2 模型说明

2.1 局部SPN

SPN的目标是通过传播具有相应亲和力的邻居值(即相似性)来估计缺失值并细化置信度低的值。SPN已被用作各种计算机视觉应用中的关键模块之一。SPN非常适用于深度补全任务,并已经证明了与直接回归算法相比,具有更优越的效果。
本节首先简要回顾局部SPN及其局限性。
X = ( x m , n ) ∈ R M × N X=(x_{m,n}) \in R^{M \times N} X=(xm,n)RM×N表示被SPN更新的2D深度图, x m , n x_{m,n} xm,n表示在像素 ( m , n ) (m,n) (m,n)位置的值。
在局部SPN中,对于每个像素点 x m , n x_{m,n} xm,n在时间步 t t t的迭代方式如式2-1所示。

x m , n t = w m , n c x m , n t − 1 + ∑ ( i , j ) ∈ N m , n w m , n i , j x i , j t − 1 (2-1) x_{m,n}^t = w_{m,n}^c x_{m,n}^{t-1} + \sum_{(i, j) \in N_{m,n}} w_{m,n}^{i,j} x_{i,j}^{t-1} \tag{2-1} xm,nt=wm,ncxm,nt1+(i,j)Nm,nwm,ni,jxi,jt1(2-1)

其中, ( m , n ) (m,n) (m,n)表示当前点, ( i , j ) (i,j) (i,j)表示邻域点, w m , n c w_{m,n}^c wm,nc表示当前点的亲和力, w m , n i , j w_{m,n}^{i,j} wm,ni,j表示邻域点和当前点之间的亲和力,也就是相似性。
式2-1右侧的第一项为当前点会被保留多少,右侧为邻域传播多少,当前点权重和邻域点权重的关系如式2-2所示。

w m , n c = 1 − ∑ ( i , j ) ∈ N m , n w m , n i , j (2-2) w_{m,n}^c = 1 - \sum_{(i, j) \in N_{m,n}} w_{m,n}^{i,j} \tag{2-2} wm,nc=1(i,j)Nm,nwm,ni,j(2-2)

原始的SPN的每个方向是三路的,一共上下左右四个方向,更新是有顺序的,因此无法对所有方向同时更新,其top-to-bottom方向的邻域点表示为式2-3,其他方向不赘述。

N m , n S = { x m + p , n + q ∣ p = − 1 , q ∈ { − 1 , 0 , 1 } } (2-3) N_{m,n}^S = \{ x_{m+p, n+q} | p=-1,q\in \{-1,0,1\} \} \tag{2-3} Nm,nS={xm+p,n+qp=1,q{1,0,1}}(2-3)

CSPN是对于SPN的改进,可以同时对四个方向进行传播,更加高效,其邻域点表示为式2-4。

N m , n C S = { x m + p , n + q ∣ p = ∈ { − 1 , 0 , 1 } , q ∈ { − 1 , 0 , 1 } , ( p , q ) ≠ ( 0 , 0 ) } (2-4) N_{m,n}^{CS} = \{ x_{m+p, n+q} | p=\in \{-1,0,1\},q\in \{-1,0,1\}, (p,q) \neq (0,0) \} \tag{2-4} Nm,nCS={xm+p,n+qp=∈{1,0,1},q{1,0,1},(p,q)=(0,0)}(2-4)

不同SPN可视化示意图如图2-1所示。
不同SPN可视化示意图

图2-1 不同SPN可视化示意图

从图2-1(e)和(f)不难看出,对于物体的边界部分,固定的SPN会将两个物体的深度混合计算,也就是会产生混合深度问题,而NLSPN只对同一个物体的深度混合计算。

2.2 非局部SPN

固定的局部邻域配置忽略了局部区域的物体/深度分布,因此会产生将前景和背景深度值混淆的深度值。虽然预测得到的亲和力大小可以适当缓解不相关深度值之间深度混合的问题,但是无法避免错误的预测,还是会使用不合适的邻域点。
NLSPN通过预测邻域点来解决上述问题,预测邻域点用到了较大范围的颜色和深度信息,如式2-5所示,需要注意的是p和q是实数,也就是非局部邻域可以是亚像素精度的。亚像素精度也就意味着坐标是分数坐标,为了更好地将分数坐标纳入训练,在传播过程中采用了可微采样。

N m , n N L = { x m + p , n + q ∣ ( p , q ) ∈ f ϕ ( I , D , m , n ) , p , q ∈ R } (2-5) N_{m,n}^{NL} = \{ x_{m+p, n+q} | (p,q) \in f_{\phi}(I, D, m, n), p, q \in R \} \tag{2-5} Nm,nNL={xm+p,n+q(p,q)fϕ(I,D,m,n),p,qR}(2-5)

其中, I I I是RGB图像, D D D是稀疏深度图, f ϕ ( ⋅ ) f_{\phi}(\cdot) fϕ()表示非局部邻域点预测网络,为每个像素点预测 K K K个邻域。

网络为encoder-decoder结构,预测初始深度图、置信度图、非局部邻域点,邻域点的原始亲和力。该网络的encoder-decoder结构建立在残差网络的基础上,从RGB和稀疏深度图像中提取高级特征。此外,采用encoder-decoder特征连接策略来同时利用低级特征和高级特征。
然后以迭代的方式进行非局部空间传播。整体流程如图2-2所示。

算法整体流程图

图2-2 算法整体流程图

作者注意到非局部传播(图2-2的右上角部分)可以通过可变形卷积有效地计算。因此,每次传播都需要一个简单的可变形卷积前向步骤和亲和力归一化。

训练时,损失函数使用的是 L 1 L_1 L1 L 2 L_2 L2损失,如下式2-6所示。

L r e c o n ( D g t , D p r e d ) = 1 ∣ V ∣ ∑ v ∈ V ∣ d v g t − d v p r e d ∣ ρ (2-6) L_{recon}(D^{gt}, D^{pred}) = \frac{1}{|V|} \sum_{v \in V} |d_{v}^{gt} - d_{v}^{pred}|^{\rho} \tag{2-6} Lrecon(Dgt,Dpred)=V1vVdvgtdvpredρ(2-6)

其中, D g t D^{gt} Dgt是真实深度值, D p r e d D^{pred} Dpred是深度值的预测结果, d v d_v dv表示在像素 v v v的深度值, V V V表示有真值的像素集合, ∣ V ∣ |V| V表示有真值像素的数量。当 ρ = 1 \rho = 1 ρ=1时,表示的是 L 1 L_1 L1损失,当 ρ = 2 \rho = 2 ρ=2时,表示的是 L 2 L_2 L2损失。值得注意的是,本文没有对置信度进行任何监督,因为没有置信度的真值。

2.3 结合置信度的亲和力学习

传统的基于亲和力的算法使用颜色统计或手动特征,现在发现采用深度学习有更好的效果,在这些方法中,亲和力正则化对于稳定的传播有着重要的作用。作者说明了传统的正则化方法和其局限性,并提出在归一化过程中加入初始预测的置信度,以抑制传播过程中不可靠的深度值的负面影响。

2.3.1 传统正则化

根据其他文献,传播稳定的前提是邻域权重和小于等于1。根据式2-1,这等价于 ∑ ( i , j ) ∈ N m , n ∣ w m , n i , j ∣ < 1 \sum_{(i, j) \in N_{m,n}} |w_{m,n}^{i,j}| < 1 (i,j)Nm,nwm,ni,j<1
现有的正则化方式包括以下几种:
(1)Abs-Sum
Abs-Sum计算公式如下式2-7所示。

w m , n i , j = w ^ m , n i , j / ∑ ( i , j ) ∈ N m , n ∣ w ^ m , n i , j ∣ (2-7) w_{m,n}^{i,j} = \hat{w}_{m,n}^{i,j} / \sum_{(i, j) \in N_{m,n}} |\hat{w}_{m,n}^{i,j}| \tag{2-7} wm,ni,j=w^m,ni,j/(i,j)Nm,nw^m,ni,j(2-7)

正则化亲和力的可行组合偏向于狭窄的高维空间,以两个邻域点为例, ∣ w 1 ∣ + ∣ w 2 ∣ = 1 |w_1|+|w_2| = 1 w1+w2=1,如图2-3(a)所示。

(2)Abs-Sum*
为发挥 ∣ w 1 ∣ + ∣ w 2 ∣ < 1 |w_1|+|w_2| < 1 w1+w2<1的优势,Abs-Sum*只有当 ∑ i ∣ w i ∣ > 1 \sum_{i} |w_i| > 1 iwi>1时使用式2-7。但还是有很大的概率和Abs-Sum一样,且随着邻域点 K K K的增大,越来越接近于Abs-Sum,如图2-3(b)所示。

(3)Tanh-C
一种减小亲和力偏向于狭窄高位空间的方法是限制原始亲和力值的大小,比如使用 t a n h ( ⋅ ) tanh(\cdot) tanh()限制到, [ − 1 / C , 1 / C ] [-1/C, 1/C] [1/C,1/C],如式2-8所示。

w m , n i , j = t a n h ( w ^ m , n i , j ) / C , C ≥ K (2-8) w_{m,n}^{i,j} = tanh(\hat{w}_{m,n}^{i,j}) / C, C \geq K \tag{2-8} wm,ni,j=tanh(w^m,ni,j)/C,CK(2-8)

其中, C ≥ K C \geq K CK保证了 ∑ ( i , j ) ∈ N m , n ∣ w m , n i , j ∣ < 1 \sum_{(i, j) \in N_{m,n}} |w_{m,n}^{i,j}| < 1 (i,j)Nm,nwm,ni,j<1

Tanh-C牺牲了边缘值,但使得亲和力分布更加平衡。不过 C C C的最佳值会随着训练任务的变化而变化,比如邻居数量、激活函数、数据集等,如图2-3©所示。

(4)Tanh- γ \gamma γ-Abs-Sum*
为了确定任务的最佳值 C C C,作者建议学习归一化因子和非局部亲和力,并且只在 ∑ ( i , j ) ∈ N m , n ∣ w m , n i , j ∣ > 1 \sum_{(i, j) \in N_{m,n}} |w_{m,n}^{i,j}| > 1 (i,j)Nm,nwm,ni,j>1时进行正则化,其式如式2-9所示。

w m , n i , j = t a n h ( w ^ m , n i , j ) / γ , γ m i n ≤ γ ≤ γ m a x (2-9) w_{m,n}^{i,j} = tanh(\hat{w}_{m,n}^{i,j}) / \gamma, \gamma_{min} \leq \gamma \leq \gamma_{max} \tag{2-9} wm,ni,j=tanh(w^m,ni,j)/γ,γminγγmax(2-9)

图2-3(d)是当 γ = 1.25 时的例子 \gamma=1.25时的例子 γ=1.25时的例子。与Abs−Sum∗相比,Tanh- γ \gamma γ-Abs-Sum*仍然有机会避免归一化,它允许我们探索更多样化亲和力的邻域点。

不同正则化方式示意图

图2-3 不同正则化方式示意图

2.3.2 置信度引导的affinity正则化

已有的传播框架,亲和力描述了像素之间的相关性并提供传播的指导,这是基于像素之间的相似性来做的。每个像素同等对待,认为都是可信的。但是,深度补全任务中,不同像素点加权需要考虑可信度。

本文将预测置信度图并与亲和力正则化结合,结合了置信度的Tanh- γ \gamma γ-Abs-Sum*如2-10所示。

w m , n i , j = c i , j ⋅ t a n h ( w ^ m , n i , j ) / γ (2-10) w_{m,n}^{i,j} = c^{i,j} \cdot tanh(\hat{w}_{m,n}^{i,j}) / \gamma \tag{2-10} wm,ni,j=ci,jtanh(w^m,ni,j)/γ(2-10)

其中, c i , j ∈ [ 0 , 1 ] c^{i,j} \in [0,1] ci,j[0,1]表示在像素 ( i , j ) (i,j) (i,j)处的置信度。

有无置信度传播的效果对比图

图2-4 有无置信度传播的效果对比图

3 效果

3.1 NYU Depth V2

NLSPN在NYU Depth V2数据集与其他模型的指标对比结果如下表3-1所示。

表3-1 NYU Depth V2数据集模型指标对比表

NYU Depth V2数据集模型指标对比表
图3-1是在NYU Depth V2数据集不同模型的可视化效果对比图。
NYU Depth V2数据集模型效果对比图

图3-1 NYU Depth V2数据集模型效果对比图

3.2 KITTI Depth Completion

NLSPN在KITTI Depth Completion数据集与其他模型的指标对比结果如下表3-2所示。

表3-2 KITTI Depth Completion数据集模型指标对比表

KITTI Depth Completion数据集模型指标对比表

图3-2是在KITTI Depth Completion数据集不同模型的可视化效果对比图。其中,(a)和(b)是输入,分别是RGB和稀疏深度图;©是CSPN结果;(d)是DepthNormal结果;(e)是DeepLiDAR结果;(f)是FuseNet结果;(g)是CSPN++结果;(h)是本文模型的结果。
在这里插入图片描述

图3-1 NYU Depth V2数据集模型效果对比图

参考资料

[1] Non-Local Spatial Propagation Network for Depth Completion
[2] https://github.com/zzangjinsun/NLSPN_ECCV20.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

边缘计算:重塑数字世界的未来

引言 随着物联网&#xff08;IoT&#xff09;设备的激增和5G网络的普及&#xff0c;我们正站在一个计算模式的新纪元门槛上——边缘计算。这一技术范式将数据处理和分析推向网络的边缘&#xff0c;即设备或终端&#xff0c;为实时性要求较高的应用提供了前所未有的可能性。 目…

【开源】新生报到网站 JAVA+Vue.js+SpringBoot+MySQL

本文项目编号&#xff1a; T 002 。 \color{red}{本文项目编号&#xff1a;T002。} 本文项目编号&#xff1a;T002。 目录 1 功能模块1.1 在线交流模块1.2宿舍分配模块1.3 校园概况模块1.4 专业管理模块 2 系统展示3 核心代码3.1 图表展示3.2 查询评论3.3 新增报道 4 免责声明 …

2024春节联欢晚会刘谦魔术分析

春晚已经越来越拉胯了&#xff0c;看着节目单没一个能打的&#xff0c;本来想说&#xff1a;办不起&#xff0c;就别办呗。 没想到第二天刘谦的魔术以一种很奇特的姿势火起来了&#xff0c;干脆蹭个热度&#xff0c;分析下魔术的原理。 魔术1 这个不算什么新奇的节目&#xf…

春晚后台撒贝宁意外“踩高跷”,尼格买提内增高秘密笑翻全场。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 龙年春晚无疑是观众们热议的焦点&#xff01;除了尼格买提表演…

Spring Task定时任务

目录 1、介绍 2、cron表达式 2.1、在线生成器 2.2、通配符 3、代码示例 3.1、使用步骤 3.2、 代码开发 3.3、测试 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发…

windows vs 自己编译源码 leveldb 然后使用自己编译的文件

1 准备源码文件 1.1 第一种方法 git下载源码 vs项目中git leveldb源码和git third_party googletest-CSDN博客 1.2 第二种方法 手动下载 然后把第三方的源码下载 复制到 third_party 对应的文件夹中 没有文件夹 third_party -> powershell mkdir third_party 2 编译lev…

数据库第二次实验

目录 1 实验内容 2 SQL代码及运行截图 2.1 创建表并插入数据 2.1.1 创建表 2.1.2 插入数据 2.1.3 运行截图 2.2 修改表 2.2.1 SQL代码 2.2.2 运行截图 2.3 删除操作 2.3.1 SQL代码 2.3.2 运行截图 2.4 数据库的备份 2.5 数据库的恢复 1 实验内容 实验目的&#…

SG3225EEN晶体振荡器规格书

SG3225EEN 晶振是EPSON/爱普生的一款额定频率25 MHz至500 MHz的石英晶体振荡器&#xff0c;6脚贴片&#xff0c;LV-PECL输出&#xff0c;3225封装常规有源晶振&#xff0c;具有小尺寸&#xff0c;轻薄型&#xff0c;高稳定性&#xff0c;低相位抖动&#xff0c;低电源电压&…

零基础怎么学编程,免费版中文编程工具下载及构件用法教程

零基础怎么学编程&#xff0c;免费版中文编程工具下载及构件用法教程 一、前言 今天给大家分享的中文编程开发语言工具资料如下&#xff1a; 编程入门视频教程链接 http://​ https://edu.csdn.net/course/detail/39036 ​ 编程工具及实例源码文件下载可以点击最下方官网…

如何给最小化安装的CentOS主机装个远程桌面?

正文共&#xff1a;888 字 18 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们领微软云Azure的免费主机时&#xff08;白嫖党618福利&#xff01;来Azure领200美刀&#xff01;外加云主机免费用一年&#xff01;&#xff09;&#xff0c;发现“有资格免费试用服务”的主…

飞天使-k8s知识点19-kubernetes实操4-资源调度 标签和选择器:Label与Selector的使用-版本回退

文章目录 添加label资源调度 Deployment&#xff1a;创建与配置文件解析rs pod deploy 的关联信息展示Deployment&#xff1a;滚动更新Deployment&#xff1a;回滚回退版本实际操作 添加label [rootkubeadm-master1 test]# kubectl get pod NAME …

鸿蒙开发系列教程(二十一)--轮播处理

轮播处理 Swiper本身是一个容器组件&#xff0c;当设置了多个子组件后&#xff0c;可以对这些子组件进行轮播显示 在自身尺寸属性未被设置时&#xff0c;会自动根据子组件的大小设置自身的尺寸 参数&#xff1a; 通过loop属性控制是否循环播放&#xff0c;该属性默认值为tr…

Recovering a Small String-Codeforces

题目链接&#xff1a;Problem - A - Codeforces 解题思路&#xff1a;分三种情况 第一个字母a,最后一个字母z 前两个字母a 最后两个字母z 其他根据大小算出剩下的字母 下面是c代码&#xff1a; #include<iostream> using namespace std; int main() {int t, n;cin…

算法刷题:四数之和

四数之和 .题目链接题目详情算法原理我的答案 . 题目链接 四数之和 题目详情 算法原理 题目要求的是abctarget 这道题我们可以参考一下三数之和 三数之和中,我们固定的是其中一个数,四数之和中,我们则需要固定两个数 即 abctarget的时候固定d,找到abctarget-d 在求abctarget…

学法减分线上考试答案查找?分享九个搜题直接出答案的软件 #媒体#媒体#笔记

在信息爆炸的时代&#xff0c;选择适合自己的学习辅助工具和资料&#xff0c;能够提供更高效、便捷和多样化的学习方式。 1.试题猪 这是个微信公众号 一款聚合了好多款搜题软件的公众号&#xff0c;对话框可以直接搜题&#xff0c;题库好像挺多的&#xff0c;一次性能出好多…

Linux系统入门

目录 探索命令行 学习使用 man 寻找帮助 控制字符 统计代码行数 统计磁盘使用情况 在Linux下编写 Hello World 程序 使用重定向 使用Makefile管理工程 Unix哲学 探索命令行 Linux命令行中的命令使用格式都是相同的: 命令名称 参数1 参数2 参数3 ... 参数之间用任意…

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-动态内存

目录 一、动态内存运行机制二、动态内存开发流程三、动态内存使用说明四、动态内存核心算法五、动态内存接口六、代码分析&#xff08;待续...&#xff09;坚持就有收获 一、动态内存运行机制 动态内存管理&#xff0c;即在内存资源充足的情况下&#xff0c;根据用户需求&…

【解决(几乎)任何机器学习问题】:超参数优化篇(超详细)

这篇文章相当长&#xff0c;您可以添加至收藏夹&#xff0c;以便在后续有空时候悠闲地阅读。 有了优秀的模型&#xff0c;就有了优化超参数以获得最佳得分模型的难题。那么&#xff0c;什么是超参数优化呢&#xff1f;假设您的机器学习项⽬有⼀个简单的流程。有⼀个数据集&…

【Rust】使用Rust实现一个简单的shell

一、Rust Rust是一门系统编程语言&#xff0c;由Mozilla开发并开源&#xff0c;专注于安全、速度和并发性。它的主要目标是解决传统系统编程语言&#xff08;如C和C&#xff09;中常见的内存安全和并发问题&#xff0c;同时保持高性能和底层控制能力。 Rust的特点包括&#x…

java8-使用流-2

筛选各异的元素 流还支持一个叫作aistinct的方法&#xff0c;它会返回一个元素各异(根据流所生成元素的hashcode和eguals方法实现)的流。例如&#xff0c;以下代码会筛选出列表中所有的偶数&#xff0c;并确保没有重复。图5-2直观地显示了这个过程。 List<Integer>number…