玉米叶片病害检测数据集 6000张 玉米 带标注 voc yolo,玉米叶片病害检测数据集

国内外交通数据集介绍(附参数说明) 本文对国内外部分交通数据集进行了介绍、对相关参数的进行了说明。 阅读详情

玉米叶片病害检测数据集 6000张 玉米 带标注 voc yolo在这里插入图片描述

分类名: (图片张数,标注个数)在这里插入图片描述

Spodoptera_ Frugiperda_ Egg: (72, 81)
Hea Ithy: (1238, 2950)
Spodoptera_ Frugiperda_ aftermath: (1200, 3404)
Blight:(1368, 1786)
Common_ Rust: (1188, 1308)
Gray_ Leaf_ Spot:(1178,1223)
总数: (6095, 10752)
总类(nc): 6类
在这里插入图片描述
在这里插入图片描述
米叶片病害检测数据集统计表
标签名称 图片数量 边框数量
秋黏虫卵 (Spodoptera Frugiperda Egg) 72 81
健康 (Healthy) 1238 2950
秋黏虫危害后 (Spodoptera Frugiperda Aftermath) 1200 3404
灰斑病 (Blight) 1368 1786
锈病 (Common Rust) 1188 1308
灰叶斑病 (Gray Leaf Spot) 1178 1223
总计 6095 10752
项目结构
深色版本
corn_leaf_disease_detection/
├── dataset/
│ ├── images/
│ │ └── *.jpg
│ ├── labels_voc/
│ │ └── *.xml
│ ├── labels_yolo/
│ │ └── *.txt
├── models/
│ └── yolov8/
├── src/
│ ├── train.py
│ ├── predict.py
│ ├── utils.py
│ ├── convert_voc_to_yolo.py
├── weights/
│ └── best_model.pt
├── requirements.txt
└── README.md

  1. 安装依赖
    首先,确保你已经安装了必要的库。创建一个requirements.txt文件,内容如下:

深色版本
torch
torchvision
numpy
pandas
matplotlib
tqdm
pyyaml
opencv-python
ultralytics
lxml
然后,使用以下命令安装依赖:

bash
深色版本
pip install -r requirements.txt
2. 数据集准备
确保你的数据集已经按照以下结构组织:

深色版本
dataset/
├── images/
│ └── *.jpg
├── labels_voc/
│ └── *.xml
├── labels_yolo/
│ └── *.txt
每个文件夹中包含对应的图像文件和标签文件。确保所有图像文件都是.jpg格式,标签文件是VOC格式的.xml文件和YOLO格式的.txt文件。

  1. 数据集转换工具
    为了方便使用YOLOv8模型,我们需要将VOC格式的标注文件转换为YOLO格式。可以使用以下脚本进行转换。

3.1 src/convert_voc_to_yolo.py
python
深色版本
import os
import xml.etree.ElementTree as ET
import shutil

def convert_voc_to_yolo(voc_dir, yolo_dir, class_names, image_size=(640, 640)):
os.makedirs(yolo_dir, exist_ok=True)

for xml_file in os.listdir(voc_dir):
    if not xml_file.endswith('.xml'):
        continue

    tree = ET.parse(os.path.join(voc_dir, xml_file))
    root = tree.getroot()

    image_width = int(root.find('size/width').text)
    image_height = int(root.find('size/height').text)

    yolo_file = os.path.join(yolo_dir, xml_file.replace('.xml', '.txt'))
    with open(yolo_file, 'w') as f:
        for obj in root.findall('object'):
            class_name = obj.find('name').text
            if class_name not in class_names:
                continue
            class_id = class_names.index(class_name)

            bndbox = obj.find('bndbox')
            xmin = int(bndbox.find('xmin').text)
            ymin = int(bndbox.find('ymin').text)
            xmax = int(bndbox.find('xmax').text)
            ymax = int(bndbox.find('ymax').text)

            x_center = (xmin + xmax) / 2.0 / image_width
            y_center = (ymin + ymax) / 2.0 / image_height
            width = (xmax - xmin) / image_width
            height = (ymax - ymin) / image_height

            f.write(f"{class_id} {x_center} {y_center} {width} {height}\n")

if name == “main”:
voc_dir = “dataset/labels_voc”
yolo_dir = “dataset/labels_yolo”
class_names = [
“Spodoptera Frugiperda Egg”, “Healthy”, “Spodoptera Frugiperda Aftermath”,
“Blight”, “Common Rust”, “Gray Leaf Spot”
]
convert_voc_to_yolo(voc_dir, yolo_dir, class_names)
4. 数据集配置
创建一个数据集类,用于加载和预处理数据。

4.1 src/utils.py
python
深色版本
import os
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
from PIL import Image

class CornLeafDiseaseDetectionDataset(Dataset):
def init(self, image_dir, label_dir, transform=None):
self.image_dir = image_dir
self.label_dir = label_dir
self.transform = transform
self.image_files = os.listdir(image_dir)
self.label_files = os.listdir(label_dir)

def __len__(self):
    return len(self.image_files)

def __getitem__(self, index):
    img_path = os.path.join(self.image_dir, self.image_files[index])
    label_path = os.path.join(self.label_dir, self.image_files[index].replace('.jpg', '.txt'))

    image = Image.open(img_path).convert("RGB")

    if os.path.exists(label_path):
        with open(label_path, 'r') as f:
            labels = f.readlines()
        labels = [line.strip().split() for line in labels]
        labels = [[int(label[0])] + list(map(float, label[1:])) for label in labels]
    else:
        labels = []

    if self.transform:
        image = self.transform(image)

    return image, labels

def get_data_loaders(image_dir, label_dir, batch_size=16, num_workers=4):
transform = transforms.Compose([
transforms.Resize((640, 640)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

dataset = CornLeafDiseaseDetectionDataset(image_dir, label_dir, transform=transform)
train_size = int(0.8 * len(dataset))
val_size = len(dataset) - train_size

train_dataset, val_dataset = torch.utils.data.random_split(dataset, [train_size, val_size])

train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=num_workers)
val_loader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False, num_workers=num_workers)

return train_loader, val_loader
  1. 模型定义
    使用YOLOv8模型进行检测任务。这里我们使用预训练的YOLOv8模型,并对其进行微调。

5.1 src/train.py
python
深色版本
import torch
import torch.optim as optim
from torch.utils.tensorboard import SummaryWriter
from tqdm import tqdm
from ultralytics import YOLO
from src.utils import get_data_loaders
import torch.nn.functional as F

def train_model(image_dir, label_dir, epochs=100, batch_size=16, learning_rate=1e-4):
device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”)

model = YOLO('yolov8n.pt')  # Load a pretrained YOLOv8 model
model = model.to(device)

train_loader, val_loader = get_data_loaders(image_dir, label_dir, batch_size=batch_size)

optimizer = optim.Adam(model.parameters(), lr=learning_rate)
criterion = torch.nn.MSELoss()

writer = SummaryWriter()

for epoch in range(epochs):
    model.train()
    running_loss = 0.0
    for images, labels in tqdm(train_loader, desc=f"Epoch {epoch + 1}/{epochs}"):
        images = images.to(device)
        labels = [torch.tensor(label, dtype=torch.float32).to(device) for label in labels]

        optimizer.zero_grad()
        outputs = model(images)
        loss = 0.0
        for i in range(len(labels)):
            if len(labels[i]) > 0:
                pred = outputs[i, :, :, :5 * len(labels[i])]
                pred = pred.permute(2, 0, 1).reshape(-1, 5)
                target = labels[i][:, 1:]
                loss += criterion(pred, target)
        loss.backward()
        optimizer.step()

        running_loss += loss.item()

    train_loss = running_loss / len(train_loader)
    writer.add_scalar('Training Loss', train_loss, epoch)

    model.eval()
    running_val_loss = 0.0
    with torch.no_grad():
        for images, labels in val_loader:
            images = images.to(device)
            labels = [torch.tensor(label, dtype=torch.float32).to(device) for label in labels]

            outputs = model(images)
            loss = 0.0
            for i in range(len(labels)):
                if len(labels[i]) > 0:
                    pred = outputs[i, :, :, :5 * len(labels[i])]
                    pred = pred.permute(2, 0, 1).reshape(-1, 5)
                    target = labels[i][:, 1:]
                    loss += criterion(pred, target)

            running_val_loss += loss.item()

    val_loss = running_val_loss / len(val_loader)
    writer.add_scalar('Validation Loss', val_loss, epoch)

    print(f"Epoch {epoch + 1}/{epochs}, Train Loss: {train_loss:.4f}, Val Loss: {val_loss:.4f}")

model.save("weights/best_model.pt")
writer.close()

if name == “main”:
image_dir = “dataset/images”
label_dir = “dataset/labels_yolo”
train_model(image_dir, label_dir)
6. 模型评估
训练完成后,可以通过验证集和测试集来评估模型的性能。示例如下:

6.1 src/predict.py
python
深色版本
import torch
import matplotlib.pyplot as plt
from ultralytics import YOLO
from src.utils import get_data_loaders
import numpy as np

def predict_and_plot(image_dir, label_dir, model_path, num_samples=5):
device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”)

model = YOLO(model_path)
model = model.to(device)
model.eval()

_, val_loader = get_data_loaders(image_dir, label_dir)

fig, axes = plt.subplots(num_samples, 2, figsize=(10, 5 * num_samples))
with torch.no_grad():
    for i, (images, labels) in enumerate(val_loader):
        if i >= num_samples:
            break

        images = images.to(device)
        labels = [torch.tensor(label, dtype=torch.float32).to(device) for label in labels]

        outputs = model(images)
        outputs = outputs.cpu().numpy()

        images = images.cpu().numpy().transpose((0, 2, 3, 1))
        labels = [label.cpu().numpy() for label in labels]

        for j in range(len(images)):
            ax = axes[j] if num_samples > 1 else axes
            ax[0].imshow(images[j])
            ax[0].set_title(f"True: {labels[j]}")
            ax[0].axis('off')

            ax[1].imshow(images[j])
            ax[1].set_title(f"Predicted: {outputs[j]}")
            ax[1].axis('off')

plt.tight_layout()
plt.show()

if name == “main”:
image_dir = “dataset/images”
label_dir = “dataset/labels_yolo”
model_path = “weights/best_model.pt”
predict_and_plot(image_dir, label_dir, model_path)
7. 运行项目
确保你的数据集已经放在相应的文件夹中。
运行转换脚本将VOC格式的标注文件转换为YOLO格式:
bash
深色版本
python src/convert_voc_to_yolo.py
在项目根目录下运行以下命令启动训练:
bash
深色版本
python src/train.py
训练完成后,运行以下命令进行评估和可视化:
bash
深色版本
python src/predict.py
8. 功能说明
数据集转换:convert_voc_to_yolo.py脚本用于将VOC格式的标注文件转换为YOLO格式。
训练模型:train.py脚本用于训练YOLOv8模型,使用均方误差损失函数和Adam优化器。
评估模型:predict.py脚本用于评估模型性能,并可视化输入图像、真实标签和预测结果。
9. 详细注释
convert_voc_to_yolo.py
数据集转换:将VOC格式的标注文件转换为YOLO格式。
utils.py
数据集类:定义了一个CornLeafDiseaseDetectionDataset类,用于加载和预处理数据。
数据加载器:定义了一个get_data_loaders函数,用于创建训练和验证数据加载器。
train.py
训练函数:定义了一个train_model函数,用于训练YOLOv8模型。
训练过程:在每个epoch中,模型在训练集上进行前向传播和反向传播,并在验证集上进行评估。
predict.py
预测和可视化:定义了一个predict_and_plot函数,用于在验证集上进行预测,并可视化输入图像、真实标签和预测结果。

车祸相关公开数据集(免费下载) Vehicle Collisions 纽约市机动车与人相撞 背景描述 这是 2021 年在纽约发生的人与机动车碰撞事故的数据。仅过滤掉超过 1,000 美元的受伤或死亡案件。总结了事件的日期和时间、受伤的位置以及警方对事件的描述。 数据说明 CRASH_DATE: 事故发生日期 CRASH_TIME: 事故发生时间 PERSON_INJURY :受伤,死亡,未指定 PERSON_AGE : 根据出生日期自动计算 BODILY_INJURY :受伤的身体部位(即头部、面部、颈部等... 阅读详情

相关推荐

英国交通事故数据2019.rar

英国交通事故数据2019,包含数据字典和数据集,数据集中有六十多个维度的信息。

CADP——监控视角下的交通事故数据集介绍

解决道路交通安全自动时空注释研究缺乏公开数据的问题。

Sanse_的博客 6261

交通事故信息 (2018-2023)数据集

交通事故信息 (2018-2023)数据集 数据说明: 地理范围:准确定位事故发生地点,提供对Brazil各地交通事故的深入地理分析。 事故细节:每个事故的详细说明,包括道路特征、时间以及导致这些事故的一系列因素。 受害者见解:关于受害者的综合数据,揭示了人为因素对事故的影响,信息,如驾驶嫌疑人醉酒和许多其他信息。 选择这个数据集的原因: 政府支持的可靠性:直接来源于政府记录,确保真实性和准确性 公共数据为公共利益:作为一个公共数据集,它邀请研究人员,决策者,城市规划者和数据爱好者解开模式,提出解决方案,促进Brazil更安全的道路 丰富的历史背景:该数据集跨越五年,提供了时间深度,可用于趋势分析和预测建模

【完整源码+数据集】交通事故数据集,yolov8道路交通事故检测数据集 8939 张,事故识别数据集,智慧交通道路事故识别系统实战教程

【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测系统实战训练教程! 【数据集】道路事故识别数据集 8939 张,目标检测,包含YOLO/VOC格式标注。数据集中包含2种分类:{'0': 'accident', '1': 'non-accident'}。数据集来自国内外图片网站和视频截图。检测范围道路事故检测、监控视角检测、无人机视角检测、等,可用于智慧城市、智慧交通,服务于交通拥塞预警、交通安全排查。 基于yolov8的道路交通事故检测系统实战详细步骤。

CV 小涵的博客,计算机本硕211毕业,研究计算机视觉、模型微调、RAG等方向,收藏有国内外优质数据集,解决视觉相关项目方案,欢迎交流讨论。 7941

道路交通事故数据集VOC-1182张.zip

数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):1182 标注数量(xml文件个数):1182 标注类别数:1 标注类别名称:["accident"] 每个类别标注的框数: accident count = 1179 使用标注工具:labelImg 标注规则:对类别进行画矩形框 重要说明:暂无 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注 视频详细介绍:www.bilibili.com/video/BV1Gb411Z7Y6/

深度学习之图像数据集:交通事故车辆数据集

数据集介绍:该数据集由损坏汽车的图像、汽车的成本价格及其保险索赔等参数组成 数据集大小:103MB 数据集详情:该数据集由损坏汽车的图像、汽车的成本价格及其保险索赔等参数组成。 • trainlmages 文件夹:包含 1399 个训练图像 • testlmages 文件夹:包含 600 个测试图像 • train.csv:包含 1399 x 8 个数据点 • test.csv:包含 600 x 6 个数据点 • sample_submission。 csv:包含 5 x 3 个数据点 应用机器学习技能来构建一个回归模型,该模型可以预测数据集中提供的汽车的保险索赔。

如何使用 yolov8训练——玉米叶片病害检测数据集 6000张 玉米 带标注 voc yolo 玉米数据集

如何使用 yolov8训练——玉米叶片病害检测数据集 6000张 玉米 带标注 voc yolo 玉米数据集

2401_88440984的博客 1297

捷克共和国道路交通事故详细数据集(2016-2022)CSV(2.2W+7W记录)

捷克共和国警方通常每月定期收集和发布有关全国交通事故的详细数据。该数据集涵盖了地理位置、天气状况、车辆类型、伤亡人数和车辆机动等各个方面。丰富的信息使其成为用于分析和研究目的的引人注目且广泛的数据集。 数据集由两个 csv 文件组成: road_accidents_czechia_2016_2022.csv:文件中的每一行都代表一个唯一的交通事故,将与事故相关的各种属性作为列 pedestrian.csv:文件中的每一行都对应于一个不同的涉及行人的交通事件,并将各种与事件相关的属性捕获为列。

如何使用YOLOv8训练玉米叶片病害检测数据集,可视化代码如何? 玉米叶片病害检测数据集 6000张 玉米 带标注 voc yolo玉米病害数据集检测如何训练 6类

如何使用YOLOv8训练玉米叶片病害检测数据集,可视化代码如何? 玉米叶片病害检测数据集 6000张 玉米 带标注 voc yolo玉米病害数据集检测如何训练 6类

2401_88440984的博客 898

交通事故的数据-数据集

本数据集包含大量的交通事故信息,可用于预防交通事故的发生 数据描述 纽约市警察局从2020年1月至2020年8月报告的机动车碰撞。每条记录代表一次单独的碰撞,包括事故的日期,时间和位置(市镇,邮政编码,街道名称,纬度/经度),车辆和受害人参与其中,并促成因素。 字段介绍 英文 中文 CRASH DATE 发生日期 CRASH TIME 发生时间 BOROUGH 自治市镇 ZIP CODE 邮政编码 LATITUDE 纬度 LONGITUDE 经度 LOCATION 地点 ON STREET NAME 街道名称 CROSS STREET NAME 十字路口名称 OFF STREET NAME 街边名称 NUMBER OF PERSONS INJURED 受伤人数

国内免魔法接入Grok API,打造智能QQ机器人实战指南

大型语言模型(LLM)通过API接口为开发者提供了强大的自然语言处理能力,其核心原理是基于海量数据训练的深度神经网络,能够理解和生成类人文本。这一技术价值在于显著降低了AI应用开发门槛,使开发者无需从零训练模型即可快速集成智能对话、内容生成等功能。在即时通讯、智能客服、自动化工具等应用场景中,LLM API能有效提升交互体验与效率。本文聚焦于如何通过稳定的第三方API服务,绕开网络访问限制,将xAI推出的Grok模型接入国内网络环境,并结合NoneBot2框架与go-cqhttp,实现一个功能完整的智能QQ

weixin_30607125的博客 322

玉米病害-目标检测数据集(包括VOC格式、YOLO格式)

玉米病害数据集,目标检测,yolo,voc,复杂背景

DL_data_set的博客 3034

写出GD32L233/235在读写flash的区别(用于OTA功能)

在单片机里面表示 大概是 address += sizeof(uint32_t) address += sizeof(uint64_t)1.说到OTA功能,实际上 往flash 指定区域写 数据, 拷贝数据,然后 跳转, 必要时 注意单片机的偏移量。在写本文时,L233支持单字写入,而L235只有双字写入. 一个写入地址+4 一个写入地址+8。这个是 自己写的擦除一页 数据,当然可以参考 提供的demo去实现,看自己需求。接下来是 读取 双字,也就是在L235上的读取。

teleger的博客 907

玉米病叶识别数据集,可识别褐斑,玉米锈病,玉米黑粉病,霜霉病,灰叶斑点,叶枯病等,使用yolo,coco,voc对4924张照片进行标注

玉米病叶识别数据集,可识别褐斑,玉米锈病,玉米黑粉病,霜霉病,灰叶斑点,叶枯病等,使用yolo,coco,voc对4924张照片进行标注。边界框:亮度: 介于 -15% 和 +15% 之间。剪切: 水平方向±10°,垂直方向±10°。裁剪: 最小缩放 0%,最大缩放 20%饱和度: -25% 至 +25% 之间。曝光度: -15% 至 +15% 之间。旋转: -15° 至 +15° 之间。色调: -15° 至 +15° 之间。亮度: -20% 至 +20% 之间。噪音: 高达 0.1% 的像素。

yolo模型训练找我,AI游戏合作找我 8689

深度学习中的编码器-解码器架构

解码的作用:转换为人类可理解的形式,解码器的任务是将编码器生成的中间表示(上下文向量)转换回人类可理解的输出形式(如翻译后的文本、生成的图像描述等)。解码器通过逐步生成输出序列,使得最终的输出符合人类的理解和需求。编码的作用:转换为机器可理解的形式,编码器将输入数据(如文本、图像等)转换为一种机器更容易处理和理解的形式,即上下文向量或编码。在深度学习中,编码器(Encoder)解码器(Decoder)是常见的神经网络架构,通常用于处理序列到序列(seq2seq)任务,如机器翻译、文本摘要和图像描述等。

