电线绝缘子缺陷检测:YOLOv5从数据集到推理的完整落地路径
简介这份资源是面向计算机相关专业毕业设计场景的YOLOv5电线绝缘子缺陷检测完整项目包适合正在做毕设、课程设计或需要深度学习实战练习的学生尤其适合希望直接获得可运行方案、避免从零搭建的初学者。包内共500个文件涵盖51个Python源码、63个YAML配置、53张JPG与21张PNG样本图像、7个pt权重文件以及XML标注、CSV统计、Markdown说明和Dockerfile等压缩包约354MB覆盖数据、训练、推理与部署各环节。项目经导师指导并获评审99分代码完整可运行附带文档讲解与模型权重能帮助读者快速理解缺陷检测流程、复现训练结果并完成论文撰写。目前已有77人学习适合作为高分毕业设计的参考模板。1. 电线绝缘子缺陷检测从数据集到推理一条能跑通的 YOLOv5 落地路径输电线路巡检里绝缘子破损、掉串、自爆这类缺陷一旦漏检后果不用我多说。过去靠人眼爬塔看照片效率低还容易疲劳漏判。现在主流做法是用无人机拍图再拿 YOLOv5 这类单阶段检测器自动框出缺陷位置。这个标题讲的就是一套围绕「电线绝缘子缺陷检测」的完整工程包数据集、训练代码、预训练模型、文档讲解。它解决的是从零搭一套可复现检测流程的问题适合做计算机视觉方向毕业设计的学生也适合刚接手巡检图像识别任务的工程师。你不需要自己从零标注几千张图也不用纠结网络结构怎么改重点是理解数据怎么组织、模型怎么训、指标怎么看、推理怎么落地。2. 数据集怎么组织绝缘子缺陷标注的四个关键字段2.1 绝缘子缺陷的类别定义与标注边界拿到一个绝缘子缺陷数据集第一件事不是急着跑训练而是看类别定义。常见做法是把绝缘子本体和缺陷分开标比如insulator表示正常绝缘子broken表示破损flashover表示闪络痕迹。但不同数据集标注粒度差异很大有的只标缺陷区域有的把整串绝缘子框进去再给属性。我一般会先统计每个类别的实例数量如果某一类少于总样本的 5%训练时就要考虑过采样或 focal loss。标注边界也很关键。绝缘子破损往往发生在伞裙边缘标注框如果只框住破损缺口模型学到的是局部纹理如果框住整片伞裙模型学的是整体形状异常。两种标法对应的推理行为完全不同。毕业设计里常见的问题是标注不一致同一种缺陷有的框大有的框小导致模型置信度分布很散。建议在数据准备阶段就统一规则破损类标注框覆盖缺陷区域外扩 10 到 15 像素保证边缘信息完整。2.2 YOLO 格式转换与目录结构YOLOv5 要求标注是归一化的class_id x_center y_center width height每张图对应一个同名.txt文件。如果你拿到的原始标注是 VOC 的 XML 或 LabelMe 的 JSON需要先转换。下面是一个把 VOC 转 YOLO 的脚本片段处理了边界裁剪和类别映射import xml.etree.ElementTree as ET import os from PIL import Image # 类别映射根据你的数据集实际类别修改 CLASS_MAP {insulator: 0, broken: 1, flashover: 2} def voc_to_yolo(xml_path, img_dir, out_dir): tree ET.parse(xml_path) root tree.getroot() img_name root.find(filename).text img_path os.path.join(img_dir, img_name) w, h Image.open(img_path).size # 原图宽高用于归一化 lines [] for obj in root.findall(object): cls_name obj.find(name).text if cls_name not in CLASS_MAP: continue # 跳过未定义类别 cls_id CLASS_MAP[cls_name] bbox obj.find(bndbox) xmin float(bbox.find(xmin).text) ymin float(bbox.find(ymin).text) xmax float(bbox.find(xmax).text) ymax float(bbox.find(ymax).text) # 裁剪到图像边界内防止归一化后越界 xmin, xmax max(0, xmin), min(w, xmax) ymin, ymax max(0, ymin), min(h, ymax) x_center (xmin xmax) / 2.0 / w y_center (ymin ymax) / 2.0 / h bw (xmax - xmin) / w bh (ymax - ymin) / h lines.append(f{cls_id} {x_center:.6f} {y_center:.6f} {bw:.6f} {bh:.6f}) out_path os.path.join(out_dir, os.path.splitext(img_name)[0] .txt) with open(out_path, w) as f: f.write(\n.join(lines))这段代码的核心逻辑是读 XML 拿原图尺寸把绝对坐标转成相对坐标。参数上注意CLASS_MAP必须和后续训练时的data.yaml里names顺序一致否则类别会错位。裁剪到边界内是防止标注框超出图像范围导致归一化值大于 1YOLOv5 虽然能容忍但训练时会出现损失异常。目录结构建议按下面组织images和labels分开train 和 val 各自独立dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ └── data.yamldata.yaml里写清楚train、val路径和nc、names。路径用绝对路径最稳相对路径容易因为工作目录变化找不到文件。2.3 数据增强策略与绝缘子场景适配YOLOv5 默认开启 mosaic、HSV 增强、随机翻转。但绝缘子缺陷检测有几个特殊点第一缺陷区域通常很小mosaic 四图拼接后小目标更小可能低于 8 像素反而有害第二绝缘子颜色以灰白、红棕为主HSV 增强的色调偏移不宜过大否则会把正常绝缘子变成奇怪颜色干扰模型。我一般会把hsv_h降到 0.01hsv_s和hsv_v保持默认mosaic 在最后 10 个 epoch 关闭。另外无人机拍摄角度变化大随机旋转增强很有必要。YOLOv5 没有内置任意角度旋转可以在 dataloader 里加一个自定义增强或者用 albumentations 做离线增强。离线增强的好处是可控坏处是数据量翻倍占磁盘。毕业设计里如果磁盘空间够建议离线做一次旋转和亮度扰动把训练集扩到原来的 2 到 3 倍。3. 训练自己的绝缘子数据集从权重加载到超参调整3.1 环境搭建与最小训练命令YOLOv5 的代码包拿到手先确认 PyTorch 和 CUDA 版本匹配。我一般用 conda 建环境Python 3.8 到 3.10 都行PyTorch 选 1.12 以上。依赖装完后用下面这条命令做一次最小训练确认流程能跑通python train.py \ --img 640 \ --batch 16 \ --epochs 100 \ --data dataset/data.yaml \ --weights yolov5s.pt \ --cfg models/yolov5s.yaml \ --name insulator_exp1 \ --cache--img 640是输入分辨率绝缘子缺陷如果很小可以提到 1280但显存占用会翻倍。--batch 16在 8G 显存上跑 640 分辨率基本够用不够就降到 8。--weights yolov5s.pt加载 COCO 预训练权重这是迁移学习的关键不加载的话收敛慢很多。--cache把图片缓存到内存加速训练但数据集大时慎用会吃满内存。训练开始后看控制台输出的mAP0.5和mAP0.5:0.95。绝缘子缺陷检测里mAP0.5到 0.85 以上算不错mAP0.5:0.95通常低不少因为小目标定位精度难做高。如果训练 loss 震荡先检查学习率YOLOv5 默认用余弦退火初始 lr 0.01batch 小的时候可以降到 0.005。3.2 超参数怎么调lr、anchor 和损失权重YOLOv5 的超参文件在data/hyp.scratch.yaml里面几个关键参数值得改参数默认值绝缘子场景建议原因lr00.010.005~0.01batch 小于 16 时降低lrf0.010.01最终学习率比例一般不动warmup_epochs33~5小数据集延长 warmupbox0.050.05~0.08缺陷定位要求高可加大cls0.50.5~0.8类别少时可加大obj1.01.0目标置信度损失一般不动anchor_t4.04.0anchor 匹配阈值小目标多可降到 3.0Anchor 方面YOLOv5 训练时会自动计算最佳 anchor但如果你的数据集缺陷尺寸特别集中可以手动跑python utils/autanchor.py重新聚类。我遇到过一种情况绝缘子破损区域普遍在 20 到 40 像素之间默认 anchor 里没有匹配的尺度导致召回率上不去。重新聚类后mAP0.5涨了 3 个点。损失权重里box和cls的平衡要看任务。如果误检多加大cls如果定位不准加大box。但别一次改太多每次调一个参数跑 20 个 epoch 看曲线。3.3 训练过程监控与早停判断YOLOv5 自带 TensorBoard 和 wandb 集成我一般用 TensorBoard 看 loss 和 mAP 曲线。重点看三条线train/box_loss、val/box_loss、metrics/mAP_0.5。如果 train loss 持续下降但 val loss 开始上升就是过拟合需要加数据增强或提前停。YOLOv5 的--patience参数控制早停默认 100 个 epoch 没提升就停可以设成 30 到 50省时间。还有一个玄学现象训练到一半 mAP 突然掉下去再涨回来。这通常是学习率退火到低点后模型在微调不用慌。但如果掉下去没涨回来检查是不是数据里有标注错误的图YOLOv5 对脏数据很敏感一张错标图能把 mAP 拉低好几个点。4. 模型推理与部署把检测结果落到巡检业务里4.1 单图推理与批量推理命令训练完拿到best.pt先用detect.py跑几张测试图看效果python detect.py \ --weights runs/train/insulator_exp1/weights/best.pt \ --source test_images/ \ --img 640 \ --conf 0.25 \ --iou 0.45 \ --save-txt \ --save-conf--conf 0.25是置信度阈值低于这个值的框不输出。绝缘子缺陷检测里如果漏检代价高可以降到 0.15但误检会增多。--iou 0.45是 NMS 的 IoU 阈值缺陷框重叠多的时候可以调到 0.5 到 0.6减少误抑制。--save-txt把结果存成 YOLO 格式方便后续和标注对比算指标。批量推理时--source指向文件夹YOLOv5 会遍历所有图片。如果图片数量大加--nosave不存可视化图只存 txt速度快很多。4.2 推理结果后处理置信度过滤与框合并原始输出里同一个绝缘子可能被多个框覆盖尤其是破损区域边缘模糊时。除了 NMS还可以做一次基于类别的框合并如果两个同类框 IoU 大于 0.7保留置信度高的。下面是一个简单的后处理脚本def merge_boxes(boxes, scores, labels, iou_thresh0.7): 合并同类高 IoU 框保留最高分 keep [] order scores.argsort(descendingTrue) while order.numel() 0: i order[0].item() keep.append(i) if order.numel() 1: break ious compute_iou(boxes[i], boxes[order[1:]]) # 自定义 IoU 计算 # 只抑制同类且 IoU 超阈值的框 same_cls labels[order[1:]] labels[i] mask (ious iou_thresh) | (~same_cls) order order[1:][mask] return keep这段逻辑和 NMS 类似但加了类别判断。参数iou_thresh设 0.7 比较稳太低会合并相邻绝缘子的框太高等于没合并。实际部署时这个后处理可以放在模型输出之后、业务逻辑之前。4.3 部署到边缘设备的量化思路如果要把模型放到无人机或巡检机器人上PyTorch 原版太重需要量化。常见做法是导出 ONNX 再用 TensorRT 或 OpenVINO 推理。YOLOv5 自带export.py导出 ONNX 命令python export.py \ --weights best.pt \ --include onnx \ --img 640 \ --batch 1 \ --opset 12--opset 12兼容性好--batch 1适合边缘设备。导出后可以用onnxruntime验证输出是否一致。量化到 INT8 需要校准集一般拿训练集里 100 到 200 张图做校准精度损失控制在 1 到 2 个点以内可以接受。注意绝缘子缺陷区域小量化后小目标召回可能下降校准集里要包含足够多的小缺陷样本。5. 避坑与排查绝缘子缺陷检测里最容易翻车的五件事5.1 现象训练 mAP 一直上不去loss 不降原因最常见的是类别映射错位。data.yaml里names顺序和标注文件里的class_id不一致模型学的是错位的类别。其次是图片路径不对YOLOv5 找不到图拿空图训练。还有一种可能是预训练权重没加载成功--weights路径写错模型从随机初始化开始训。解决先跑python utils/check_dataset.py检查数据完整性再打印几个标注文件确认class_id范围。加载权重时看控制台有没有Transferred X/X items的输出没有就是没加载上。5.2 现象推理时框特别多同一位置重复检测原因NMS 的 IoU 阈值设太高或者置信度阈值太低。绝缘子缺陷区域纹理复杂模型可能在同一位置输出多个框。另外如果训练时obj损失权重太低模型对背景的抑制能力弱也会导致框多。解决推理时把--iou降到 0.4 到 0.45--conf提到 0.3 以上。如果还多回去检查训练时的obj权重适当加大。也可以在推理后加一次基于类别的框合并前面 4.2 的脚本可以直接用。5.3 现象小缺陷漏检严重大缺陷正常原因输入分辨率不够小缺陷在 640 分辨率下只有几个像素特征提取不到。或者 anchor 尺度不匹配默认 anchor 最小是 10x13缺陷更小就匹配不上。还有可能是 mosaic 增强把小目标拼没了。解决把--img提到 1280显存不够就减小 batch。重新聚类 anchor用autanchor.py跑一遍。训练最后 10 个 epoch 关掉 mosaic让模型在原始尺度上微调。5.4 现象验证集指标很好实际巡检图效果差原因验证集和实际巡检图的分布不一致。验证集可能来自同一批无人机、同一光照条件而实际巡检有逆光、阴影、雨雾。另外如果验证集里缺陷样本比例过高模型会偏向预测缺陷实际正常图里误检多。解决验证集要覆盖不同光照、角度、背景。如果实际场景有雨雾训练时加随机雾化增强。验证集里正常图要占一定比例不能全是缺陷图。我一般按 7:2:1 分 train/val/testtest 集完全模拟实际巡检条件。5.5 现象导出 ONNX 后推理结果和 PyTorch 不一致原因YOLOv5 的导出脚本里输出层可能做了融合或裁剪和原版推理有差异。另外如果导出时--img和训练时不一致anchor 缩放会出错。还有可能是 ONNX 的 NMS 实现和 PyTorch 不同。解决导出时--img和训练保持一致。导出后用onnxruntime跑同一张图对比输出 tensor差异应该在 1e-3 以内。如果差很多检查--opset版本12 比较稳。NMS 建议放在 ONNX 外面做用 Python 后处理避免不同框架的 NMS 实现差异。6. 把 mAP 再提两个点一个被低估的技巧训练完模型大部分人看mAP0.5就结束了。但绝缘子缺陷检测的实际业务里漏检比误检代价高得多所以召回率比 mAP 更值得盯。我一般会在训练后期做一件事把验证集的conf阈值从 0.25 降到 0.1看召回能到多少然后在这个阈值下统计误检率。如果召回提升明显但误检增加不多说明模型对缺陷的响应是有的只是被阈值压住了。具体操作是在val.py里加一个自定义评估遍历不同conf值算 precision-recall 曲线import numpy as np from utils.metrics import ap_per_class # 假设已经拿到所有图的预测结果和标注 # preds: [N, 6] - x1,y1,x2,y2,conf,cls # targets: [M, 5] - cls,x1,y1,x2,y2 conf_thresholds np.arange(0.05, 0.55, 0.05) for conf in conf_thresholds: filtered preds[preds[:, 4] conf] # 计算 TP/FP/FN得到 precision 和 recall # 具体实现参考 val.py 里的 ap_per_class print(fconf{conf:.2f}, recall{recall:.4f}, precision{precision:.4f})跑完你会得到一条曲线通常 recall 在 conf 0.1 到 0.2 之间有个明显拐点。选拐点附近的阈值比默认 0.25 更贴合业务。我做过一个绝缘子项目默认阈值下召回 0.82降到 0.15 后召回 0.91误检只多了 3 个百分点巡检业务完全能接受。另一个技巧是测试时增强TTA。YOLOv5 自带--augment参数推理时对图片做翻转和多尺度然后合并结果。开启后mAP0.5通常能涨 1 到 2 个点代价是推理速度慢 2 到 3 倍。如果业务对实时性要求不高比如离线巡检图片分析TTA 很值得开。命令就是加一个--augmentpython detect.py --weights best.pt --source test_images/ --augment --conf 0.2注意 TTA 会放大误检所以conf要相应提高一点。我一般 TTA 时conf设 0.3比单次推理高 0.05。最后说个血泪教训别在训练中途频繁改超参。我有一次跑绝缘子实验每 10 个 epoch 调一次 lr结果模型震荡得厉害最后 mAP 还不如默认参数。后来固定超参跑满 300 epoch反而比折腾半天高 4 个点。YOLOv5 的默认超参是经过大量实验调出来的除非你有明确理由否则别乱动。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

