【OpenMMLab AI实战营 学习笔记 DAY(四)-- 目标检测基础知识及评估方法】

上手OpenMMLab——从0开始使用RTMPose关键点检测(足够本科课设的工作量) 数据集:Labelme标注数据集、整理标注格式至MS COCO目标检测:分别训练和目标检测模型、训练日志可视化、测试集评估、对图像、摄像头画面预测关键点检测:训练RTMPose-S关键点检测模型、训练日志可视化、测试集上评估、分别对“图像、视频、摄像头画面”预测模型终端部署:转ONNX格式,终端推理视频教程合集:https://space.bilibili.com/1900783/channel/collectiondetail? 阅读详情

本次课程,仍然是由王若晖老师进行讲解,中间的答疑部分由张子豪(B站 同济子豪兄)进行答疑讲解。课程链接,也可以直接打开哔哩哔哩,搜索OpenMMLab,在其主页可以观看。

目标检测

什么是目标检测

对给定的一张图片框出所有兴趣目标同时预测目标类别。
在这里插入图片描述目标检测的不同应用,人脸识别、智慧城市、自动驾驶、下游视觉任务、人体姿态识别…
人脸识别in智慧城市

目标检测VS图像分类在这里插入图片描述

滑窗

  1. 设定一个固定大小的窗口
  2. 遍历图像所有位置,所到之处用分类模型(假设已经训练好)识别窗口中的内容
  3. 为了检测不同大小、不同形状的物体,可以使用不同大小、长宽比的窗口扫描图片
    在这里插入图片描述
滑窗的效率问题

考虑 1000×600 大小的图像,设定 100×100 的窗口,每滑动 20 像素分类一次。
👉 仅推理一张图片,需对 46×26≈1200 个窗口进行分类
👉 若使用不同大小的窗口,分类次数成倍增加
❌不可接受的计算成本

改进思路 1:使用启发式算法替换暴力遍历
例如 R-CNN,Fast R-CNN 中使用 Selective Search 产生提议框依赖外部算法,系统实现复杂,难以联合优化性能
改进思路 2:减少冗余计算,使用卷积网络实现密集预测目前普遍采用的方式

改进思路 1:区域提议

基于图像颜色或底层特征,找出可能含有物体
的区域,再送给神经网络识别
相比于普通滑窗,减少框的个数且保证召回率

改进思路 2:分析滑窗中的重复计算

在这里插入图片描述

消除滑窗中的重复计算

改进思路:用卷积一次性计算所有特征,再取出对应位置的特征完成分类。
原图滑窗 👉 重叠区域重复计算卷积 ❌
特征图滑窗 👉 重叠区域只计算一次卷积特征,与窗的个数无关 ✔️

在特征图上进行密集预测

不同特征的感受野自然形成一系列等距离分布的窗。
密集预测实际上是一种隐式的滑窗方法计算效率远高于滑窗。

目标检测的基本范式

在这里插入图片描述

目标检测技术的演进

在这里插入图片描述
在这里插入图片描述

基础知识

框,边界框(Bounding Box)

框泛指图像上的矩形框,边界横平竖直
描述一个框需要 4 个像素值:

  • 方式1:左上右下边界坐标 𝑙,𝑡, 𝑟, 𝑏
  • 方式2:中心坐标和框的长宽 𝑥, 𝑦, 𝑤, ℎ

边界框通常指紧密包围感兴趣物体的框
检测任务要求为图中出现的每个物体预测一个边界框
在这里插入图片描述

框的相关概念

  • 区域(Region):框的同义词
  • 区域提议(Region Proposal,Proposal)
    指算法预测的可能包含物体的框,某种识别能力不强的算法的初步预测结果
  • 感兴趣区域(Region of Interest,RoI)
    当我们谈论需要进一步检测这个框中是否有物体时,通常称框为感兴趣区域
  • 锚框(Anchor Box,Anchor)
    图中预设的一系列基准框,类似滑窗,一些检测算法会基于锚框预测边界框

交并比 Intersection Over Union

交并比(IoU)定义为两矩形框交集面积与并集面积之比,是矩形框重合程度的衡量指标。

