无人机森林燃烧桩识别:图像分类数据集与YOLOv5/PyTorch训练实践
简介面向图像分类与目标检测学习者的无人机视角森林桩燃烧识别数据集数据来源于大型无人机俯拍场景贴近野外真实环境包含燃烧、未燃烧两类样本可作为二分类网络的训练数据也可直接用于YOLOv5分类项目。包内已按训练集、测试集划分好文件夹训练集约2万张图片测试集约8600张同时提供类别字典JSON文件与可视化脚本便于核对标签、预览样本并确认数据质量类别字典中记录了各类别对应的标签信息省去自行整理的环节。资源共2000个文件主体为1998张JPG图片另有1个Python脚本和1个JSON文件压缩包大小约807.61MB采用7z格式目录结构清晰解压后即可直接开始训练。目前已有86人学习下载适合需要现成航拍分类数据进行实验、课程设计或算法对比的开发者。1. 图像分类数据集的下手姿势无人机视角森林桩燃烧识别先看清两个类再谈炼丹做森林防火巡检的人都知道真正麻烦的不是大范围明火而是火后残留的燃烧桩——烟小、温度高、和未燃烧树桩从几十米高度看下去长得几乎一样。这份无人机视角森林桩燃烧图像分类数据集解决的就是这个“看起来像、烧没烧”的二分类问题类别只有燃烧和未燃烧两个但训练集给了2万张测试集给了8600张还按文件夹划分好附带json类别字典文件。对做图像分类模型的从业者来说它可以直接喂给YOLOv5分类分支也可以当作PyTorch分类网络的baseline数据集。适合三类人做森林防火视觉识别的、复现YOLOv5 classify流程的、需要现成无人机航拍数据验证CNN方案的。2. 先拆目录再谈训练数据集结构与类别字典文件的使用方法2.1 data目录下的实际布局与json字典下载解压后第一件事不是写训练脚本而是先把目录结构摸清楚。这份数据集的根目录结构非常简洁data目录下只分训练集和测试集每类图片单独放一个文件夹data/ ├── train/ │ ├── 0/ # 未燃烧类约 10000 张 │ └── 1/ # 燃烧类约 10000 张 ├── test/ │ ├── 0/ # 未燃烧类约 4300 张数值为估算 │ └── 1/ # 燃烧类约 4300 张 └── classes.json # 类别字典文件这里要特别解释一下类别文件夹的数字编号。数据集的分类标签直接由文件夹名决定classes.json里保存的是数字ID和类别名的映射关系。你可以用一条Python命令加载看看import json with open(data/classes.json, r, encodingutf-8) as f: class_dict json.load(f) print(class_dict) # 常见输出格式: {0: unburned, 1: burned} # 或: {0: 0, 1: 1}具体以实际文件为准json文件的格式会因为整理数据的人而异有的直接把类别名写进去有的只存编号。逻辑说明加载json就是为了拿到“文件夹数字ID → 阅读友好的类别名”这个映射后续做混淆矩阵、画分类报告都要用到千万别跳过。参数说明这段代码只是读取不需要额外安装依赖标准json库即可。2.2 固定划分是什么意思为什么比随机划分更省心很多公开数据集给的是“全体图片标注文件”划分训练测试要自己动手。这份数据集的价值恰恰在于训测已经固定划分好了——放dataloader时直接指向两个目录就行。你可能会问固定划分会不会不如自己随机划分科学对于这种场景我的观点是先用官方划分跑通基线后续要对比不同模型时再考虑交叉验证。从文件名也能看出数据来源几乎所有图片都是resized_frame前缀像resized_frame8368.jpg、resized_frame8364.jpg这是典型的从视频帧抽取后统一缩放命名的痕迹。这意味着数据来自无人机拍摄的视频流相邻帧之间可能有较强的相似性。2.3 数据集做YOLOv5分类输入时的目录适配如果用YOLOv5的分类分支训练它默认的目录约定是datasets目录下放train和test两个兄弟文件夹。这份数据集的data目录结构刚好符合YOLOv5 classify的基本约定但注意YOLOv5官方分类教程里通常允许train和val并列这里叫test不影响使用。我的做法是把data链接过去# 在YOLOv5仓库下执行 ln -s /absolute/path/to/data /path/to/yolov5/datasets/fire_stump # 然后检查目录是否可读 find datasets/fire_stump -maxdepth 2 -type d逻辑说明软链接方式避免了重复拷贝3万张图片省磁盘空间分类训练时YOLOv5会自动读取train和test两个子目录。参数说明路径必须给绝对路径否则yolov5的datasets加载逻辑容易找不到目录如果你对软链接不熟也可以直接复制代价是磁盘占用翻倍。3. 把数据集跑进YOLOv5分类训练命令、参数与三个必改项3.1 YOLOv5分类分支的启动命令与参数含义YOLOv5从5.0之后带了classify模块训练入口是classify/train.py和检测训练是分开的。数据准备好后一份能直接跑的基线命令如下python classify/train.py \ --model yolov5s-cls.pt \ --data datasets/fire_stump \ --epochs 60 \ --img 224 \ --batch 64 \ --device 0 \ --name fire_stump_cls逻辑说明yolov5s-cls.pt是官方预训练分类权重学生网络小但速度够快对无人机机载推理场景友好。data参数指向的是数据集根目录img224对应分类网络常见输入尺寸batch由显存决定。参数说明epochs我建议先从60起步观察验证准确率曲线是否还有明显上升如果到50轮已经平了说明可以提前收敛batch如果显存不够就降到32梯度更新的效果差异在分类任务里通常不大。跑完后结果存在runs/classify/fire_stump_cls目录下里面有权重文件和混淆矩阵图。如果一切正常训练集2万张、测试8.6千张的规模60轮在单张消费级显卡上大约半小时到一小时。3.2 类别字典与训练结果的对应关系训练完成后你拿到的混淆矩阵横纵坐标是0和1。要想让结果对业务方有意义务必把模型预测的类别ID映射回classes.json里定义的名字。我有一个常用小脚本在推理时打印可读类别import json import torch from PIL import Image from torchvision import transforms with open(data/classes.json, r) as f: idx_to_name {int(k): v for k, v in json.load(f).items()} model torch.load(runs/classify/fire_stump_cls/weights/best.pt, map_locationcpu) model.eval() tfms transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ]) img Image.open(resized_frame8368.jpg).convert(RGB) pred model(tfms(img).unsqueeze(0)) cls_id pred.argmax(dim1).item() print(idx_to_name[cls_id])逻辑说明这段代码加载训练好的best.pt对单张无人机图片做推理。关键是最后一步的idx_to_name映射否则打印出的永远只是0或1。参数说明Normalize的均值和标准差是ImageNet标准值YOLOv5分类分支训练时用的就是这套。3.3 训练时的固有大坑类别文件夹命名与数据增强在用这份数据集做YOLOv5分类时有几个点容易被忽略。首先是类别文件夹名字YOLOv5 classify对文件夹名的处理是直接取文件夹名当标签如果文件夹名叫0和1那训练日志里显示的class就是0和1和classes.json内容无关——json文件只是给你的字典训练程序不会主动去读。其次是增强策略YOLOv5的分类训练默认启用RandAugment对航拍图像效果不错但如果你的测试集和训练集分布差异很大不要盲目加强增强强度。YOLOv5 classify的增强参数是--hyp默认hyp.scratch.yaml里包含hsv_h、hsv_s、hsv_v这些颜色扰动项。无人机视角下的燃烧桩和未燃烧桩颜色差异是关键特征HSV饱和度扰动过大会把这种差异削弱。我的做法是把hsv_s从默认的0.7改到0.4左右训练稳定性会更好。4. 用PyTorchCNN做二次验证既然给了类别字典就自己搭一套分类网络4.1 用ImageFolder加载2万张图省掉手写Dataset的烦心事YOLOv5的打包方案好用但它内部封装太重出了问题不好定位。我建议拿到这份数据集后再用PyTorch搭一个简单的分类管线做交叉验证。数据集按文件夹分好类PyTorch的ImageFolder直接能用from torchvision import datasets, transforms train_tfms transforms.Compose([ transforms.Resize((224, 224)), transforms.RandomHorizontalFlip(p0.5), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ]) test_tfms transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ]) train_data datasets.ImageFolder(data/train, transformtrain_tfms) test_data datasets.ImageFolder(data/test, transformtest_tfms) print(train_data.classes) # 文件夹名列表 print(train_data.class_to_idx) # 文件夹名到索引的映射逻辑说明ImageFolder要求每个类别一个子目录子目录名就是标签train_data内部会生成class_to_idx字典。参数说明Resize到224×224是分类网络的通用尺寸resized_frame前缀说明原图已经做过一次缩放但尺寸未必是224这里再强转一次保证输入统一Normalize的数值是ImageNet统计值迁移学习场景下不要改成别的。4.2 用ResNet18做迁移学习固定特征层只训全连接头这份数据集的难点在于类别间视觉差异小燃烧桩和未燃烧桩在航拍高度下可能只是颜色偏黑偏灰的区别。直接从头训一个深网络容易过拟合迁移学习是更稳的方案。我一般用ResNet18import torch.nn as nn import torchvision.models as models model models.resnet18(weightsmodels.ResNet18_Weights.IMAGENET1K_V1) for param in model.parameters(): param.requires_grad False num_features model.fc.in_features model.fc nn.Sequential( nn.Dropout(0.3), nn.Linear(num_features, 2) ) # 只更新全连接层 optimizer torch.optim.Adam(model.fc.parameters(), lr1e-3) criterion nn.CrossEntropyLoss()逻辑说明冻结全部卷积层参数只训练最后的全连接头好处是收敛快、不易过拟合对2万张训练数据的规模来说足够了。参数说明Dropout加在分类头之前0.3是个比较稳的经验值Adam配1e-3的学习率在这个设置下通常20轮左右就能看到较高准确率。如果想让效果更好可以解冻最后几层卷积再以更低的学习率微调。4.3 训练循环里的两个监控点验证集准确率和单类召回准备好模型后写一个标准训练循环注意每个epoch结束都要在测试集上评估。二分类任务里光看整体准确率不够要同时看燃烧这一类别的召回率——漏报燃烧桩在林业巡检场景里是不能接受的def evaluate(model, loader): model.eval() correct, total 0, 0 cls_correct {0: 0, 1: 0} cls_total {0: 0, 1: 0} with torch.no_grad(): for inputs, labels in loader: outputs model(inputs) preds outputs.argmax(dim1) correct (preds labels).sum().item() total labels.size(0) for c in range(2): mask labels c cls_correct[c] (preds[mask] c).sum().item() cls_total[c] mask.sum().item() acc correct / total recall_1 cls_correct[1] / max(cls_total[1], 1) return acc, recall_1逻辑说明整体准确率容易被样本数量多的类别拉高单独统计类别1燃烧的召回率才能发现模型是否偏向把燃烧桩判成未燃烧。参数说明max(cls_total[1], 1)是防止除零的保护。5. 避坑与常见问题排查图像分类数据集的六个典型翻车点5.1 相邻帧数据泄漏resized_frame前缀暗示的测试集污染风险现象训练准确率接近99%测试集准确率也很高但放到自己采集的无人机视频上表现明显变差。原因图片文件名是resized_frame连续编号很可能同一段视频的相邻帧被同时切进了训练集和测试集模型见过了几乎相同画面的“测试图”。解决按文件名编号做时序切分验证比如每隔N帧取一张组成独立测试集观察精度是否显著下降如果确实存在泄漏就用时间维度的前70%做训练、后30%做测试重新评估泛化能力。5.2 类别字典文件与文件夹名不一致现象训练脚本报错或者训练完了打印的类别名和classes.json对不上。原因json是数据集作者提供的说明文件训练程序只认文件夹名如果你的脚本用json里的类别名去文件夹里找索引会因为大小写或命名差异失败。解决固定用ImageFolder或YOLOv5的文件夹解析逻辑作为唯一标签来源json只用于展示和输出映射不用于定位文件。5.3 图片透明通道或损坏文件导致的加载失败现象DataLoader跑到一半抛UnidentifiedImageError或OSError训练中断。原因无人机视频抽帧后偶尔会有个别损坏帧虽然经过了resize处理但仍可能出现无法解码的JPEG。解决先写脚本清洗数据集PIL打开失败的文件直接移到单独目录from PIL import Image import os, glob for path in glob.glob(data/**/*.jpg, recursiveTrue): try: with Image.open(path) as im: im.load() except Exception: print(fcorrupt: {path}) os.rename(path, path.replace(data, corrupt_data))逻辑说明PIL的load方法是真正解码像素能筛出无法使用的损坏图。参数说明glob的recursiveTrue配合data/**/*.jpg能同时覆盖train和test下所有子目录。5.4 训练集测试集类别比例失衡现象整体准确率很高但混淆矩阵里某一行数字特别小。原因20k训练图片中燃烧和未燃烧不一定恰好各占一半如果目录结构里两类数量差异较大会让模型偏向多数类。解决训练前统计每个文件夹的文件数如果偏差超过10%就在采样器里给少数类加权WeightedRandomSampler或对少数类做过采样。5.5 YOLOv5训练时误把数据集当检测数据集处理现象训练命令跑成了detect模式报labels缺失。原因YOLOv5同时支持检测和分类入口一个是train.py一个是classify/train.py目录结构约定也不同。解决确认用了classify分支的训练命令且数据目录下没有labels文件夹分类任务不需要标注文件子目录名就是标签。6. 用一个混淆矩阵加十张误判图把模型交付出去才靠谱训练收敛后别急着把best.pt发给业务方。我自己的习惯是强制自己走一遍“成果物四件套”混淆矩阵、逐类精确率召回率、误判图抽样、类别激活可视化。对于这份二分类数据集混淆矩阵可以直接验证前面担心的类别失衡和相似类误分问题import numpy as np from sklearn.metrics import confusion_matrix import torch model.eval() all_preds, all_labels [], [] with torch.no_grad(): for inputs, labels in test_loader: outputs model(inputs) all_preds.extend(outputs.argmax(dim1).tolist()) all_labels.extend(labels.tolist()) cm confusion_matrix(all_labels, all_preds) print(cm)拿到混淆矩阵后找出所有被误判的样本按概率值排序把“模型非常确信但实际错误”的图挑出来存成一张拼图。这类数据集的误判原因通常集中在两类一是高度过高导致树桩纹理细节丢失二是阴影覆盖下燃烧痕迹不明显。把这些图发给业务方比口头说“准确率98%”有说服力得多。从那以后我每次提交分类模型都强制先跑一遍这套成果物检查宁可多花十分钟也不让看不见的毛病留到现场。这份无人机森林桩燃烧数据集结构清爽、划分固定很适合拿来当图像分类的练手和验证材料希望帮到你。本文还有配套的精品资源点击获取