xxk1323的博客 1093

PLC控制气缸与电磁阀:从原理到实战编程详解

在工业自动化领域,很多工程师都能编写PLC程序控制电机启停,但当涉及到气缸和电磁阀的精确控制时,却常常遇到动作不协调、响应延迟甚至设备损坏的问题。这背后的关键不在于PLC编程本身,而在于对气动元件特性和控制逻辑的深入理解。 本文将从实际工程问题出发,深入解析气缸与电磁阀的工作原理、PLC控制逻辑设计、常见故障排查方法,并通过完整的梯形图实例,帮助读者掌握气动系统自动化编程的核心要点。无论你是刚接触PLC的初学者,还是希望提升气动控制技能的工程师,都能从中获得实用的技术指导。 1. 气缸与电磁阀在自动化控制中

weixin_42522374的博客 337

【数据集】【YOLO】【目标检测】玉米作物识别数据集 2035 张,YOLO玉米识别算法实战训推教程。

【数据集】【YOLO】【目标检测】玉米作物识别数据集 2035 张,YOLO玉米识别系统实战训推教程,包含YOLO/VOC格式标注。 数据集中包含1种分类:names: ['0'],代表玉米。 可用于无人机玉米作物识别,监控玉米生长检测等。 检测场景为玉米地、粮仓等场景,可用于苗情监测与补苗、杂草与作物区分​、产量预估与收获规划​​​​​​​等。 基于QT的yolo可视化界面实战详细步骤。

CV 小涵的博客,计算机本硕211毕业,研究计算机视觉、模型微调、RAG等方向,收藏有国内外优质数据集,解决视觉相关项目方案,欢迎交流讨论。 1359

当C#遇见声音魔法:从麦克风到文字的0.1秒奇幻漂流

为什么选300Hz?因为人声基频通常在85-255Hz,但清脆的“啊”可能到2kHz,所以300Hz是安全区!(参考知识库[1])

墨夶的博客 365

13种植物叶片叶子病害检测数据集VOC+YOLO格式2258张30类别

Tomato two spotted spider mites leaf (番茄二斑叶螨危害叶) 框数 = 2。Tomato Septoria leaf spot (番茄斑枯病叶) 框数 = 426。Tomato Early blight leaf (番茄早疫病叶) 框数 = 212。Tomato leaf late blight (番茄晚疫病叶) 框数 = 218。Corn leaf blight (玉米叶枯病叶) 框数 = 368。Tomato mold leaf (番茄叶霉病叶) 框数 = 295。

FL1623863129的博客 970

GVINS数据采集(u-blox fp9 + D435i)

1、配置千寻的RTK账号 采集数据当天购买千寻的RTK账号,然后在Window下,输入账号和密码 (具体的步骤如之前面连接所示),查看u-center软件上的信息,确保接收机可以收到RTK信息; 2、查看Linux系统下u-blox是否可以正常接受GPS信号和RTK数据流 1、GPS信号信息 // 打开端口 1 cd ublox_f9p/src // 或者在终端1下也可以 source devel/setup.bash r.....................

努力努力努力 2609

【WRF工具】WRF Domain Wizard第一期:软件下载及安装

【WRF工具介绍】WRF Domain Wizard-确定模拟区域

WW、forever的博客 2918

通过学习训练玉米叶片病变病害数据集 如何建立基于深度学习Yolov10玉米叶片病变病害检测识别

通过学习训练玉米叶片病变病害数据集 如何建立基于深度学习Yolov10玉米叶片病变病害检测识别

2401_86822270的博客 996

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 瓦林根航拍图像建筑物实例分割数据集
下一篇: 【工业计量优选|水表刻度CRNN文字识别数据集|YOLO目标检测+PP-OCR双标注|1500张实拍图像全套训练方案
DeepLearningYolo
博客等级 码龄1年 94粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值