置信度 Confidence Score

模型认可自身预测结果的程度,通常需要为每个框预测一个置信度。

  • 大部分算法取分类模型预测物体属于特定类别的概率
  • 部分算法让模型独立于分类单独预测一个置信度

我们倾向认可置信度高的预测结果。

非极大值抑制 Non-Maximum Suppression

滑窗类算法通常会在物体周围给出多个相近的检测框,这些框实际指向同一物体,只需要保留其中置信度最高的。通过非极大值抑制(NMS)算法实现:
在这里插入图片描述

边界框回归 Bounding Box Regression

边界框编码 Bbox Coding

两阶段目标检测算法

两阶段算法概述

两阶段的检测范式最早由 R-CNN 确立,因包含区域提议和区域识别两个阶段得名。经历一些列发展到 Faster R-CNN 和 Mask R-CNN 逐渐成熟,结合比较先进的主干网络和多尺度技术可以达到比较优越的检测精度,使用广泛。
近几年(2020~)随着单阶段算法精度和速度的提高逐渐被取代。

Region-based CNN (2013)

在这里插入图片描述

R-CNN 的训练

在这里插入图片描述

R-CNN 相比于传统方法的提升

在这里插入图片描述

R-CNN 的问题

慢 :区域提议一般产生 2000 个框,每个框都需要送入 CNN 前传,推理一张图要几秒至几十秒。

Fast R-CNN (2014)

改进 R-CNN:减少重复计算
在这里插入图片描述

Faster R-CNN (2015)

Faster R-CNN = RPN + Fast R-CNN 二者共享主干网络和特征

Faster R-CNN 的训练

在这里插入图片描述

多尺度检测技术

多尺度检测必要性

图像中物体大小可能有很大差异 (10 px ~ 500 px)
多尺度技术出现之前,模型多基于单级特征图进行预测,通常为主干网络的倒数第二层,受限于结构(感受野)和锚框的尺寸范围,只擅长中等大小的物体。另一方面,高层特征图经过多次采样,位置信息逐层丢失,小物体检测能力较弱,定位精度较低。

图像金字塔 Image Pyramid

在这里插入图片描述

层次化特征

在这里插入图片描述

特征金字塔网络 Feature Pyramid Network (2016)

在这里插入图片描述

在 Faster R-CNN 模型中使用 FPN

在这里插入图片描述

单阶段目标检测算法

单阶段检测算法概述

单阶段算法直接通过密集预测产生检测框,相比于两阶段算法,模型结构简单、速度快,易于在设备上部署。
早期由于主干网络、多尺度技术等相关技术不成熟,单阶段算法在性能上不如两阶段算法,但因为速度和简洁的优势仍受到工业界青睐。
随着单阶段算法性能逐渐提升,成为目标检测的主流方法。

YOLO: You Only Look Once (2015)

最早的单阶段算法之一
主干网络:自行设计的 DarkNet 结构,产生 7×7×1024 维的特征图
检测头:2 层全连接层产生 7×7 组预测结果,对应图中 7×7 个空间位置上物体的类别和边界框的位置

YOLO 的分类和回归目标

将原图切分成 S×S 大小的格子,对应预测图上 S×S 个位置
如果原图上某个物体的中心位于某个格子内,则对应位置的预测值应给出物体类别和B组边界框位置
其余位置应预测为背景类别,不关心边界框预测结果

YOLO 的损失函数

在这里插入图片描述

YOLO 的优点和缺点

在这里插入图片描述

SSD: Single Shot MultiBox Detector (2016)

主干网络:使用 VGG + 额外卷积层,产生 11 级特征图
检测头:在 6 级特征图上,使用密集预测的方法,产生所有位置、不同尺度、所有锚框的预测结果

RetinaNet (2017)

基于 focal loss 的单阶段检测器
特征生成:ResNet 主干网络 + FPN 产生 P3~P7 共 5 级特征图,对应降采样率 8~128 倍
多尺度锚框:每级特征图上设置 3 种尺寸×3 种长宽比的锚框,覆盖 32~813 像素尺寸
密集预测头:两分支、5 层卷积构成的检测头,针对每个锚框产生 K 个二类预测以及 4 个边界框偏移量

