铁制品腐蚀缺陷检测YOLO数据集:开箱即用,省去标注与划分
简介这份资源面向从事工业质检、缺陷检测方向的算法工程师与深度学习学习者提供铁制品表面腐蚀缺陷的YOLO格式目标检测数据集可直接用于YOLOv5等框架的训练与验证。数据按YOLOv5标准目录组织类别仅含corrosion一类划分为训练集约5500张、验证集约500张、测试集约260张每张图片均配有对应的标签txt文件并附有classes类别文件方便直接接入检测流程。压缩包共约2000个文件以1999个txt标注文件与1个Python可视化脚本为主整体约478.84MB。其中可视化脚本无需修改即可运行随机传入一张图片便能绘制边界框并保存到当前目录便于快速核查标注质量。目前已有537人学习下载适合需要现成腐蚀缺陷数据、想省去标注与划分成本、快速开展模型训练与效果验证的读者参考使用。1. 铁制品腐蚀缺陷检测一份开箱即用的 YOLO 数据集到底省掉了哪些活工厂质检线上镀锌钢板、铸铁法兰、钢结构件在潮湿或盐雾环境里放几周表面就会冒出红褐色的锈斑、点蚀坑和片状剥落。这些缺陷如果靠人眼在传送带旁盯漏检率高、标准还不统一。用 YOLO 做铁制品表面腐蚀缺陷目标检测是这两年工业视觉里落地比较快的一条路而真正卡住大多数人的不是模型结构是数据集——自己拍、自己标、自己划分、自己写可视化脚本一套流程走完两周就没了。这份「铁制品表面腐蚀缺陷目标图像检测」数据集要解决的正是这个前置问题它把已经划分好的训练/验证/测试集、类别 class 文件、数据可视化脚本一起打包让你拿到手就能直接喂给 YOLO 训练把精力放在调参和部署上。适合两类人一类是想入门 YOLO 目标检测但被数据准备劝退的新手另一类是手上有产线图像、想先拿一份标准腐蚀数据集跑通 baseline 再迁移的工程师。下面按「数据集长什么样 → 怎么接进 YOLO → 怎么验证 → 坑在哪」的顺序讲透。2. 拆开这份腐蚀数据集目录结构、class 文件与标注格式2.1 目录长什么样先对齐 YOLO 的约定YOLO 系列从 v5 到 v8、v11对数据集的目录约定基本一致一个images放图一个labels放同名 txt训练/验证/测试各一套。这份数据集既然标注了「划分好的」意味着你不需要再跑train_test_split直接按下面的结构摆放即可corrosion_dataset/ ├── images/ │ ├── train/ # 训练集图像 │ ├── val/ # 验证集图像 │ └── test/ # 测试集图像 ├── labels/ │ ├── train/ # 与 train 图像同名的 txt │ ├── val/ │ └── test/ ├── classes.txt # 类别名一行一个 └── visualize.py # 数据可视化脚本关键点是images/train/xxx.jpg必须和labels/train/xxx.txt同名同数量YOLO 加载时是按文件名去配对的少一个 txt 那张图就会被当成负样本或直接报错。常见做法是先用一行命令核对配对情况别等训练跑起来才发现# 核对图像与标签是否一一对应输出只在一侧出现的文件名 comm -3 \ (ls corrosion_dataset/images/train | sed s/\.[^.]*$// | sort) \ (ls corrosion_dataset/labels/train | sed s/\.txt$// | sort)comm -3会打印两个列表的差集左边一列是只在图像里出现的右边一列是只在标签里出现的。正常情况应该没有任何输出。如果图像是.jpg、.png混着放sed s/\.[^.]*$//这一步会把扩展名统一去掉再比对避免因为格式不同误判。2.2 class 文件类别顺序决定模型输出含义classes.txt是整份数据集的「字典」YOLO 训练时标签 txt 里每行的第一个数字是类别索引这个索引对应的名字就来自 class 文件。腐蚀缺陷通常分几类比如rust锈蚀、pitting点蚀、spalling剥落顺序一旦定下就不能改rust pitting spalling这里有个血泪经验标签里的0永远指classes.txt的第一行。如果你中途调整了 class 文件顺序却没重新生成标签模型学到的就是错位的类别训练 loss 看着正常推理时全乱。所以 class 文件一旦确定要么不动要么用脚本批量重映射标签索引。数据集的data.yaml里也要同步写清楚# data.yaml —— YOLO 训练入口配置 path: ./corrosion_dataset # 数据集根目录 train: images/train # 相对 path 的训练集路径 val: images/val test: images/test nc: 3 # 类别数必须等于 classes.txt 行数 names: # 顺序必须与 classes.txt 完全一致 0: rust 1: pitting 2: spallingnc和names是 YOLO 读取类别信息的两个字段nc写错会导致输出通道数不匹配直接报错names顺序写错则是「静默错误」——不报错但结果全错。我一般会在训练前打印一遍classes.txt和data.yaml的 names 做肉眼比对这一步花十秒能省掉几小时排查。2.3 标注格式YOLO txt 的五个数字怎么读YOLO 用的是归一化中心点格式每行class_id x_center y_center width height后四个都是 0~1 的相对值不是像素。腐蚀缺陷的标注框如果是从 VOC 的 XML 或 COCO 的 JSON 转过来的最容易翻车的就是忘了归一化# 把 VOC 的像素坐标转成 YOLO 归一化坐标 def voc_to_yolo(xmin, ymin, xmax, ymax, img_w, img_h): x_center (xmin xmax) / 2.0 / img_w # 中心点 x 归一化 y_center (ymin ymax) / 2.0 / img_h # 中心点 y 归一化 w (xmax - xmin) / img_w # 宽归一化 h (ymax - ymin) / img_h # 高归一化 # 裁剪到 [0,1]防止标注越界导致训练异常 return [min(max(v, 0.0), 1.0) for v in (x_center, y_center, w, h)]四个值的含义分别是框中心相对整图宽高的比例、框宽高相对整图宽高的比例。归一化后所有值都在 0~1 之间如果出现大于 1 或负数说明原标注框超出了图像边界需要裁剪。腐蚀缺陷常常贴着图像边缘标注时框稍微超出一点很常见min(max(...))这一步就是兜底。转换完建议抽查几张用可视化脚本画出来和原图对照别信「转换脚本跑完没报错就等于对」。3. 把数据集接进 YOLO从环境到第一次训练跑通3.1 环境配置ultralytics 一条命令起步现在主流做法是用 ultralytics 这个库它把 YOLOv8、v11 等版本的训练、验证、导出统一了接口。环境配置对新手来说是最容易卡住的一步常见做法是建一个干净的 conda 环境再装# 创建独立环境避免和系统里的 torch 冲突 conda create -n corrosion python3.10 -y conda activate corrosion # 安装 ultralytics会自动带上匹配的 torch pip install ultralytics # 验证安装能打印版本号就说明通了 yolo versionPython 选 3.10 是因为它在 torch 和各类视觉库上的兼容性最稳3.12 有时会遇到某些依赖还没出轮子。pip install ultralytics会自动解析并安装对应 CUDA 版本的 torch如果你机器上有 GPU装完可以用python -c import torch; print(torch.cuda.is_available())确认一下是不是 True返回 False 说明装成了 CPU 版训练会慢到怀疑人生。这一步没有玄学就是环境隔离 版本匹配别在系统 Python 里硬装。3.2 第一次训练最小可跑命令与参数含义数据集和data.yaml准备好后第一次训练不要一上来就调参先用默认配置跑通确认整条链路没问题# 最小训练命令先跑通再谈调优 yolo detect train \ data./corrosion_dataset/data.yaml \ modelyolov8n.pt \ epochs50 \ imgsz640 \ batch16 \ projectruns/corrosion \ namebaseline逐项说清楚data指向刚才写的 yamlmodelyolov8n.pt用 nano 版预训练权重小、快适合先验证流程腐蚀缺陷这种纹理特征明显的任务nano 版往往就能给出不错的 baselineepochs50是训练轮数先跑 50 看 loss 曲线趋势imgsz640是输入分辨率腐蚀缺陷有的很小分辨率太低会丢细节640 是通用起点batch16按显存调8G 显存跑 640 一般能到 16爆显存就减半。project和name决定结果存哪跑完在runs/corrosion/baseline/下能看到权重、曲线和混淆矩阵。训练启动后重点盯两个东西一是box_loss和cls_loss是否稳定下降二是验证集 mAP 有没有跟着涨。如果 loss 降但 mAP 不涨多半是过拟合或标注有问题如果 loss 一开始就 NaN检查学习率和标签里有没有越界值。第一次跑通的意义在于建立信心和基线别急着上大模型。3.3 用可视化脚本验证标注质量数据集自带的visualize.py是排查标注问题的后悔药。训练前先跑一遍把标注框画到原图上肉眼扫一遍有没有框歪、框漏、类别标错# visualize.py 核心逻辑读图 读标签 画框 import cv2 import os CLASSES [rust, pitting, spalling] COLORS [(0, 0, 255), (0, 255, 0), (255, 0, 0)] # 每类一个颜色 def draw_one(img_path, label_path, save_path): img cv2.imread(img_path) h, w img.shape[:2] if os.path.exists(label_path): with open(label_path) as f: for line in f: cid, xc, yc, bw, bh map(float, line.split()) # 归一化坐标还原成像素坐标 x1 int((xc - bw / 2) * w) y1 int((yc - bh / 2) * h) x2 int((xc bw / 2) * w) y2 int((yc bh / 2) * h) cv2.rectangle(img, (x1, y1), (x2, y2), COLORS[int(cid)], 2) cv2.putText(img, CLASSES[int(cid)], (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, COLORS[int(cid)], 2) cv2.imwrite(save_path, img)这段逻辑的关键是「归一化坐标乘回图像宽高」还原成像素框xc - bw/2是左上角 xxc bw/2是右下角 xy 同理。跑完把生成的图翻一遍重点看三类问题框是否贴合缺陷、有没有缺陷没被框住、类别颜色对不对。腐蚀缺陷边界模糊标注时框大一点小一点都正常但如果整张图框全偏到一角那就是坐标转换时宽高搞反了。这一步做完再训练能避免模型学一堆错误信号。4. 训练结果怎么读mAP、混淆矩阵与腐蚀缺陷的漏检排查4.1 看懂验证输出mAP50 和 mAP50-95 的区别训练跑完runs/corrosion/baseline/下会有一堆结果文件最该看的是results.csv和confusion_matrix.png。mAP 有两个常被混淆的指标mAP50 是 IoU 阈值取 0.5 时的平均精度mAP50-95 是从 0.5 到 0.95 每隔 0.05 取一次再平均后者更严格。腐蚀缺陷检测里如果 mAP50 高但 mAP50-95 低说明框的位置不够准缺陷边界模糊导致的定位误差大这时候可以考虑换更大的模型或提高输入分辨率。指标含义腐蚀检测里的参考意义mAP50IoU0.5 的平均精度反映「有没有检出来」mAP50-95多阈值平均反映「框得准不准」precision查准率误报多不多recall查全率漏检多不多工业场景里 recall 往往比 precision 更重要漏掉一个腐蚀点可能意味着整批产品出问题误报还能靠人工复核兜底。所以调参时如果要在两者间取舍优先保 recall。4.2 混淆矩阵类别之间的互相误判confusion_matrix.png能直接看出模型把哪类认成了哪类。腐蚀数据集里rust和pitting容易混因为点蚀初期也是红褐色视觉上和锈蚀高度相似。如果矩阵显示大量pitting被预测成rust有两个方向一是补充点蚀的样本尤其是小尺寸、密集分布的点蚀二是在标注规范上把两类边界定义清楚比如按缺陷直径或深度区分而不是靠颜色。类别定义模糊是数据集层面的问题靠调模型解决不了。4.3 漏检排查从预测结果反推数据问题拿训练好的权重在测试集上跑推理把漏检的图挑出来单独看# 在测试集上推理保存带框的结果图 yolo detect predict \ modelruns/corrosion/baseline/weights/best.pt \ source./corrosion_dataset/images/test \ conf0.25 \ saveTrue \ projectruns/corrosion \ nametest_predconf0.25是置信度阈值低于它的框不显示。漏检排查时可以先把这个值降到 0.1看漏掉的缺陷是不是「低置信度但确实存在」如果是说明模型学到了特征但不够自信可以增加该类样本或调整损失权重如果降到 0.1 还是完全没有那就是模型根本没学到得回头看这类缺陷在训练集里够不够、标注对不对。这个从结果反推数据的思路比盲目调参有用得多。5. 腐蚀数据集避坑五条踩过的坑和对应解法5.1 坑一标签索引和 class 文件对不上现象训练 loss 正常下降但推理时所有框的类别都是错的或者某一类永远检不出来。原因中途改过classes.txt的顺序或者data.yaml里的names和 class 文件不一致标签 txt 里的索引没跟着重映射。解决固定 class 文件后不再改动如果必须改写脚本按旧新映射表批量重写所有标签的第一个数字改完用可视化脚本抽查确认。5.2 坑二图像和标签文件名不匹配现象训练日志里提示找不到标签或者警告大量图片被跳过实际参与训练的样本远少于预期。原因图像是.jpg标签生成时用了.png做前缀或者复制文件时漏了一批。解决用 2.1 节那条comm -3命令核对确保每个图像都有同名 txt批量重命名时统一用图像文件名去掉扩展名作为标签名。5.3 坑三归一化坐标越界现象训练早期 loss 出现 NaN或者可视化时框跑到图像外面。原因从 VOC/COCO 转换时没做边界裁剪标注框超出图像范围归一化后出现大于 1 或负值。解决转换函数里加min(max(v, 0.0), 1.0)裁剪转换后跑一遍校验脚本统计所有标签值的范围发现越界就定位到具体文件修正。5.4 坑四类别极度不平衡导致小类被忽略现象rust检得很好spalling几乎全漏。原因剥落样本数量远少于锈蚀模型倾向于预测多数类。解决先统计各类框数量差距悬殊时对少数类做增强旋转、裁剪、加噪或在训练配置里调类别权重也可以先合并相似类别跑通再逐步细分。5.5 坑五验证集和训练集同源导致指标虚高现象验证集 mAP 很高但换一批新图推理效果断崖式下跌。原因划分数据集时按随机切分同一块铁件的不同角度图同时进了训练和验证模型其实「见过」。解决按工件或按拍摄批次划分保证验证集的工件在训练集里没出现过这份数据集既然已经划分好用之前先确认它的划分依据是不是按样本独立性来的。6. 进阶用数据可视化脚本做标注质量闭环数据集自带的visualize.py不只是训练前看一眼它可以做成一个标注质量闭环工具。我的习惯是把它扩展成「批量生成 统计报表」跑完所有训练集图像统计每类的框数量、平均框面积、框的宽高比分布用这些数字反推标注是否合理。比如点蚀的框如果平均面积和锈蚀差不多大那大概率是标注时没区分尺度模型自然学不好。# 统计每类框的数量和平均面积占比辅助判断标注质量 import os from collections import defaultdict stats defaultdict(lambda: {count: 0, area: 0.0}) label_dir corrosion_dataset/labels/train for fname in os.listdir(label_dir): with open(os.path.join(label_dir, fname)) as f: for line in f: cid, xc, yc, bw, bh map(float, line.split()) stats[int(cid)][count] 1 stats[int(cid)][area] bw * bh # 归一化面积 for cid, s in sorted(stats.items()): avg s[area] / s[count] if s[count] else 0 print(fclass {cid}: {s[count]} boxes, avg area ratio {avg:.4f})这段统计跑完如果发现某类框数量只有个位数那这类基本训不出来得补样本如果某类平均面积占比异常大比如超过 0.5说明框画得太粗可能把整块区域都框进去了。这些数字比肉眼看图更快暴露问题。验证方法上我一般会留一个「黄金测试集」——手工确认过标注、且和训练数据不同批次的几十张图每次模型更新都在这上面跑一遍看 mAP 和漏检情况。这个集合不参与训练是判断模型真实泛化能力的锚点。腐蚀检测落地到产线最终看的不是验证集数字是黄金测试集上的稳定表现。说到底一份划分好、带 class 文件和可视化脚本的数据集价值不在于省了标注那几天而在于它给了一个标准参照——你可以先在这上面跑通全流程建立对 YOLO 训练、验证、排查的完整手感再把这套流程迁移到自己产线的数据上。我踩过最深的坑就是跳过可视化直接训练结果花了两天调参最后发现是标注框整体偏了。先看数据再动模型这个顺序别反。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