相关新闻

把 ESP32 变成 AI 语音助手:xiaozhi-esp32 完整上手路线

把 ESP32 变成 AI 语音助手:xiaozhi-esp32 完整上手路线

把 ESP32 变成 AI 语音助手:xiaozhi-esp32 完整上手路线 【免费下载链接】xiaozhi-esp32 An MCP-based chatbot | 一个基于MCP的聊天机器人 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 给 ESP32 接上麦克风和喇叭,喊一声唤…

2026/10/1 17:59:27 阅读更多 →
VS Code原生Vue模板配置:支持setup、SCSS和TypeScript

VS Code原生Vue模板配置:支持setup、SCSS和TypeScript

1. 项目概述&#xff1a;为什么一个“快速生成Vue模板”的功能值得花一整篇干货讲透&#xff1f; 在 Vue 项目开发的日常里&#xff0c;我每天至少要新建 3~5 个 .vue 文件——组件、页面、工具函数封装、路由守卫……写一次 <template><div></div></…

2026/10/1 17:59:27 阅读更多 →
物业客服系统:从工单管理到服务调度中枢的数字化升级

物业客服系统:从工单管理到服务调度中枢的数字化升级

物业客服系统这个话题&#xff0c;我很有感触。这几年跟不少物业公司打过交道&#xff0c;听他们聊得最多的一句话就是&#xff1a;“业主总觉得我们不干活&#xff0c;可我们活儿没少干&#xff0c;就是说不清。”这话听着挺无奈&#xff0c;但也点出了一个真问题——物业不是…