RetinaNet 的性能在这里插入图片描述

YOLO v3 (2018)

  • 自定义的 DarkNet-53 主干网络和 FPN 结构,产生 1/8、1/16、1/32 降采样率的 3 级特征图
  • 在每级特征图上设置 3 个尺寸的锚框,锚框尺寸通过对真值框聚类得到
  • 两层卷积构成的密集预测头,在每个位置、针对每个锚框产生 80 个类别预测、4个边界框偏移量、1个 objectness 预测,每级特征图 3×(80+4+1)=255 通道的预测值

得益于相对轻巧的主干网络设计、YOLO v3 的速度远快于 RetinaNet

无锚框目标检测算法

锚框 vs 无锚框

基于锚框(Anchor-based)
• Faster R-CNN、YOLO v3 / v5、RetinaNet 都是基于锚框的检测算法
• 模型基于特征预测对应位置的锚框中是否有物体,以及精确位置相对于锚框的偏移量
• 需要手动设置锚框相关的超参数(如大小、长宽比、数量等),设置不当影响检测精度

无锚框(Anchor-free)
• 不依赖锚框,模型基于特征直接预测对应位置是否有物体,以及边界框的位置
• 边界框预测完全基于模型学习,不需要人工调整超参数
• YOLO v1 是无锚框算法,但由于提出时间较早,相关技术并不完善,性能不如基于锚框的算法
在这里插入图片描述

FCOS, Fully Convolutional One-Stage (2019)

在这里插入图片描述

FCOS 的多尺度匹配

Anchor-based 算法根据锚框和真值框的 IoU 为锚框匹配真值框。通常,锚框会匹配到同尺度的真值框,小物体由低层特征预测,大物体由高层特征图预测。
由于重叠的物体尺度通常不同,同一位置重叠的真值框会被分配到不同
的特征层,从而避免同一个位置需要预测两个物体的情形

FCOS 的预测目标

基本规则
➢ 如果某个特征(在原图上对应的位置)位于某个真值框的内部,则该特征对应正样本,应预测物体的:
• 类别概率
• 边界框相对于该中心位置的偏移量
• 中心度,用于衡量预测框的优劣
➢ 如果某个位置不在任何物体的边界框内部,对应负样本,只需预测类别为背景。

FCOS 的损失函数在这里插入图片描述

CenterNet (2019)

针对 2D 检测的算法,将传统检测算法中的“以框表示物体”变成“以中心点表示物体”,将 2D 检测建模为关键点检测和额外的回归任务,一个框架可以同时覆盖 2D 检测、3D 检测 、姿态估计等一系列任务。
在这里插入图片描述

CenterNet 的主要流程

在这里插入图片描述

Detection Transformers

DETR (2020)

传统方法:在特征图上进行密集预测,依赖 Anchor 设计、NMS 后处理等额外操作
DETR:脱离密集预测范式,将检测建模为从特征序列到框序列的翻译问题,用 Transformer 模型解决
在这里插入图片描述

Deformable DETR (2021)

DETR 的注意力机制收敛很慢,收敛 ≈ 注意力机制注意到特定的位置
Deformable DETR 借鉴 Deformable Conv 的方式,显示建模 query 注意的位置,收敛速度更快

目标检测模型的评估方法

检测结果的正确/错误类型

正确结果 (True Positive):算法检测到了某类物体 (Positive),图中也确实有这个物体,检测结果正确 (True)
假阳性 (False Positive):算法检测到了某类物体 (Positive),但图中其实没有这个物体,检测结果错误 (False)
假阴性 (False Negative):算法没有检测到物体 (Negative),但图中其实有某类物体,检测结果错误 (False)
检测到的衡量标准:对于某个检测框,图中存在同类型的真值框且与之交并比大于阈值(通常取0.5)

准确率 Precision 与 召回率 Recall

真值框总数与检测算法无关,因此只需将检测结果区分为 TP 和 FP 即可计算 recall 和 precision
在这里插入图片描述

准确率与召回率的平衡

两种极端情况:

  1. 检测器将所有锚框都判断为物体:召回率≈100%,但大量背景框预测为物体,FP很高,准确率很低
  2. 检测器只输出确信度最高的1个检测框:以很大概率检测正确,准确率=100%,但因为大量物体被预测
    为背景,FN很高,召回率很低

一个完美的检测器应该有100%召回率和100%的精度;在算法能力有限的情况下,应该平衡二者
通常做法:将检测框按置信度排序, 仅输出置信度最高的若干个框
置信度 = 分类概率,或修正后的分类概率(YOLO、FCOS)

PR 曲线 与 AP 值

为得到阈值无关的评分,可以遍历阈值,并对 Precision 和 Recall 求平均
具体做法:
• 检测框按置信度排序,取前 K 个框计算 Precision 和Recall
• 遍历 K 从 1 至全部检测框,将得到的 Precision 和Recall 值绘制在坐标系上,得到 PR 曲线
• 定义 Average Precision = Precision 对 Recall 的平均值,即 PR 曲线下的面积,作为检测器的性能衡量指标

Mean AP

分类别统计AP,并按类别平均即得到 Mean AP
Mean AP 的完整计算流程:
• 将数据集中全部图像上的检测框按预测类别分类
• 对于某一类别的所有检测框,计算 AP:

  1. 按置信度将该类别的所有检测框排序
  2. 逐一与真值框比较,判定 TP 或 FP ,并绘制 PR 曲线
  3. 对 PR 曲线插值,计算 AP

• 求所有类别的 AP 的平均,得到 Mean AP

部分数据集(如 COCO)还要求在不同的 IoU 阈值下计算 Mean AP,得到 AP50,AP75 等指标可衡量检测器在不同定位精度要求下的性能。

OpenMMLab-2-人体姿态估计、关键点检测与MMPose 给定一张图片,任务要求检测图像中人脸、手部、身体等部位的关键点。输入: 图像 I输出:所有关键点的像素坐标(x1,y1)…(xJ, yJ),这里的J为关键点的总数,取决于具体的关键点检测任务和模型。关键点检测可以预测人体关键点在三维空间中的坐标( x , y , z ),进而在三维空间中还原人的姿态。 阅读详情

相关推荐

文献精讲-弱小目标检测-ADMD方法

分享一下个人对于近期读过的一篇文献《Fast and robust small infrared target detection using absolutedirectional mean difference algorithm》的理解

weixin_73311067的博客 2875

无锚框原理 TOOD:Task-aligned One-stage Object Detection

一阶段目标检测通常通过优化两个子任务来实现:对象分类和定位,使用具有两个平行分支的头部,这可能导致两个任务之间预测的空间对齐程度不一致。提出了一种“任务对齐一阶段目标检测”方法,以学习方式明确地对齐这两个任务。首先设计了一种新颖的任务对齐头(T-head),它在学习任务交互和任务特定特征之间提供了更好的平衡,也更灵活地通过任务对齐预测器学习对齐。其次,我们提出了任务对齐学习(TAL),通过设计的样本分配方案和任务对齐损失,在训练过程中明确地拉近(甚至统一)两个任务的最优锚点。具有更少的参数和FLOPs。

shengweiit的博客 2326

【七班】MMPose代码实践与耳朵穴位数据集实战【OpenMMLab AI实战营第二期Day3+作业1】

但是Linux操作系统操作中是有问题的,!wget https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220716-mmclassification/dataset/SimHei.ttf -O /environment/miniconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf中,下载的文件似乎有问题无法生效,且下载路径不准确,

chenghong1的专栏 1108

【OpenMMLab】AI实战营第二期Day1概论

OpenMMLab诞生于2018年,是一个由中国开发者主导,有国际影响力的人工智能·计算机视觉开源算法体系。OpenMMLab累计开源超过30个算法库、2400个预训练模型,涵盖图像识别分类、目标检测、图像分割、姿态估计、视频理解、OCR、3D目标检测、3D人体姿态估计、模型轻量化、自监督、少样本、光流、预训练、多模态、AIGC、推理部署等等计算机视觉任务,在Github上累计获得十万颗star,超过了Pytorch。