PHP集成活体识别:V步骤1实现可审计合规验证

PHP集成活体识别:V步骤1实现可审计合规验证

1. 项目概述:为什么PHP项目现在必须嵌入活体识别能力最近三个月,我连续接手了三个不同行业的风控系统改造需求——某在线教育平台的教师资质核验、某本地生活服务平台的骑手身份绑定、还有某金融信息中介的用户实名认证环节。它们表面业务差异很大&#…

2026/10/10 0:52:25 阅读更多 →
Ubuntu 22.04 实时内核打造指南:PREEMPT_RT 补丁完整实操

Ubuntu 22.04 实时内核打造指南:PREEMPT_RT 补丁完整实操

开发自己的 Ubuntu 22.04 实时内核发行版:一次完整打 RT 补丁的实操记录这两年做数据采集和机器人的项目越来越多,现场调试时遇到最多的一个问题,就是“为什么我 ping 一下走个网络,电机控制就抖了一下?”说白了&#…

2026/10/10 0:52:25 阅读更多 →
为什么 qwen 3.7 flash 评论很少?从 API 调用日志看真实使用门槛

为什么 qwen 3.7 flash 评论很少?从 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/10 0:51:25 阅读更多 →

最新新闻

Ouroboros Seed Architect 完全指南:从访谈会话到不可变 Seed 规格的需求提取与验收契约设计