TaoToken 统一 Key 接入:401/local proxy failed 与 reading choices 报错排查大纲

TaoToken 统一 Key 接入:401/local proxy failed 与 reading choices 报错排查大纲

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

2026/10/7 13:12:13 阅读更多 →
本地AI编程助手实战:DeepSeek-Coder+Docker一键部署

本地AI编程助手实战:DeepSeek-Coder+Docker一键部署

1. Codex 不是 OpenAI 官方开源模型,但“Codex 风格”本地编程助手已成现实刚需你搜“Codex 下载”,页面弹出的全是“404”“Not Found”“官网无下载入口”——这不是你的网络问题,而是事实:OpenAI 从未开源 Codex 模型&#xff…

2026/10/7 13:12:13 阅读更多 →
Archify:AI代理自动生成可交互微服务架构图的技能模块实战

Archify:AI代理自动生成可交互微服务架构图的技能模块实战

1. 这个项目到底在解决什么问题:画架构图这件事,是时候换个思路了做后端开发、系统设计、或者带团队做技术评审的朋友,应该都有过这种经历:方案文档写好了,核心模块列清楚了,结果要画一张架构图的时候&…

2026/10/7 13:12:13 阅读更多 →

最新新闻

LokiJS Changes API 实战指南:集合级变更追踪与远程同步的完整实现解析

LokiJS Changes API 实战指南:集合级变更追踪与远程同步的完整实现解析

数据库后端 【免费下载链接】LokiJS javascript embeddable / in-memory database 项目地址: https://gitcode.com/gh_mirrors/lo/LokiJS 点击查看 免费下载 LokiJS 自 1.1 版本起引入 Changes API(变更追踪 API),允许开发者记录…

2026/10/7 16:20:43 阅读更多 →
Vuelidate 校验配置(Validation Configuration)全解析:$scope、$autoDirty、$externalResults 等七大配置项实战指南

Vuelidate 校验配置(Validation Configuration)全解析:$scope、$autoDirty、$externalResults 等七大配置项实战指南

前端 【免费下载链接】vuelidate Simple, lightweight model-based validation for Vue.js 项目地址: https://gitcode.com/gh_mirrors/vu/vuelidate 点击查看 免费下载 Vuelidate 2 是一款基于模型(model-based)的轻量级 Vue.js 表单校验库…

2026/10/7 16:20:43 阅读更多 →
JSON.stringify 循环引用实战:用 replacer 按值排除反向引用(zh.javascript.info 现代 JavaScript 教程深度解析)

JSON.stringify 循环引用实战:用 replacer 按值排除反向引用(zh.javascript.info 现代 JavaScript 教程深度解析)

文档教程前端 【免费下载链接】zh.javascript.info 现代 JavaScript 教程(The Modern JavaScript Tutorial),以最新的 ECMAScript 规范为基准,通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识。…

2026/10/7 16:20:43 阅读更多 →
华为 HarmonyOS 上部署 microG 完整指南:定位、推送、签名校验一次搞定

华为 HarmonyOS 上部署 microG 完整指南:定位、推送、签名校验一次搞定

华为 HarmonyOS 上部署 microG 完整指南:定位、推送、签名校验一次搞定 【免费下载链接】GmsCore Free implementation of Play Services 项目地址: https://gitcode.com/GitHub_Trending/gm/GmsCore 打开地图、社交或支付应用,屏幕弹出一句「Goo…

2026/10/7 16:20:43 阅读更多 →
caveman:极简AI编码代理的proxy与token实践指南

caveman:极简AI编码代理的proxy与token实践指南

1. 从“caveman”说起:一个AI编码代理的极简主义实践第一次看到“caveman”这个词被用来命名一个AI coding agent项目时,我脑子里浮现的画面是:一个裹着兽皮、手持石斧的原始人,面对一台嗡嗡作响的服务器,一脸茫然地敲…

2026/10/7 16:20:42 阅读更多 →
Weak-to-Strong Generalization via Direct On-Policy Distillation

Weak-to-Strong Generalization via Direct On-Policy Distillation

Weak-to-Strong Generalization via Direct On-Policy Distillation 全文总结+指定章节中英对照翻译 一、文章整体核心内容总结 1. 研究背景 当前基于可验证奖励的强化学习(RLVR)是提升大模型数学推理能力的主流后训练方案,但存在极高算力成本:模型规模越大,生成采样轨…

2026/10/7 16:19:40 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

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

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

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

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

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

2026/10/7 1:02:00 阅读更多 →

周新闻

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/7 14:34:12 阅读更多 →
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/7 14:34:13 阅读更多 →
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/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 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/7 14:34:12 阅读更多 →
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/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练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/7 13:34:55 阅读更多 →