墨门 174

基于FPGA的TDC延迟链优化与码密度校准方法(1)——原理与实现

本文深入探讨了基于FPGA的时间数字转换器(TDC)延迟链非均匀性问题及其码密度校准方法。通过分析工艺偏差、温度电压影响等根源,详细介绍了码密度测试原理、逐位校准技术及气泡消除算法,并分享了自适应校准策略与多场景应用实践,有效提升TDC测量精度至皮秒级。

kiwi8的博客 488

大模型训练显存瘦身全记录:从ZeRO-3参数分区到CPU Offload的硬件协奏曲

本文详细解析了如何通过ZeRO-3参数分区与CPU/NVMe卸载技术优化大模型训练的显存使用。结合bf16混合精度与梯度累积等策略,实现在消费级GPU上高效训练百亿参数模型,显著提升硬件利用率与训练效率。

weixin_29051245的博客 435

【OpenMMLab】AI实战营第二期Day6:目标检测与MMDetection

这篇文章讨论了目标检测和MMDetection,并介绍了相关的基本思路和概念。

墨门 1252

DAC60501与STM32的I2C通信实战:从寄存器配置到电压输出

本文详细介绍了如何使用STM32通过I2C通信驱动DAC60501数模转换器,实现精确的模拟电压输出。内容涵盖从硬件连接到软件模拟I2C驱动编写,再到DAC寄存器配置与电压计算的全流程实战指南,并提供了关键的驱动实例代码和常见问题调试技巧,帮助开发者快速掌握这一嵌入式开发中的实用技能。

weixin_29197835的博客 366

OpenMMlab AI实战营 打卡笔记DAY1

OpenMMLab AI实战营 打卡笔记DAY1

weixin_49644231的博客 368

Windows本地部署Ollama+qwen本地大语言模型Web交互界面并实现公网访问

本文主要介绍如何在Windows系统快速部署Ollama开源大语言模型运行工具,并安装Open WebUI结合cpolar内网穿透软件,实现在公网环境也能访问你在本地内网搭建的大语言模型运行环境。近些年来随着ChatGPT的兴起,大语言模型 LLM(Large Language Model)也成为了人工智能AI领域的热门话题,很多大厂也都推出了自己的大语言模型,并或多或少的开源了自己的大语言模型,今天就来分享一个最近很火,且对于小白来说比较好上手本地部署的运行本地LLM的工具Ollama。

迪之的博客 1652

运行openclaw gateway install时出现Gateway install failed: Error: schtasks create failed的解决方案

本文主要介绍了运行openclaw gateway install时出现Gateway install failed: Error: schtasks create failed的解决方案,希望能对学习和使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

OpenMMlab AI实战营第二期-day1

MMPose 是一款基于 Pytorch 的姿态估计开源工具箱,是 OpenMMLab 项目的成员之一,包含了丰富的 2D 多人姿态估计、2D 手部姿态估计、2D 人脸关键点检测、133关键点全身人体姿态估计、动物关键点检测、服饰关键点检测等算法以及相关的组件和模块。它还支持了大多数流行的学术数据集,并提供了许多实用工具帮助用户对数据集和模型进行多方面的探索和调试,助力优质模型的产出和落地。MMDetection 是一个目标检测工具箱,包含了丰富的目标检测、实例分割、全景分割算法以及相关的组件和模块。

m0_55508602的博客 270

Sigrity Power Tree如何进行直流压降仿真分析操作指导

Sigrity Power Tree模式可以用于前仿真,在没有layout文件的情况下对电源进行直流压降仿真分析,用于评估原理图设计以及器件选型是否合理。Model:设置为Equal Current,设置为等电源模型,意思该负载每个电源pin都是等电流的。Current:设置每个负载的电流,U30为3A,U3-U6各为1A。Nominal Current:设置能够承载的最大电流,设置为10A。Upper/ Lower Tol:设置为压降范围为5%Output Current:设置输出电流为10A。

weixin_54787054的博客 732

OpenMMLab AI 实战营 Day 1