Ouroboros Seed Architect 完全指南:从访谈会话到不可变 Seed 规格的需求提取与验收契约设计

AI Agent人工智能代码智能体Agent 编排AI 评测CLI开发工具 【免费下载链接】ouroboros Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CL…

2026/10/10 1:39:42 阅读更多 →
Loro MovableList 非法 Move/Set 操作的导入校验:从 panic 崩溃到整批回滚的防御性设计

Loro MovableList 非法 Move/Set 操作的导入校验:从 panic 崩溃到整批回滚的防御性设计

后端 【免费下载链接】loro Make your JSON data collaborative and version-controlled with CRDTs 项目地址: https://gitcode.com/gh_mirrors/lo/loro 点击查看 免费下载 导读 本文围绕 Loro(CRDT 数据协同引擎)对 MovableList&#xff…

2026/10/10 1:39:42 阅读更多 →
PCA9422与PIC18F87K22协同实现工业级电源管理

PCA9422与PIC18F87K22协同实现工业级电源管理

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

2026/10/10 1:39:42 阅读更多 →
PCA9422+PIC24FV16KA302超低功耗电源管理实战

PCA9422+PIC24FV16KA302超低功耗电源管理实战

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

2026/10/10 1:39:42 阅读更多 →
oneTBB queuing_rw_mutex 全面解析:公平排队读写锁的实现原理与实战用法

oneTBB queuing_rw_mutex 全面解析:公平排队读写锁的实现原理与实战用法

并发编程高性能计算 【免费下载链接】oneTBB oneAPI Threading Building Blocks (oneTBB) 项目地址: https://gitcode.com/gh_mirrors/on/oneTBB 点击查看 免费下载 导读:queuing_rw_mutex 是 oneAPI Threading Building Blocks(oneTBB&…

2026/10/10 1:39:42 阅读更多 →
Kong 官方 Prometheus 插件 Grafana 仪表盘深度解析与导入实战

Kong 官方 Prometheus 插件 Grafana 仪表盘深度解析与导入实战

API网关后端LLM 网关微服务人工智能 【免费下载链接】kong 🦍 The API and AI Gateway 项目地址: https://gitcode.com/GitHub_Trending/ko/kong 点击查看 免费下载 本文围绕 Kong 仓库中 Prometheus 插件的官方 Grafana 集成文件展开:kong/…

2026/10/10 1:38:42 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →