论文笔记(三十五):Deep Object Pose Estimation for Semantic Robotic Grasping of Household Objects

文章概括

作者:Jonathan Tremblay and Thang To and Balakumar Sundaralingam and Yu Xiang and Dieter Fox and Stan Birchfield
来源:arXiv:1809.10790v1 [cs.RO] 27 Sep 2018
原文:https://arxiv.org/abs/1809.10790
代码、数据和视频:https://research.nvidia.com/publication/2018-09_Deep-Object-Pose
系列文章目录:
上一篇:
https://blog.csdn.net/xzs1210652636?spm=1000.2115.3001.5343
下一篇:



摘要

使用合成数据来训练用于机器人操纵的深度神经网络,可以获得几乎无限量的预先标记的训练数据,而且这些数据是在不受伤害的情况下安全生成的。迄今为止,合成数据面临的主要挑战之一是弥合所谓的现实差距,从而使在合成数据上训练的网络在接触真实世界数据时能够正确运行。我们以从单张 RGB 图像对已知物体进行 6-DoF 姿态估计为背景,探讨了现实差距问题。我们的研究表明,对于这个问题,现实差距可以通过领域随机化和逼真数据的简单组合来成功跨越。利用以这种方式生成的合成数据,我们引入了一种单次深度神经网络,该网络的性能可与在真实数据和合成数据组合基础上训练出来的最先进网络相媲美。据我们所知,这是首个仅在合成数据上训练的深度网络,能够在 6-DoF 物体姿态估计上达到最先进的性能。我们的网络还能更好地泛化到包括极端照明条件在内的新环境中,对此我们展示了定性结果。利用这个网络,我们演示了一个实时系统,它能以足够高的精度估计物体姿态,以便真实机器人在现实世界中对杂乱无章的已知家居物品进行语义抓取。

关键词:计算机视觉、姿势估计、合成数据、随机化


1. 介绍

为了让机器人安全有效地与人类并肩作战,它们必须对周围环境有所感知。这种感知的一个方面是了解场景中物体的三维位置和方向,通常称为 6-DoF(自由度)姿势。这些知识对于执行拾放物体、与人交接或观察他人处理物体以进行模仿学习非常重要。在这项工作中,我们将重点放在刚性的已知物体上,允许通过事先训练来学习物体的外观和形状。我们的目标是实时从单张 RGB 图像中推断出杂波中此类物体的三维姿态,从而使机器人能够操纵此类物体。

深度神经网络已成功应用于二维物体检测问题[1, 2, 3],但最近才开始应用于三维物体检测和姿态估计[4, 5, 6]。与二维物体检测不同,在三维检测中手动标注数据是非常困难的。由于难以收集足够大量的标注训练数据,这类方法通常是在与测试数据高度相关的真实数据(如相同的摄像头、相同的物体实例、相似的光照条件)上进行训练。因此,现有方法面临的一个挑战是,如何对与训练集有显著差异的测试数据进行泛化。

合成数据是训练此类深度神经网络的一种很有前途的替代方法,它能够以极小的工作量生成几乎无限量的预标记训练数据。不过,合成数据也有自己的问题。其中最主要的问题是现实差距,即在没有额外微调或其他技巧的情况下,在合成数据上训练的网络通常在真实数据上表现不佳。最近针对这一问题提出的解决方案是领域随机化[7],即以非现实的方式对训练数据进行随机化,这样在测试时,真实数据在网络看来只是另一种变化。事实证明,领域随机化在检测桌子上的彩色几何图形[7]、在室内驾驶四旋翼飞行器[8],或学习视觉运动控制伸手[9]或拾放[10]色彩鲜艳的立方体等方面都取得了成功。

在本文中,我们探索了领域随机化(DR)的有力补充,即使用逼真数据 [11]。我们的研究表明,将 DR 数据与此类逼真数据进行简单组合,就能产生足够的变化和复杂性来训练深度神经网络,然后无需任何微调就能在真实数据上运行。此外,我们的合成训练网络还能很好地泛化到各种真实世界场景中,包括各种背景和极端照明条件。因此,我们的贡献如下:

  • 基于深度神经网络的一次成像系统,可从单张 RGB 图像中近乎实时地推断出杂波中已知物体的三维姿态,而无需进行后期对齐。该系统采用简单的深度网络架构,完全在模拟数据上进行训练,以推断投影三维边界框的二维图像坐标,然后进行 Perspective-n-Point(PnP)[12]。我们称自己的系统为 DOPE(“深度物体姿态估计”)。
  • 证明将非逼真(领域随机化)和逼真合成数据结合起来训练鲁棒深度神经网络,成功弥补了现实世界应用中的现实差距,实现了与在真实数据上训练的最先进网络相媲美的性能。
  • 一个集成的机器人系统,其估计姿势的精确度足以解决现实世界中的任务,如取放、物体交接和路径跟踪。

2. 方法

我们提出了一种分两步走的解决方案,以解决从单张 RGB 图像中检测和估计一组已知家居物体的所有实例的 6-DoF 姿态的问题。首先,深度神经网络会估算出图像坐标系中所有物体的二维关键点的信念图。其次,将这些信念图的峰值输入标准的 “Perspective-n-Point”(PnP)算法 [12],以估计每个物体实例的 6-DoF 姿态。在本节中,我们将介绍这些步骤,以及为训练神经网络而生成合成数据的新方法。

2.1 网络架构

受卷积姿态机器(CPM)[13, 14]的启发,我们的单次全卷积深度神经网络采用多级架构检测关键点。前馈网络将大小为 w × h × 3 的 RGB 图像作为输入,并通过分支产生两种不同的输出,即信念图和向量场。有九个信念图,三维边界框的 8 个投影顶点各一个,中心点一个。同样,还有 8 个矢量场,表示从 8 个顶点中的每个顶点到相应中心点的方向,这与文献[5]类似,以便能够检测同一类型物体的多个实例。(在我们的实验中,w = 640,h = 480)。

网络分阶段运行,每个阶段不仅要考虑图像特征,还要考虑前一阶段的输出。由于所有阶段都是卷积式的,因此当数据通过网络时,它们会利用越来越大的有效感受野。这一特性使网络能够在早期阶段解决因感受野小而产生的模糊问题,并在后期阶段纳入越来越多的上下文信息。

图像特征由 VGG-19 [15](在 ImageNet 上预先训练)的前十层计算,然后是两个 3×3 卷积层,将特征维度从 512 降到 256,再从 256 降到 128。这些 128 维特征被送入由三个 3 × 3 × 128 层和一个 1×1×512 层组成的第一阶段,然后是一个 1×1×9 层(信念图)或一个 1×1×16 层(向量场)。其余五个阶段与第一阶段相同,只是接收 153 维输入(128 + 16 + 9 = 153),由五个 7 × 7 × 128 层和一个 1 × 1 × 128 层组成,然后才是 1 × 1 × 9 或 1 × 1 × 16 层。所有阶段的大小均为 w/8 和 h/8,ReLU 激活函数交错排列。

2.2 网络架构

网络处理完图像后,需要从信念图中提取单个物体。其他方法需要复杂的架构或程序来单独提取对象[4, 5, 22, 6],而我们的方法则依赖于一个简单的后处理步骤,即在信念图中搜索超过阈值的局部峰值,然后使用贪婪分配算法将投影顶点与检测到的中心点关联起来。对于每个顶点,后一步将顶点处的矢量场与顶点到每个中心点的方向进行比较,然后将顶点分配给矢量的某个角度阈值内最近的中心点。

一旦确定了每个物体实例的顶点,就会使用 PnP 算法 [12] 来检索物体的姿态,这与 [6, 4] 类似。这一步使用检测到的边界框投影顶点、摄像机本征和物体尺寸来恢复物体相对于摄像机的最终平移和旋转。所有检测到的投影顶点都会被使用,只要检测到的顶点数量至少是最少的(四个)。

2.3 数据生成

这项研究要解决的一个关键问题是如何为网络生成有效的训练数据。在二维物体检测中,标注边界框相对容易,而三维物体检测则需要标注数据,这几乎是不可能手动生成的。虽然半自动标注数据是可能的(使用 LabelFusion [16] 等工具),但这一过程的劳动密集性质妨碍了生成具有足够变化的训练数据的能力。例如,我们还没有发现任何用于 6-DoF 物体姿态估计的真实世界训练数据包含极端光照条件或姿态。

为了克服真实数据的这些局限性,我们转而使用合成数据。具体来说,我们将非逼真域随机化(DR)数据和逼真数据结合起来使用,以充分利用两者的优势。正如后面的实验结果所示,这两类数据相辅相成,产生的结果比单独使用其中任何一种都要好得多。合成数据的另一个优势在于,它避免了对特定数据集分布的过度拟合,因此生成的网络对光照变化、相机变化和背景变化都很稳健。

由于我们的目标是用机器人操纵已估算出 6-DoF 姿态的物体,因此我们利用了流行的 YCB 物体[17]。这些物体很容易获得,而且适合由顺从的、低阻抗的人类友好型机器人(如 Baxter)操纵。域随机数据和逼真数据都是通过将 YCB 物体模型放置在不同的虚拟环境中创建的。所有数据都是由我们为虚幻引擎 4(UE4)开发的自定义插件 NDDS [18] 生成的。通过利用异步、多线程顺序帧抓取功能,该插件以 50-100 Hz 的速度生成数据,速度明显快于 UE4 默认的截图功能或公开的 Sim4CV 工具 [19]。图 1 显示了使用我们的插件生成的图像示例,说明了领域随机化和逼真数据的多样性和多样性。


在这里插入图片描述

图 1:用于训练的领域随机数据集(左)和逼真数据集(右)中的图像示例。

领域随机化。 领域随机化图像是通过将前景物体放置在由各种干扰物体组成的虚拟环境中,再加上随机背景而生成的。图像是通过随机改变干扰物、叠加纹理、背景、物体姿势、光照和噪音生成的。更具体地说,与文献[20]类似,对场景的以下方面进行了随机化:从一组三维模型(圆锥体、金字塔、球体、圆柱体、部分环体、箭头等)中选择的干扰物的数量和类型;感兴趣物体上的纹理。 从一组三维模型(锥体、金字塔、球体、圆柱体、部分环体、箭头等)中选择);感兴趣物体和干扰物的纹理(纯色、条纹);纯色背景、照片(从 COCO 数据集[21]的 10,000 张图片中选择)或程序生成的具有随机多色网格图案的背景图片;物体和干扰物的三维姿态,统一采样;具有随机方向、颜色和强度的定向灯;以及干扰物的可见度。

逼真图像。 逼真数据是通过将前景物体放置在有物理限制的三维背景场景中生成的。背景选自标准 UE4 虚拟环境,如厨房、太阳神庙和森林。之所以选择这些环境,是因为它们具有高保真建模和质量,而且室内和室外场景种类繁多。在该数据集中,我们包含了与 [5] 相同的 21 个家用 YCB 物体子集。这些物体可以在重力作用下坠落,相互碰撞,并与场景中的表面发生碰撞,从而以物理上可信的方式进行交互。当物体下落时,虚拟摄像系统被快速传送到相对于固定点的随机方位角、高度和距离,以收集数据。方位角范围为-120◦至+120◦(以避免与墙壁碰撞,如果有的话),高度范围为 5◦至 85◦,距离范围为 0.5 米至 1.5 米。我们最近公开了这个名为 Falling Things (FAT) 的数据集 [11]。


3. 实验结果

由于我们的目标是对家用物品进行机器人操作,因此我们只对 YCB 物品的图像进行评估,顺便提一下,这也是 6-DoF 姿态估计的主要方法,即 PoseCNN [5]。我们将 DOPE 方法与 PoseCNN 在 [5] 中介绍的 YCB-Video 数据集以及我们使用不同相机、各种背景和极端照明条件收集的数据集上进行比较。由于 PoseCNN 已被证明优于 Tekin 等人的单次拍摄方法[6],而 Tekin 等人的单次拍摄方法本身在标准 LINEMOD 数据集[23]和 Occluded-LINEMOD 数据集[24]上又优于 BB8[4] 和 SSD-6D[22] 等更复杂的网络,因此我们的方法与 PoseCNN 的比较足以回答这样一个问题:我们简单的网络架构加上我们新颖的合成数据生成程序是否能够产生与最先进算法相当的结果。此外,在刚才提到的四种算法中,PoseCNN 是唯一一种公开源代码(截至本文撰写之时)能够检测 YCB 物体的算法。

3.1 数据集和度量

在第一组实验中,我们使用了 YCB-Video 数据集[5],该数据集由 133k 个帧组成,包括所有帧中所有物体的姿态注释。对象包括从 YCB 数据集中提取的 21 个对象的子集。我们使用了与 Xiang 等人[5]建议的相同的 2,949 帧测试集。我们还收集了自己的数据集,其中包括罗技 C960 摄像机在各种极端照明条件下拍摄的四段视频。在这些视频中,我们从 YCB-Video 中的 21 个 YCB 物体中选取了 5 个物体作为子集,包括同一物体在多个图像帧中的多个实例。据我们所知,这是第一个同时存在多个实例的此类数据集。这 5 个对象分别是饼干盒(003)、糖盒(004)、番茄汤罐(005)、芥末瓶(006)和肉罐(010),括号中的数字表示 YCB 数据集中的对象编号。选择这些对象的原因是它们易于在典型的杂货店买到、易于抓握以及具有视觉质感。我们采用平均距离(ADD)指标[23, 5]进行评估,即地面真实姿态与估计姿态之间所有模型点的平均三维欧氏距离。

3.2 训练

在训练中,我们使用了 ∼60k 个领域随机图像帧和∼60k 个逼真图像帧。在前一种情况下,我们使用了一组单独的 ∼60k图像(每个对象一个数据集),而在后一种情况下,我们对所有对象使用了同一个数据集,因为它由 21 个随机交互的 YCB 对象组成。在数据增强方面,我们添加了高斯噪声(σ = 2.0)、随机对比度(σ = 0.2)和随机亮度(σ = 0.2)。对于 PoseCNN [5],我们使用了公开的权重,这些权重是使用未公开的合成数据集进行训练的,并在 YCB-Video 数据集中来自不同视频的图像上进行了微调。

为了避免我们的网络出现梯度消失的问题,我们在每个阶段的输出中都计算了损失,对信念图和向量场使用 L2 损失。通过在顶点位置放置 2D 高斯(σ = 2 像素),生成地面真实信念图。地面真实向量场是通过将像素设置为指向物体中心点的向量的归一化 x 和 y 分量而生成的。只有每个地面实况顶点 3 像素半径范围内的像素才以这种方式设置,其他像素均设置为零。如果该半径范围内有多个顶点,则随机选择其中一个顶点来生成这些分量。

我们的网络是用 PyTorch v0.4 [25] 实现的。VGG-19 特征提取来自 torchvision 开放模型中公开可用的训练权重。网络训练了 60 个历时,批量大小为 128。使用 Adam [26] 作为优化器,学习率设置为 0.0001。系统在英伟达 DGX 工作站(包含 4 个英伟达 P100 或 V100 GPU)上进行训练,测试使用英伟达 Titan X。

3.3 YCB-Video 数据集

图 2 显示了采用 ADD 指标的 DOPE 方法与 PoseCNN 相比,五个 YCB 对象的准确率-阈值曲线。根据训练集的不同,我们的方法包括三个版本:仅使用域随机数据(∼60k 合成图像)、仅使用逼真数据(∼60k 合成图像)以及同时使用这两种数据(∼120k 合成图像)。我们还展示了 PoseCNN 在 DR+photo 合成数据(无真实数据)上的训练结果。


在这里插入图片描述

图 2:针对 YCB-Video 数据集上的 5 个 YCB 对象,我们的 DOPE 方法与 PoseCNN [5] 的准确度-阈值曲线对比。图中显示的是我们的方法仅使用域随机化数据(DR)、仅使用合成逼真数据(照片)以及两者(DR+照片)进行训练的版本。图例中的数字表示曲线下面积(AUC)。垂直虚线表示的阈值大致相当于使用我们的机器人机械手进行抓取所需的精度水平(2 厘米)。我们的方法(蓝色曲线)对 5 个物体中的 4 个产生了最佳结果。

这些结果表明,我们的简单网络架构只在合成数据上进行训练,却能取得与在合成数据和真实数据混合训练的最先进 PoseCNN 方法相当的结果。如果我们注意到训练 PoseCNN 所依据的真实图像取自同一 YCB-Video 数据集中的其他视频,也就是说,这些图像是在与测试数据类似的条件下由相同的摄像机拍摄的,那么这些结果就更加重要了。即便如此,我们的纯合成方法在 5 个对象中的 4 个对象上实现了更高的曲线下面积(AUC),并且在阈值小于 2 厘米(大约是巴克斯特机器人平行钳末端效应器的可抓取性误差极限)时取得了更好的结果。我们的网络之所以无法检测到许多盆栽肉罐的实例,是因为存在严重遮挡的帧,在这些帧中只能看到罐子的顶部;由于我们的合成数据没有对顶部表面的高反射金属材料进行正确建模,因此网络无法识别出这些像素属于罐子。我们将在今后的工作中加入此类材料属性。

3.4 极端照明数据集

为了测试 DOPE 方法与 PoseCNN 相比的泛化性能,我们在收集到的极端光照视频上运行了这两种网络。图 3 显示了这些视频中的四幅图像,从定性角度看,与 PoseCNN 相比,使用我们的综合合成数据生成程序训练的 DOPE 所发现的姿势更加稳健和精确。这些定性结果凸显了使用合成数据比使用真实数据(由于真实数据难以标记)在不同相机和照明条件下产生更好泛化效果的前景。


在这里插入图片描述

图 3:在显示极端光照条件的数据上对 YCB 物体进行姿态估计。上图: PoseCNN [5] 是在 YCB-Video 数据集 [5] 中的合成数据和真实数据的混合数据上训练出来的,它很难泛化到使用不同相机、极端姿势、严重遮挡和极端光照变化拍摄的这种场景中。下图:尽管我们提出的 DOPE 方法仅在合成数据上进行了训练,但它仍能泛化到这些极端的真实世界条件中;除了严重遮挡的汤罐(第 2 列)和三个暗罐(第 3 列)外,所有物体都能被检测到。

3.5 其他实验

为了测试数据集大小的影响,我们仅在 DR 数据上使用 2k、10k、20k、50k、100k、200k、300k…、1M 对网络进行了训练。(从 2k(0.25 AUC)到 10k(54.22 AUC),性能提升幅度最大,100k(60.6 AUC)左右达到饱和,300k(66.64 AUC)达到最高值。) 然后使用逼真图像重复该实验,最高值在 600k 时达到(62.94 AUC)。这两个结果都远远低于上文报告的使用 120k 的 DR + 照片结果(77.00 AUC)。这些结果证实,我们提出的混合 DR 和逼真合成数据的方法比单独使用 DR 或逼真图像在域转移方面取得了更大的成功。

我们还比较了不同的混合比例。也就是说,我们以每个数据集 10%的增量进行训练,同时保持另一个数据集为 100%(例如,使用 50%的 DR 数据集和 100%的写实数据集)。只要包含至少 40% 的数据集,所有网络的性能都相当。

图 4 显示了级数对精度和计算时间的影响。不出所料,增加级数会提高精度,但计算量也会增加。


在这里插入图片描述

图 4:不同阶段数的准确度-阈值曲线,显示了额外阶段对解决早期阶段模糊性的益处。下表显示了系统在不同阶段数下的总执行时间(包括对象提取和 PnP)和性能。

3.6 机器人操作

就我们的目的而言,姿势估计方法的最终检验标准是其精度是否足以满足机器人抓取的需要。我们在巴克斯特机器人的腰部安装了罗技 C960 摄像头,并使用罗技和腕部摄像头都能看到的标准棋盘式目标将摄像头校准到机器人底座上。根据手指的连接方式,平行钳爪可从大约 10 厘米的开口移动到 6 厘米,或从 8 厘米移动到 4 厘米。无论哪种方式,抓手的移动距离都只有 4 厘米,这意味着抓取过程中物体两侧的误差不会超过 2 厘米。

为了得出定量结果,我们在机器人面前的桌子上的 4 个不同位置放置了杂乱无章的 5 个物体,4 个位置各有 3 个不同的方向。机器人被要求移动到物体上方的预抓取点,然后执行自上而下的抓取,每个物体共进行了 12 次尝试。在这 12 次尝试中,成功抓取的次数如下: 10次(饼干)、10次(肉)、11次(芥末)、11次(糖)和7次(汤)。汤的难点在于圆形几何体对自上而下的抓取不友好。当我们将汤侧卧重复实验时,这个数字增加到了 9。这些实验表明,我们的 DOPE 姿势估计方法在实际条件下足够稳健,在大多数情况下都能成功执行抓取,而无需任何闭环伺服。误差来源包括姿势估计算法、摄像机和机器人之间的误校准以及不精确的机器人控制。虽然很难确定每种情况下产生误差的确切原因,但从我们观察到的许多情况来看,机器人控制不精确似乎起了不成比例的作用。为了实现更好的控制,Levi 等人[27]的方法可能是合适的。

据我们所知,这些结果是利用实时 6-DoF 物体姿态估计器的输出对家用物体进行语义机器人抓取的首次可重复实验。与 [28] 的语义抓取工作不同,我们的系统并不局限于自上而下地抓取静态物体。相反,由于它能实时估计 6-DoF 姿态,我们的系统能够执行拾放操作,即把一个物体放在另一个物体的顶部,如图 5 所示,还能从人类手中抓取物体(即从人类到机器人的交接),并使物体实时沿着另一个物体的 6-DoF 路径移动。与 Tobin 等人的方法[7]不同的是,在抓取物体时,物体并不局限于在桌子上,而是可以在可见工作空间的任何地方。


在这里插入图片描述

图 5:机器人在饼干盒上拾放一个盆栽肉罐。请注意,罐子最初是放在另一个物体上,而不是放在桌子上,而且由于系统会估算所有物体的完整 6-DoF 姿态,因此不要求目的地盒子与桌子对齐。还需要注意的是,易拉罐与盒子对齐(如所需),并在盒子中心几厘米的范围内。


4. 相关工作

物体检测和 6-DoF 姿态估计。 许多研究人员使用传统的计算机视觉方法(如 [29, 30, 31, 32])解决了从 RGB 图像中进行物体检测和 6-DoF 姿态估计的问题。最近,出现了几种基于深度学习的方法,可直接对 RGB 图像进行操作 [4, 5, 22, 6],在克服遮挡等困难方面表现出更好的性能。其中,BB8 [4] 和 PoseCNN [5] 首先分割物体,然后估计物体姿态,而 Tekin 等人 [6] 和 Kehl 等人 [22] 的方法则分别依赖于 YOLO 和 SSD 的单次拍摄网络。所有这些网络都是在真实数据的基础上进行训练的,因此限制了它们对新场景(如光照条件)的泛化能力。此外,直接回归姿态会将相机的内在因素直接纳入网络权重,从而在将网络应用于不同相机时产生额外的误差。我们的方法在以下方面与这些方法不同: 1)我们只在合成数据上进行训练;2)我们的单镜头信念图网络架构更简单;3)我们在真实世界的机器人操纵中展示了系统的准确性。此外,我们的方法不依赖于对估计姿势的后期修正,而且我们使用的 PnP 允许该方法在不同的相机本征上运行,而无需重新训练。有关解决相关问题的其他方法,请参阅 [33, 34, 35, 36, 37]。

用于训练的合成数据。 鉴于深度学习对大量标注训练数据的渴求,最近的研究趋势集中在提供合成数据集进行训练[38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 19, 48]。这些数据集大多是逼真的,因此需要熟练的三维艺术家付出大量建模工作。为了解决这一局限性,有人提出了领域随机化技术[7, 8],作为一种廉价的替代方法,通过以非真实的方式随机化训练输入,迫使网络学会关注图像的基本特征。虽然领域随机化在一些任务中取得了可喜的成果,但与真实世界的数据相比,它尚未证明能产生最先进的结果。例如,在[7, 20]中,作者发现领域随机化要想与真实数据竞争,就必须使用真实数据进行微调。我们假设,鉴于场景的非现实性和缺乏上下文,仅凭域随机化不足以让网络完全理解场景。因此,我们使用逼真数据来补充领域随机化的方法,可以说是解决这一问题的一个很有前景的方案。


5. 结论

我们提出了一种利用新颖架构和数据生成管道检测和估计已知物体 6-DoF 姿态的系统。该网络采用多个阶段来完善对每个物体三维边界立方体投影顶点二维位置的模糊估计。然后,这些点被用于使用 PnP 预测最终姿态,前提是已知的相机本征和物体尺寸。我们已经证明,与在真实数据上训练的网络相比,仅在合成数据上训练的网络可以达到最先进的性能,而且所得到的姿势精度足以满足机器人操作的要求。进一步的研究应着眼于增加物体的数量、处理对称性问题,以及结合闭环改进来提高抓取成功率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值