mmlab训练营听课笔记

钢之乐学的博客 328

ROS2 机械臂末端刀具执行曲面路径规划入门教程

Noether工具路径规划系统摘要 Noether是一款用于网格曲面刀具路径规划的软件,支持喷涂、打磨、检测等机器人工艺流程。其核心流程分为三步:1)网格修改(平滑、分割等预处理);2)刀具路径规划(生成有序路径点序列);3)刀具路径修改(姿态调整等后期处理)。系统提供栅格规划和边界规划两种模式,支持自定义扩展。配套GUI工具可配置完整流程,包含网格处理、路径生成和可视化功能。通过示例演示了多组件网格处理、拼图边缘铣削等典型应用场景,并指导用户进行插件开发,实现圆柱体提取、摄像机悬停等定制化功能。系统采用模

机器人控制与仿真应用 916

STM32电机PID速度控制

2.3 STM32电机PID速度控制 之前的文章,完成了直流减速电机的PWM控制、电机测速。本篇文章,将实现电机的速度闭环控制。 在公众号:小白学移动机器人,发送:速度PID,即可获得本篇文章的STM32工程文件以及相关资料。 2.3.1 解决的问题 解决带编码器直流电机的速度闭环问题。 2.3.2 PID理论 将偏差的比例、积分、微分,通过线性组合构成控制量,用控制量对被控对象进行控制,这样的控制器称为PID控制器。在连续空间中,我们通常探讨模拟PID的控制原理,如图所示: 我们这里用电机速度控制为例,

「小白学移动机器人」一个专注分享移动机器人相关知识的公众号! 6万+

【OpenMMLab】AI实战营第二期Day3:MMPose与RTMPose

课程:《合集·MMPose开源算法库教程》 RTMPose关键点检测全流程 保姆级代码教程: github.com/TommyZihao/MMPose_Tutorials 微信答疑群(免费):公众号 OpenMMLab 回复 子豪兄三角板 安装MMDetection和MMPose两个OpenMMLab开源计算机视觉算法库。 MMDetection用于训练目标检测算法。MMPose用于训练姿态估计和关键点检测算法,包括RTMPose。

墨门 797

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OpenMMLab AI 实战营day4

OpenMMLab AI 实战营day4

Hzz的地球调查组 223

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Day1:OpenMMlab的概述

OpenMMlab是一个开源项目,主要面对深度学习时代计算机视觉算法的研发,提供一整套算法框架和工具体系。OpenMMLab。

qq_64392587的博客 561

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OpenMMLab AI 实战营day5 目标检测实战

day5

aso538的博客 230

OpenMMLab AI 实战营day4 目标检测理论

狠狠的补充了一下目标检测的相关基础,以前基础不太牢。

aso538的博客 215

OpenMMlab AI实战营Day5 MMDtetection教学

OpenMMlab AI实战营Day5 MMDtetection教学

一只大憨憨的博客 1328

OpenMMlab AI实战营 打卡笔记DAY4

OpenMMlab AI实战营 打卡笔记DAY4

weixin_49644231的博客 290

OpenMMLab AI实战训练营day6MMDetection代码教程

1.Open-Vocabulary Object Detection:开放词汇目标检测,给定图片和类别词汇表,检测所有物体。2.Grounding Object Detection:给定图片和文本描述,预测文本中所提到的在图片中的物体位置。该方向的典型算法是GLIP,目前在MMDetection的dev-3.x中已经支持。由于目标检测的特殊性,实际上使用Grad Box AM进行可视化。若想要进行离线测试,则可以使用提供的test.py脚本。Grad-Based CAM可视化。

lgwwslgw的博客 342

AI基础实战营Day1

AI基础实战营第一天笔记

m0_68052967的博客 188
上一篇: 【OpenMMLab AI实战营 学习笔记 DAY(三)-- mmclassification 安装配置 及 利用resnet训练flower模型】
下一篇: 【OpenMMLab AI实战训练营 学习笔记DAY(五)-- MMDetection 框架介绍及代码讲解】
R-F
R-F
博客等级 码龄7年 99粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值