2026/10/1 17:59:27 阅读更多 →

最新新闻

图幅接合图表实战指南:标准分幅规则与GIS应用全解析

图幅接合图表实战指南:标准分幅规则与GIS应用全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 20:04:31 阅读更多 →
Linux ipcalc 命令详解:IP 地址计算器的网络规划实战指南

Linux ipcalc 命令详解:IP 地址计算器的网络规划实战指南

文档教程 【免费下载链接】linux-command Linux命令大全搜索工具&#xff0c;内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux 项目地址&#xff1a; https://gitcode.com/GitHub_Trending/linux/linux-command 点击查看 免费下载 本篇指南以 linux-command 开…

2026/10/1 20:04:31 阅读更多 →
从零安装 ClaudeCode 并接入 DeepSeek:用 CC Switch 管理多模型配置

从零安装 ClaudeCode 并接入 DeepSeek:用 CC Switch 管理多模型配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 20:04:31 阅读更多 →
WorkBuddy 与 OpenClaw 深度对比:AI 桌面智能体的两条进化路径与 TaoToken 统一接入实践

WorkBuddy 与 OpenClaw 深度对比:AI 桌面智能体的两条进化路径与 TaoToken 统一接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 20:04:31 阅读更多 →
有人花 3 天做了个开源工具,一句话生成各种场景的 HTML:TaoToken 统一 Key 接入 Agent CLI 实测

有人花 3 天做了个开源工具,一句话生成各种场景的 HTML:TaoToken 统一 Key 接入 Agent CLI 实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 20:04:31 阅读更多 →
高德API地点搜索与经纬度获取:坐标系转换、配额限流与缓存实战

高德API地点搜索与经纬度获取:坐标系转换、配额限流与缓存实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 20:03:30 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集&#xff1a;Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →