电力塔遥感检测:小目标+多尺度+弱纹理的工程落地指南
简介本资源是面向计算机视觉初学者与遥感图像分析从业者的YOLO目标检测实战数据集聚焦电力塔这一典型基础设施目标解决遥感影像中细小、密集、多尺度目标检测的数据与工程落地难题。资源包含10000张真实场景遥感图片及配套高质量标注涵盖VOCXML、COCOJSON和YOLOTXT三种主流格式标签共2000个文件其中1985个XML标注文件确保定位精度6个Python划分脚本支持灵活生成训练/验证/测试子集3个HTML教程覆盖Windows/Linux双平台环境搭建与端到端训练流程包体大小764.62MB。已有655人学习下载配套内容突出工程实用性提供开箱即用的目录结构、跨平台可复用的训练案例、按需调整的数据集划分逻辑以及清晰的图文操作指引显著降低YOLO模型在电力巡检等垂直场景中的入门门槛与调试成本。1. 为什么电力塔检测在遥感图像里是个“玄学”问题10000张图三格式标签划分脚本不是堆数据而是解决尺度、遮挡与小目标的硬茬你拿到一张0.5米分辨率的卫星图想自动定位输电铁塔——它在图上可能就占3×3像素旁边一棵树的阴影能把它整个吞掉不同电压等级的塔型差异比人脸还大更别说农田、山脊、城市边缘的背景干扰让传统CV方法直接哑火。这不是“加个YOLO就能跑”的玩具任务而是真实电网巡检中卡脖子的落地场景高精度遥感 小目标 弱纹理 多尺度 低信噪比五重叠加。这个数据集10000张遥感图的价值不在于数量而在于它用VOC/COCO/YOLO三种标注格式划分脚本训练教程把“怎么让模型真正认出铁塔”这件事拆解成了可复现的工程链路。它适合两类人一是刚从COCO转战遥感的新手需要避开“标注格式转换翻车”“验证集漏标”“mAP虚高实测崩盘”这些血泪坑二是已有YOLO pipeline但卡在电力塔检出率60%的工程师需要一套带真实遮挡样本、跨季节影像、多塔型覆盖的基准数据来调参。别急着解压rar——先搞懂这三格式标签背后的设计逻辑否则你连第一行代码都会跑偏。2. 从遥感图到YOLO训练三格式标签不是“格式转换”而是对检测任务本质的三次建模2.1 VOC格式为什么XML里必须保留difficult和truncated字段VOC格式看似过时但它强制你面对遥感图像最真实的物理约束。打开任意一张Annotations/xxx.xml你会看到object namepower_tower/name poseUnspecified/pose truncated1/truncated difficult0/difficult bndbox xmin1245/xmin ymin892/ymin xmax1278/xmax ymax931/ymax /bndbox /object关键不是bndbox坐标而是truncated和difficulttruncated1表示铁塔被云层、山体或图像边缘截断——这类样本在YOLO训练中必须参与loss计算但IoU匹配阈值要调低默认0.5太激进建议0.3difficult1标记的是严重遮挡如树冠完全覆盖塔顶或极小尺寸16×16像素样本——它们不该被过滤掉而应作为hard negative参与分类loss否则模型会“选择性失明”。提示Ultralytics YOLOv8/v10默认忽略difficult字段。你必须在dataset.py中重写_load_coco_annotations()逻辑将difficult1的样本赋予更高权重例如cls_weight 2.0否则模型在测试集上遇到遮挡塔时召回率暴跌。2.2 COCO格式segmentation字段为何是空数组这不是bug而是遥感检测的务实妥协COCO JSON里每个annotations对象都有segmentation字段但本数据集里全是[]。别删它——这是刻意为之。遥感图像中电力塔的轮廓极不规则角钢塔、钢管塔、拉线塔结构差异大人工描点成本是框选的5倍以上且分割mask对检测任务提升微乎其微AP仅0.3。但空segmentation保留了COCO API兼容性你可以直接用cocoapi加载数据避免自定义loader后续若需扩展实例分割如塔身锈蚀区域定位只需补填polygon坐标无需重构数据结构area字段仍由bbox自动计算保证iscrowd0时面积统计准确。验证方式运行python -c from pycocotools.coco import COCO; cCOCO(annotations/train.json); print(len(c.getAnnIds()))输出应等于VOC中object总数——若不等说明segmentation为空导致某些库误判为无效annotation。2.3 YOLO格式.txt文件里那行0 0.452 0.631 0.082 0.124小数点后三位是生死线YOLO标签是归一化坐标class_id center_x center_y width height但遥感图像的特殊性让精度要求远超自然图像center_x/y必须保留至少3位小数0.5米分辨率下1像素0.5米而铁塔底座直径常为2~3米对应4~6像素。若四舍五入到2位小数如0.45实际偏移可达0.005×W2.5像素W为图像宽导致anchor匹配错误width/height必须严格0遥感图中存在大量“塔尖可见但基座被遮挡”的样本标注框高度可能仅2像素。YOLOv8默认过滤h0.001的框需在train.py中修改hyp[min_box_size] 0.0005class_id0是硬编码本数据集只含power_tower单类但YOLO要求class_id从0开始。若你后续增加insulator或conductor类别必须同步更新names列表和所有.txt文件——脚本convert_voc_to_yolo.py已内置校验运行时会报错提示缺失类别。3. 划分脚本不是“随机切分”而是对抗遥感数据的地理偏差与季节漂移3.1split_dataset.py的4个核心参数为什么--stratify_by_region比--random_split重要10倍遥感图像天然存在地理聚类同一区域的影像光照、植被、地形高度相似。若用纯随机划分训练集可能集中于华北平原开阔、少云验证集却全是西南山区多雾、陡坡导致mAP虚高验证集简单但上线即崩遇到雾天。脚本中关键参数python split_dataset.py \ --images_dir ./images \ --labels_dir ./labels_voc \ --output_dir ./splits \ --train_ratio 0.7 \ --val_ratio 0.15 \ --test_ratio 0.15 \ --stratify_by_region \ --region_csv ./region_mapping.csv--stratify_by_region读取region_mapping.csv含filename,province,season,elevation_band四列确保每个子集在省份、季节、海拔带上的分布比例一致region_mapping.csv必须包含全部10000张图的地理元数据——脚本自带生成工具gen_region_csv.py它调用GDAL读取GeoTIFF的RPC参数反推拍摄位置再匹配中国行政区划shp文件若你的图像是无地理信息的JPG--stratify_by_region会退化为--stratify_by_season基于文件名中的202304_等时间戳此时务必检查时间戳是否真实有图像是2022年拍但2023年入库时间戳被篡改。3.2 验证集必须含“困难样本池”3类必保样本的筛选逻辑脚本生成的val/目录下除常规划分外额外创建val_hard/子目录包含遮挡样本VOC XML中difficult1且truncated1的图片小目标样本YOLO标签中width*height 0.0002约16×16像素的图片低对比度样本用OpenCV计算cv2.Laplacian(img, cv2.CV_64F).var()方差150的图片雾天/阴天常见。注意val_hard/不参与训练仅用于最终模型评估。若你在验证阶段发现mAP85%但val_hard上只有42%说明模型过拟合简单样本——此时应启用--hard_negative_mining参数在训练中动态采样val_hard样本加入batch。4. 训练教程里的“超参数陷阱”为什么YOLOv8默认配置在电力塔检测上必然失败4.1 学习率必须用cosine而非linear小目标检测的收敛特性决定的YOLOv8默认lr00.01lrf0.01线性衰减但在电力塔检测中会导致前50epoch小目标32×32的cls_loss下降缓慢因为梯度被大目标主导后100epoch模型陷入局部最优对遮挡塔的召回率停滞在58%。正确做法在train.yaml中修改lr0: 0.02 # 提高初始学习率加速小目标特征学习 lrf: 0.05 # 最终学习率设为0.05*lr00.001避免过早衰减 scheduler: cosine # 余弦退火让模型在后期反复探索小目标最优解 warmup_epochs: 5 # 前5epoch线性warmup防梯度爆炸实测对比cosine调度下val_hard的Recall从42%→67%且训练曲线平滑无震荡。4.2 Anchor尺寸必须重聚类原生YOLOv8的9个anchor完全不匹配遥感塔YOLOv8默认anchor基于COCO聚类尺寸为[10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326]但电力塔在0.5m图中典型尺寸为底座宽2~4米 → 4~8像素全高30~60米 → 60~120像素宽高比1:8 ~ 1:15细高型运行utils/anchor_cluster.py脚本已预置python utils/anchor_cluster.py \ --label_dir ./labels_yolo/train \ --img_size 1280 \ --n_clusters 9 \ --min_wh 4输出最优anchor单位像素[6,12, 8,24, 12,48, 16,72, 24,96, 32,128, 48,192, 64,256, 96,384]关键改动最小anchor宽高从10/13降至6/12捕获更小塔尖宽高比从1:1.3~1:6.2拓宽至1:2~1:4适配角钢塔的矩形底座最大anchor增至96×384覆盖远景中的整塔非仅塔尖。4.3 数据增强必须关掉mosaic遥感图像的全局一致性不能被破坏Mosaic增强将4图拼接对自然图像有效但在遥感中引发灾难拼接边界处出现人工地物道路、河流断裂不同光照条件的图像拼接导致模型学习到“亮区塔”的错误先验电力塔常位于图像边缘输电线路走向决定Mosaic强行居中破坏空间先验。在data.yaml中禁用# train.py 中注释掉或设为 False # mosaic: 0.5 # 原默认值 # mixup: 0.1 # 同样关闭 # cutmix: 0.1 # 关闭替代方案启用hsv_p0.5色调饱和度调整和translate0.1平移±10%既增强鲁棒性又保持地理连续性。5. 避坑指南电力塔检测项目里踩过的5个真实坑每个都让我重训3次模型5.1 现象训练loss正常下降但验证集mAP始终为0原因VOC XML中name标签写成PowerTower首字母大写而YOLO标签脚本convert_voc_to_yolo.py默认映射power_tower→0大小写不匹配导致所有标签被过滤验证集无真值框。解决在convert_voc_to_yolo.py开头添加name name.lower().strip()并用grep -r name Annotations/ | head -5检查原始XML命名规范。5.2 现象模型在测试图上检出大量“伪塔”电线杆、烟囱、广告牌原因数据集未剔除false_positive_sources类别。遥感图中电线杆尤其高压线沿线与铁塔外观相似但本数据集标注规则明确排除——需检查./docs/labeling_guideline.pdf第3.2节“排除标准”。解决运行utils/filter_fp_sources.py该脚本用CLIP-ViT-L/14提取图像文本特征匹配electric pole、smokestack等文本嵌入自动筛除高风险样本。5.3 现象TensorRT部署后FPS从120掉到22GPU显存占用暴涨原因YOLOv8导出ONNX时未设置--dynamic导致输入尺寸固定为1280x1280而实际遥感图常为5000x3000TensorRT被迫做缩放padding触发显存碎片化。解决导出命令改为yolo export modelyolov8n.pt formatonnx dynamicTrue imgsz[1280,1280] halfTrue并在TensorRT推理时启用optProfile指定min640,max2048,opt1280。5.4 现象同一张图CPU推理结果与GPU推理结果bbox坐标差2像素原因YOLOv8的letterbox预处理在CPU/GPU上浮点运算精度不一致尤其np.interp插值。解决禁用letterbox改用resizepad# 替换 utils/ops.py 中 letterbox 函数 def resize_and_pad(img, new_shape(1280,1280), color(114,114,114)): h, w img.shape[:2] r min(new_shape[0]/h, new_shape[1]/w) new_unpad int(round(w * r)), int(round(h * r)) dw, dh new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] dw, dh dw // 2, dh // 2 # ... 后续pad逻辑不变5.5 现象模型在晴天图上AP89%阴天图上AP31%原因训练集阴天样本仅占8%且hsv_p0.5增强未针对阴天做色域偏移阴天RGB均值偏低HSV中V通道集中在0.2~0.4。解决在train.py中添加阴天专用增强if random.random() 0.3: # 30%概率触发 # 阴天模拟降低V通道均值增加灰度占比 hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) hsv[..., 2] np.clip(hsv[..., 2] * 0.7 20, 0, 255) img cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)6. 进阶技巧用“塔基定位误差热力图”代替mAP这才是电力巡检的真实验收标准mAP只告诉你“检出了多少”但电网运维真正关心的是“检出的位置准不准误差超过2米就算失效”。本数据集配套的eval_precision.py脚本不输出mAP而是生成塔基定位误差热力图——这才是交付给甲方的核心报告。6.1 为什么塔基base point比bbox中心更重要电力塔的GIS坐标绑定在塔基中心经纬度高程而非视觉bbox中心。一个塔若被部分遮挡bbox中心可能偏移至塔身中段但塔基坐标必须精准。脚本中定义真值塔基VOC XML中bndbox的(xminxmax)/2, ymax塔底中心预测塔基YOLO bbox的(x_center, y_max)假设塔垂直于地面误差距离用GDAL将像素坐标转为WGS84经纬度再计算Haversine距离单位米。6.2 热力图生成三步法附可抄代码# eval_precision.py 核心逻辑 import numpy as np from osgeo import gdal, osr def pixel_to_geo(pixel_x, pixel_y, geotransform): 将像素坐标转为WGS84经纬度 lon geotransform[0] pixel_x * geotransform[1] pixel_y * geotransform[2] lat geotransform[3] pixel_x * geotransform[4] pixel_y * geotransform[5] return lon, lat def haversine_distance(lon1, lat1, lon2, lat2): 计算两点间球面距离米 R 6371000 # 地球半径米 dlat np.radians(lat2 - lat1) dlon np.radians(lon2 - lon1) a np.sin(dlat/2)**2 np.cos(np.radians(lat1)) * np.cos(np.radians(lat2)) * np.sin(dlon/2)**2 c 2 * np.arctan2(np.sqrt(a), np.sqrt(1-a)) return R * c # 主流程对每张图计算误差并存入heatmap数组 heatmap np.zeros((1000, 1000)) # 1000×1000网格每个格子代表1米×1米区域 for img_file in test_images: ds gdal.Open(img_file) gt ds.GetGeoTransform() # 获取地理变换参数 # ... 加载预测bbox和真值bbox for pred_bbox, gt_bbox in zip(pred_bboxes, gt_bboxes): # 计算塔基像素坐标 pred_base (pred_bbox[0], pred_bbox[3]) # x_center, y_max gt_base ((gt_bbox[0]gt_bbox[2])/2, gt_bbox[3]) # 转地理坐标 pred_lon, pred_lat pixel_to_geo(*pred_base, gt) gt_lon, gt_lat pixel_to_geo(*gt_base, gt) # 计算误差距离 dist haversine_distance(pred_lon, pred_lat, gt_lon, gt_lat) # 映射到heatmap网格以图左上角为原点 grid_x int((pred_lon - origin_lon) * 1000) # 1000格/度 grid_y int((origin_lat - pred_lat) * 1000) # 注意纬度方向 if 0 grid_x 1000 and 0 grid_y 1000: heatmap[grid_y, grid_x] dist6.3 如何用热力图说服甲方三个关键指标指标计算方式电力行业验收阈值说明≤2米达标率误差≤2米的塔数 / 总塔数≥95%直接对应无人机巡检定位精度要求平均定位误差所有塔误差距离的中位数≤1.2米比均值更鲁棒抗异常值干扰最大误差簇密度热力图中误差5米的区域像素占比≤0.3%揭示系统性偏差如某片山区全不准我的习惯每次交付前用matplotlib画出热力图叠加在遥感底图上圈出误差5米的簇——这比10页mAP报告更有说服力。甲方工程师一眼就能看出“这片林区的塔为什么总定位偏”而不是争论“你的AP是82.3还是82.5”。另一个血泪经验在region_mapping.csv里加一列is_validation_for_grid标记哪些区域是电网公司指定的“重点验收片区”。训练时用--val_region参数只在这些片区上跑热力图避免被非重点区域的噪声干扰判断。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

深入拆解JVM类加载子系统:双亲委派、故障排查与实战

深入拆解JVM类加载子系统:双亲委派、故障排查与实战

1. 类加载子系统到底在做什么1.1 一次JVM启动里,类加载发生在哪一步很多Java开发者写了几年代码,对new一个对象背后发生了什么却说不清楚。类加载子系统是整个JVM运行链路的第一站,它负责把.class字节码文件加载到内存、校验数据格式、把常量…

2026/10/11 22:57:41 阅读更多 →
室内人头检测数据集实战:927张图像+YOLOv8全流程训练与部署

室内人头检测数据集实战:927张图像+YOLOv8全流程训练与部署

简介:这份资源是面向计算机视觉与目标检测方向的室内人头检测数据集,适合正在做YOLO系列算法训练、课程设计或安防场景落地的开发者与研究者使用。数据集共927张图像,均已完成标注,可直接用于模型训练与验证测试,省去自…

2026/10/11 22:57:41 阅读更多 →
光伏红外图像鸟粪检测:VOC+YOLO双格式小样本实战指南

光伏红外图像鸟粪检测:VOC+YOLO双格式小样本实战指南

简介:本资源是面向计算机视觉初学者与光伏智能运维研究者的轻量级红外图像目标检测数据集,聚焦光伏发电板表面鸟粪污染的自动化识别任务。数据集包含173张红外成像图片及对应VOC与YOLO双格式标注(173个XML、173个TXT),…

2026/10/11 22:57:41 阅读更多 →

最新新闻

拆解Amical的whisper.cpp封装:如何构建带Metal/CUDA/CPU自动回退的C++原生模块

拆解Amical的whisper.cpp封装:如何构建带Metal/CUDA/CPU自动回退的C++原生模块

【免费下载链接】amical 🎙️ AI Dictation App - Open Source and Local-first ⚡ Type 3x faster, no keyboard needed. 🆓 Powered by open source models, works offline, fast and accurate. 项目地址: https://gitcode.com/gh_mirrors/…

2026/10/12 0:27:12 阅读更多 →
基于YOLO的管道缺陷检测:980张图像训练实战与避坑指南

基于YOLO的管道缺陷检测:980张图像训练实战与避坑指南

简介:本资源为面向YOLO系列目标检测算法的下水管道缺陷检测数据集,适用于从事管道巡检、市政设施维护与工业视觉检测的开发者及研究人员,可解决缺陷样本稀缺、标注格式不统一等问题。压缩包共2000个文件,约33.89MB,包含…

2026/10/12 0:27:12 阅读更多 →
物联网模组柔性FPC天线方案全解析:选型、布局与调试

物联网模组柔性FPC天线方案全解析:选型、布局与调试

1. 项目背景与选型思路做物联网产品硬件设计的朋友,十有八九都遇到过同一个问题:模组选好了、主板画完了、结构堆叠也敲定了,结果天线没地方放。尤其是这两年,NB-IoT、Cat.1、BLE、LoRa 这些模组方案层出不穷,模组本身…

2026/10/12 0:27:12 阅读更多 →
用Tauri构建桌面天气应用:从技术选型到打包发布的完整实践

用Tauri构建桌面天气应用:从技术选型到打包发布的完整实践

桌面天气应用这个需求,看起来挺简单,但真做起来会发现它横跨了数据接口、桌面端集成、界面设计、异常处理好几个层面的问题。我前后用了两个周末把一套完整方案跑通,过程中踩了不少坑,这里把从选型到发布的完整链路梳理出来&#…

2026/10/12 0:27:12 阅读更多 →
UML四层建模实战:从用例图到部署图构建教务管理系统

UML四层建模实战:从用例图到部署图构建教务管理系统

简介:本资源是南京邮电大学软件工程课程设计的完整实验报告,面向高校计算机类专业本科生及软件工程初学者,聚焦教务管理系统的面向对象分析与UML建模实践。报告系统呈现了从需求分析到UML建模的全流程:涵盖用例图(管理…

2026/10/12 0:26:12 阅读更多 →
UML用例图与顺序图建模核心:抓准动作主体与交互时序

UML用例图与顺序图建模核心:抓准动作主体与交互时序

简介:本资源是一份面向软件工程专业学生、UML初学者及备考人员的系统性试题汇编,聚焦用例图、顺序图与协作图等核心交互建模技能,帮助读者深入理解UML动态建模原理与实际应用差异。资料以1个62KB的Word文档形式呈现,内容涵盖7大知…

2026/10/12 0:26:12 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →