目标检测 | yolov8 原理和介绍

相关系列:
目标检测 | yolov1 原理和介绍
目标检测 | yolov2/yolo9000 原理和介绍
目标检测 | yolov3 原理和介绍
目标检测 | yolov4 原理和介绍
目标检测 | yolov5 原理和介绍
目标检测 | yolov6 原理和介绍
目标检测 | yolov7 原理和介绍
目标检测 | yolov8 原理和介绍
目标检测 | yolov9 原理和介绍
目标检测 | yolov10 原理和介绍

IEEE链接:https://ieeexplore.ieee.org/document/10533619

YOLOv8相较于YOLOv7引入了一系列改进,这些改进主要集中在以下几个方面:

  • 1.注意力机制:YOLOv8采用了多种注意力机制来增强模型的特征提取能力,如ECA(Efficient Channel Attention)、GAM(Global Attention Mechanism)等,这些注意力机制有助于模型更好地关注图像中的关键信息,提高检测精度。
  • 2.卷积层优化:YOLOv8在卷积层上进行了创新,例如使用可变形卷积(Deformable Convolution)和动态卷积(Dynamic Convolution)等技术,这些技术可以提高模型对不同形状和大小目标的适应性。
  • 3.主干网络改进:YOLOv8的主干网络也进行了优化,如使用MobileNetV4等轻量化网络结构,以减少模型的计算量并提高检测速度。
  • 4.特征融合模块:YOLOv8引入了新的或改进的特征融合模块,例如BiFPN(Bidirectional Feature Pyramid Network)和AFPN(Asynchronous Feature Pyramid Network),这些模块有助于提高模型对多尺度目标的检测能力。
  • 5.检测头改进:YOLOv8在检测头也进行了创新,例如使用RT-DETR(Routing Transformer for Detection)等技术,这些技术可以改善模型在不同尺寸目标上的检测效果。
  • 6.损失函数和IoU优化:YOLOv8对损失函数和IoU(Intersection over Union)计算方法进行了改进,以提高模型的回归精度和检测性能。
  • 7.NMS和其他模块的改进:YOLOv8还对非极大值抑制(Non-Maximum Suppression, NMS)等其他模块进行了优化,以提高检测的准确性和效率。
  • 8.轻量化设计:YOLOv8注重模型的轻量化设计,使其更适合在资源受限的设备上运行,例如使用VanillaNet等极简主义网络架构。
  • 9.多尺度检测能力:YOLOv8通过改进,如使用SPD-Conv(Spatial Pyramid Depthwise Convolution)等技术,增强了对小目标和多尺度目标的检测能力。
  • 10.优化器改进:YOLOv8还可能采用了新的优化器,如Lion等,以进一步提高训练效率和模型性能。

1. 摘要

 近年来,You Only Look Once (YOLO)系列目标检测算法因其在实时应用中的速度和准确性而受到广泛关注。本文提出了一种新的目标检测算法YOLOv8,它建立在以前迭代的基础上,旨在进一步提高性能和鲁棒性。受到从YOLOv1到YOLOv7的YOLO架构演变的启发,以及从YOLOv5和YOLOv6等模型的比较分析中获得的见解,YOLOv8结合了关键创新,以实现最佳的速度和准确性。利用注意力机制和动态卷积,YOLOv8引入了专门为小物体检测量身定制的改进,解决了YOLOv7中突出的挑战。此外,语音识别技术的集成增强了算法对基于视频的对象检测的能力,如YOLOv7所示。所提出的算法经过严格的评估,以最先进的基准,显示出卓越的性能,在检测精度和计算效率方面。在不同数据集上的实验结果证实了YOLOv8在不同场景下的有效性,进一步验证了其在实际应用中的适用性。本文通过介绍YOLOv8作为一种通用的高性能算法,为目标检测研究的持续进步做出了贡献,该算法有望满足计算机视觉系统不断发展的需求。

1.1. 介绍

 在计算机视觉领域,识别物体可能是一项重要而复杂的任务,其应用遍及安全、观察、自动驾驶汽车、机器人和医学成像等领域。物体定位的目标是在图片或录音中找到并分类物体,给出它们的边界框和名称。有两种主要的抗议定位方法:两阶段方法和一阶段方法。两阶段方法,如R-CNN、Fast R-CNN和Faster R-CNN,首先生成一组区域推荐,然后使用分类器和回归器对其进行细化。另一方面,像SSD、RetinaNet和YOLO这样的单阶段策略特别预见了输入图片中的边界框和名称,从而省去了对区域设置建议的需求。尽管单阶段方法通常比两阶段策略更快、更简单,但它们通常在准确性和稳健性上有所妥协。
 YOLO (You only Look Once)是一种关键的单阶段抗议发现计算,由Redmon和Farhadi于2017年提出[1]。YOLO将输入图片分割成一个单元格网络,并预测固定数量的边界框和每个单元格的确定性分数。它也预测每个边界框的教训概率,并将它们与确定性分数结合起来,以提供最终的检测结果。YOLO以其在大型和中型对象上的速度和令人信服的执行而闻名,但它也有一定的障碍,例如moo审查、粗略的定位和对小型对象的执行差等。
 自YOLO开始以来,已经提出了各种变化和改进,以解决其障碍并提高其执行力。重要案例包括YOLOv2、YOLOv3、YOLOv4、YOLOv5、YOLOv6和YOLOv7[11]。这些形式整合了不同的程序和发展,如停留盒、多尺度预测、特征金字塔系统、剩余连接(residual connections)、考虑工具(consideration instruments)、能量卷积(energetic convolutions)和语音识别。这些策略提高了YOLO的精度、强度和有效性,使其更适用于不同的环境和应用。考虑到所有因素,仍然存在鼓励进步和优化的空间,特别是对于具有挑战性的场景,包括小对象,阻塞对象和复杂的基础。
 在本文中,我们介绍了YOLOv8,这是一种现代的目标检测算法,它建立在过去的YOLO形式的基础上,并整合了现代的亮点和改进。YOLOv8致力于实现物体定位的最高速度和精度,同时保证强度和稳健性。

2. 文献综述

 YOLO (You Only Look Once)是一种单阶段目标检测算法,最初由Redmon和Farhadi于2017年提出[1]。YOLO算法将输入图像划分为网格单元,并为每个单元预测预定数量的边界框和置信度分数。此外,YOLO预测每个边界框的类概率,并将它们与置信度分数合并,以产生最终的检测结果。YOLO以其令人印象深刻的速度和在大中型物体上的有效性能而闻名。然而,它确实有一些缺点,比如召回率低、定位不精确以及在小对象上的次优性能。

 YOLOv2[1]是对YOLO的进一步改进,提出了一些提高算法精度和效率的步骤。最常用的几种方法有:

  • Anchor boxes 锚框:YOLOv2使用预定义的边界框形状,称为锚框,以更好地适合不同尺寸和宽高比的对象。YOLOv2预测锚框的偏移量和尺度,而不是边界框的最高便利和测量值。
  • Multi-scale predictions 多尺度预测:与从输入图片中提取的粗、中、细特征相比,YOLOv2在三个不同的尺度上预测边界框。这使得YOLOv2能够更成功地识别不同大小的对象。
  • Batch normalization 批归一化:YOLOv2对网络的每一层进行批归一化,减少了内部协变量的移动,提高了预备预备的稳定性和归并性。
  • Darknet-19: YOLOv2利用了一个被称为Darknet-19的现代骨干网络,这是一个流线型和可行的卷积神经组织。Darknet-19由19个卷积层和5个最大池化层组成,它使用3x3和1x1滤波器来减少参数和计算量。

 YOLOv3[2]是YOLO的另一个改进版本,它提高了算法的执行力和活力。一些最重要的升级是:

  • Feature pyramid network 特征金字塔网络:YOLOv3采用特征金字塔网络(FPN),结合骨干网不同层次的亮点,生成高质量的不同边界盒预测。FPN的使用跳过关联和上采样操作,将低水平和高水平亮点结合起来,并为多尺度期望生成不同分辨率的亮点地图。
  • Residual connections 剩余连接:该算法利用剩余连接来促进网络内的数据流动和梯度传播。残差连接包括前一层对后一层输入的屈服,并有助于与梯度消失问题保持战略距离,使网络的准确性取得飞跃。
  • YOLOv3-tiny: YOLOv3还提供更小、更快的网络适应,称为YOLOv3-tiny,适用于资源受限的小工具和应用程序。YOLOv3 tiny使用更少的层和通道,并预测两个尺度的边界框,而不是三个。

 YOLOv4[3]是YOLO的最新版本,它应用了不同的前沿策略和进步来提升目标检测的速度和准确性。一些最重要的技术和进步是:

  • CSPDarknet53:这通常是一个新的骨干网络,称为CSPDarknet53,它基于跨阶段部分(CSP)连接和Darknet-53网络。CSP连接将特征映射分成两部分,其中一部分穿过后续层,而另一部分则与最后一层的产量相连。这降低了网络的冗余度和复杂性,提高了网络的有效性和执行力。
  • SPP:典型的空间金字塔池(spatial pyramid pooling, SPP)模块,它将输入图像的不同区域的特征聚集在一起,并提高网络的强度和不变性。SPP使用具有不同内核大小和步长的多个最大池化层,并将它们的输出连接起来,形成一个固定长度的特征向量。
  • PANet:通常是一种方式聚合网络(PANet),它改善了网络内的特征融合和数据流。PANet采用自底向上和自顶向下的方法来聚合来自不同网络层次的特征,并使用自适应特征选择来有效地改变特征的权重。
  • Mish YOLOv4使用了一种称为Mish的现代激活功能。Mish是一种自正则化平滑函数,它保留输入的正值,抑制输入的负值。在准确性和稳定性方面,Mish似乎优于其他激活函数,如ReLU、Leaky ReLU和Swish。

 基于PyTorch框架,YOLOv5[4]可能是YOLO的后续改编,它为对象检测提供了一个直接且适应性强的解决方案。它是一个独立的项目,结合了过去的YOLO变化的一些概念和策略,而不是YOLO系列的正式延续。YOLOv5有一些后继特性和升级:

  • EfficientNet:典型的尖端神经网络架构,在不同的计算机视觉任务上实现高熟练度和执行。它采用复合缩放策略来调整网络的深度、宽度和确定度,并针对不同的资产限制和目标精度优化网络。
  • FPN:典型的包括金字塔网络,融合了骨干网不同层次的特征,并产生高质量和不同的边界盒预测。它采用跳过连接和上采样操作来结合低级和高级特征,并为多尺度预测生成不同分辨率的特征图。
  • 数据增强:这是指不同的数据增强方法,如随机裁剪、翻转、缩放、旋转、颜色抖动、马赛克等,增加了训练数据的不同质量和复杂性,提升了模型的泛化和鲁棒性。
  • 模型变体:YOLOv5提供了四种模型变体,具体来说是YOLOv5s、YOLOv5m、YOLOv51和YOLOv5x,它们在速度和精度之间具有不同的权衡。YOLOv5s是最小和最快的模型,而YOLOv5x是最大和最精确的模型。

 YOLOv6[5]可能是YOLO的后续改编,它基于TensorFlow框架,旨在提高复杂环境下目标检测的执行和强度。此外,YOLOv6也不是YOLO系列的正式延续,而可能是一个独立的项目,它提供了一些新的特性和对YOLO算法的升级。YOLOv6的一些最重要的功能和改进是:

  • 注意机制:YOLOv6使用注意机制,将注意力集中在最重要和最具启发性的目标检测特征上,并抑制不必要的和有噪声的特征。YOLOv6采用了一个自关注模块,计算不同区域的亮点之间的密切程度,以及一个渠道考虑模块,计算不同渠道特征的重要性。注意机制有助于提高模型的准确性和鲁棒性,特别是对于小物体和受阻物体。
  • 动态卷积:YOLOv6采用动态卷积方法,使卷积滤波器适应输入图像,为目标检测创造更具判别性和表现力的特征[8]。YOLOv6使用了一个条件卷积层,该层根据输入图片预测卷积滤波器的权重,以及一个动态路由层,该层为每个特征映射选择最重要的合理滤波器。动态卷积处理有助于提高模型的生产率和执行力,特别是对于复杂和不同的场景。
  • YOLOv6-tiny: YOLOv6还提供了更小、更快的网络适应,称为YOLOv6-tiny,适用于资源受限的设备和应用程序。YOLOv6-tiny使用更少的层和通道,并预测两个尺度的边界框,而不是三个。

 YOLOv7[6][9]是YOLO的最新版本,它基于PyTorch框架,旨在达到最佳的目标检测速度和精度。此外,YOLOv7也不是YOLO系列的正式延续,而可能是一个独立的项目,它结合了不同的最先进的策略和进步来优化YOLO算法。YOLOv7的一些最常用的方法和发展是:

  • NAS-FPN: YOLOv7采用了一种名为NAS-FPN的神经结构搜索方法,自动生成用于目标检测的特征金字塔网络。NAS-FPN使用强化学习算法来探索特征融合操作的理想组合,如扩展、连接和最大池化,并为多尺度预测生成不同分辨率的特征图。
  • 焦点损失:该算法使用一种称为Focal loss的现代损失函数,它可以是一种以困难案例为中心的损失函数,并减少简单插图的影响[10]。Focal Loss使用一个调节因子来降低对分类良好的案例的承诺,以及一个缩放因子来调整阳性和阴性样本。

3. 算法概述

 提出的算法YOLOv8是YOLO (You only Look Once)系列目标检测模型中的最新进展。它建立在YOLO9000的基础工作上,YOLO9000以其卓越的速度和强度而闻名。随后的调整,YOLOv3和YOLOv4,鼓励了模型的执行取得了长足的进步,特别是在复杂的环境中,并实现了目标检测的最佳速度和准确性。

3.1 网络体系结构

 YOLOv8的结构基本上分为两个关键部分:骨干网络和检测头。骨干网的部分任务是从大量尺度的输入图像中提取各种丰富的特征。另一方面,检测头的任务是合并这些特征,并为边界框创建不同的高质量预测。

3.1.1 骨干网

 YOLOv8的骨干网基于高效率网络(EfficientNet)[12],这可能是一种最先进的神经网络架构,可以在各种计算机视觉任务上实现高熟练度和高性能。effentnet基于复合扩展的思想,它可以是一种以平衡的方式扩展网络宽度、深度和确定度的策略。effentnet使用了一个名为effentnet - b0的基础网络,它可能是一个有29层的卷积神经网络,并使用了带有挤压和激励模块的修改剩余块。此时,effentnet通过使用复合缩放系数将基础网络扩展为各种变体,例如effentnet - b1、effentnet - b2、effentnet - b7。复合标度系数由网格搜索决定,优化了精度和效率之间的权衡。
 YOLOv8采用了高效网b4作为主干网络,它可能是高效网b0的扩展版,有71层和1900万个参数。之所以选择EfficientNet-B4,是因为它在速度和精度之间提供了很好的平衡,而且它可以从输入图像中提取丰富的多尺度特征。输入图片被调整为512 × 512像素,之后被鼓励进入骨干网络。骨干网相对于网络的不同层次,输出5个不同分辨率和维度的特征图。特征图分别表示为P3、P4、P5、P6、P7,其中P3分辨率最高,P7分辨率最低。此时,包含映射被传递到位置头以进行进一步处理。

3.1.2检测头

 YOLOv8的检测头基于NAS-FPN[13],是一种自动生成特征金字塔网络进行目标检测的神经架构搜索方法。特征金字塔网络是结合骨干网不同层次的特征来产生多尺度预测的网络。NAS-FPN采用强化学习算法寻找最优的特征融合技术,该技术由一组组合操作和连接组成。NAS-FPN输出一个特征金字塔网络,称为NAS-FPN- cell,它可能是一个子网络,可以重新散列和堆叠以形成一个更大的网络。
 YOLOv8使用NAS-FPN-Cell作为检测头,它可以是一个六层256通道的子网。NAS-FPN-Cell将主干网的5个特征图作为输入,并对其进行一系列融合操作和连接。组合操作包括元素智能扩展、元素智能乘法、全局平均池化、最大池化和连接。这些连接以自顶向下和自底向上的方式将骨干网中不同层次的特征连接起来。NAS-FPN-Cell输出5个具有相同确定度和维度的特征图,与不同比例的输入图片进行比较。特征图记为P3 ', P4 ', P5 ', P6 ', P7 ',其中P3 '的比例尺最小,P7 '的比例尺最大。然后利用特征映射生成边界框预测。
 YOLOv8使用了与YOLOv3[2]类似的预测图,它为每个特征映射预测固定数量的边界框和置信度分数。YOLOv8预测每个特征图的三个边界框和置信度分数,每个输入图片的边界框和置信度分数加起来多达15个。YOLOv8还预测了每个边界框的类概率,并将它们与置信度分数结合得到最终的检测结果。YOLOv8使用锚盒来提高检测精度,锚盒是预定义的边界盒形状,用于预测边界盒的尺寸。YOLOv8使用9个锚盒,这些锚盒是通过对准备信息使用k-means聚类来确定的。锚盒被分配到与其尺度一致的不同特征图上,这样较小的锚盒被分配到较小的特征图上,反之亦然。

3.2 新功能和增强

 YOLOv8对以前的YOLO变体提供了一些现代特性和改进,例如新的损失函数,现代信息增强方法和现代评估度量。这些特性和升级计划是为了提高算法的执行和鲁棒性,并解决现有YOLO变体的一些限制和挑战。

3.2.1新增损失函数

YOLOv8采用了一种称为Focal loss的现代损失函数[7],这是一种以困难的插图为中心的损失工作,降低了简单案例的影响。焦损使用一个调节因子来降低对分类良好的插图的贡献,以及一个缩放因子来调整阳性和阴性样本。焦点损失对于提高检测结果的召回率和精度具有重要意义,特别是对于不平衡和有噪声的数据集,其中大部分情况是简单的或不相关的。Focal Loss最初由Lin等人[7]针对RetinaNet算法提出,该算法可能是一种利用锚盒和特征金字塔网络的单阶段目标检测算法。YOLOv8接收Focal Loss以提高算法的执行力和强度,并减少假阳性和假阴性。

3.2.2 新的数据增强方法

 YOLOv8使用了一种新的数据增强方法Mixup[14],它可以是一种信息增强方法,将两张图像及其标签混合在一起,生成新的图像和标签。混合可以扩展准备数据的不同质量和复杂性,提高模型的泛化和强度。混合也可以减少模型的过拟合和记忆,并推进对隐藏信息的执行。Mixup最初由Zhang等人[14]提出,作为一种通用的图像分类数据增强策略。YOLOv8将Mixup应用于对象检测,并将其扩展到处理边界框和许多类。

3.2.3 新的评价指标

 YOLOv8采用了一种新的评估指标,称为跨尺度平均精度(APAS)[15],它可以衡量物体在不同尺度上的检测精度。APAS是标准平均精度(AP)度量的扩展,它测量单个尺度的对象检测的准确性。APAS考虑了目标尺度的变化,计算了小、中、大等不同尺度范围的AP。然后,APAS对不同等级范围的ap进行平均,得到最终的APAS分数。APAS可能是一个更全面合理的目标检测指标,因为它反映了算法在不同物体大小和形状下的性能。APAS最初由Huang等人[15]提出,作为COCO数据集的度量,COCO数据集可能是一个具有挑战性的数据集,包含80个类和不同的对象大小和形状。

4. 结果与讨论

 在本文中,将我们的策略与过去的YOLO变化和其他最先进的目标检测策略进行比较,并利用一些基准数据集(如COCO, PASCAL VOC和WIDER FACE)在不同的度量和场景下评估我们策略的执行和生产力。

4.1 数据集

 以下数据集用于训练和测试我们的YOLOv8模型:

  • COCO[16]:数据集可以是用于对象检测、划分和字幕的大规模数据集。它包含80个类和20多万张图像,其中11.8万张用于训练,5000张用于验证,40500张用于测试。数据集是具有挑战性和不同的,因为它涵盖了广泛的对象大小、形状和类别。COCO数据集是我们用来评估我们的方法的最多的数据集,因为它是最著名的和广泛使用的目标检测数据集。
  • PASCAL VOC[17]:该数据集是用于对象检测和分类的经典数据集。它包含20个类和超过11,000个图像,其中5,000个图像用于训练和验证,6,000个图像用于测试。数据集比较简单和平衡,因为它涵盖了常见的对象类别,并且包含了中等难度。该数据集可能是我们用来与其他策略进行比较的补充数据集,因为它可能是一个成熟且广泛使用的目标检测数据集。
  • WIDER FACE[18]:该数据集可以作为人脸检测的大规模数据集。它包含超过32,000张图像和393,000张面孔,其中12,800张用于训练,3,200张用于验证,16,000张用于测试。该数据集具有挑战性和复杂性,因为它涵盖了广泛的面部尺度、姿势、表情、遮挡和照明。数据集可以是我们用来说明我们的方法在人脸检测上的性能的特定数据集,这是物体检测的必要和实际任务。

4.2 指标

 以下指标衡量我们的YOLOv8模型的性能和效率:

  • 跨尺度平均精度(APAS) [15]: APAS是衡量物体在不同尺度上检测精度的度量。APAS是标准平均精度(AP)度量的扩展,它测量单个尺度对象的对象检测精度。APAS考虑对象的尺度变化,计算小、中、大等不同尺度范围的AP。在这一点上,APAS对不同量表范围内的ap进行平均,并得到最终的APAS分数。APAS反映了算法在不同物体大小和形状下的性能,是一个较为全面合理的目标检测指标。APAS是我们用来评估我们在COCO数据集上的策略的最常用的指标,因为它是COCO数据集的官方指标。
    平均精度(Mean Average Precision, mAP) [19]: mAP是衡量不同类别物体检测的平均精度的度量。mAP是通过平均每个对象类的ap来计算的,并得到最终的mAP分数。mAP可以是一种简单而广泛使用的对象检测度量,因为它反映了算法在不同对象类别上的性能。mAP是我们用来将我们的方法与PASCAL VOC数据集上的其他方法进行比较的补充度量,因为它是PASCAL VOC数据集的官方度量。
  • 平均IoU (AIoU) [20]: AIoU是衡量边界框预测的平均质量的度量。AIoU的计算方法是对每个边界框预测的交汇点(Intersection over Union, IoU)分数取平均值,并得到最终的AIoU分数。IoU是衡量预测边界框与真实边界框之间重叠的分数,其范围从1到1,其中表示没有重叠,1表示完全重叠。AIoU是一种有价值的、本能的目标检测指标,因为它反映了算法在目标定位方面的性能。AIoU是我们用来在WIDER FACE数据集上评估我们的方法的特定度量,因为它是WIDER FACE数据集的官方度量。
  • 帧数每秒(FPS) [21]: FPS是衡量问题定位算法速度的指标。通过将算法处理的帧数除以算法所花费的总时间来计算FPS,得到最终的FPS分数。FPS是目标检测的重要实用指标,因为它反映了算法的有效性和通用性,特别是在实时应用中。FPS是我们用来衡量方法在所有数据集上的速度,并将其与其他方法进行比较的常用指标。

4.3 Coco数据集上的结果

 我们在COCO数据集上训练和测试YOLOv8模型,使用官方的train2017、val2017和test-dev2017分割。我们使用APAS指标在COCO数据集上评估我们的方法,遵循官方评估协议。我们还报告了FPS指标来衡量我们的方法在COCO数据集上的速度,使用单个NVIDIA RTX 3090 GPU。
在这里插入图片描述
 从表中可以看出,我们的YOLOv8模型在所有方法中表现最好,APAS得分为52.7,比之前的最佳方法YOLOv7提高了2.4分。我们的YOLOv8模型在所有方法中也达到了最好的速度,FPS得分为150,比之前的最佳方法YOLOv5快了10帧。这些结果表明,我们的YOLOv8模型在COCO数据集上实现了最佳的目标检测速度和精度,并且在这两个指标上都优于现有方法。

5. 结论

 本文介绍了YOLOv8,这是一种创新的目标检测算法,通过纳入新的特性和改进,扩展了以前的YOLO版本的功能。YOLOv8的目标是优化目标检测的速度和精度,同时确保鲁棒性和稳定性。我们在多个基准数据集上进行了全面的实验,包括COCO、PASCAL VOC和WIDER FACE,并将我们的方法与以前的YOLO版本和其他领先的目标检测方法进行了基准测试。结果表明,YOLOv8在各种度量和场景的性能和效率方面超越了现有的方法。展望未来,我们计划针对不同的硬件平台(如边缘设备、移动电话和云api)量身定制我们的方法,为一系列应用程序和领域提供通用且可扩展的解决方案。我们还旨在通过整合来自目标检测和计算机视觉领域的最新技术和创新来增强我们的方法,以跟上该领域的最新进展。

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值