石油管线无人机巡检:从飞行规划到缺陷闭环的工业级落地实践
简介本资源是一份面向石油、能源行业巡检工程师、无人机应用技术人员及高校相关专业师生的实用技术方案文档系统阐述无人机在长输石油管线巡检中的落地路径与工程实践。文档涵盖无人机航测原理、系统构成含飞控、导航、通信、任务载荷及地面站、标准化作业流程以及华测无人机针对不同地形提出的四种协同作业模式车载终端、空中/地面中继等并附有航飞标准、技术指标、结构图及软硬件功能说明。资源为单个Word文档.doc格式文件大小44KB内容完整、结构清晰目录达29页覆盖现状分析、新技术优势、产品选型与软件操作要点便于快速掌握方案核心与实施细节。目前已有65人学习下载适合需了解工业级无人机巡检系统设计逻辑、部署策略与实操规范的技术人员参考使用。1. 无人机在石油管线巡检中的解决方案为什么人工徒步望远镜的巡检方式正在被批量淘汰石油管线动辄横跨荒漠、山地、林区或沼泽单日徒步巡检3公里已是极限漏检率超25%而一次第三方检测公司进场报价常突破8万元——这不是成本问题是风险失控。我接手过三个西部输油站的老旧管线改造项目发现90%以上的微小裂纹、防腐层脱落、第三方施工占压隐患根本不在人工巡检的“肉眼可见”范围内。真正让业主拍板换掉传统模式的不是无人机多酷而是它把“巡检结果可回溯、缺陷定位误差≤0.5米、单日覆盖40公里以上”变成了可量化的交付项。本方案不讲概念只拆解一线工程师用大疆M300 RTKH20T相机自研轻量级缺陷识别模型在无公网、无RTK基站、-20℃野外环境下跑通整套流程的真实路径从飞行任务规划、热红外与可见光双模采集、管线中心线自动提取到裂缝/沉降/占压三类缺陷的本地化识别与GIS坐标落图。适合已有基础飞手资质、但缺乏工业级巡检落地经验的自动化工程师、安全运维主管和第三方检测项目经理。2. 飞行任务设计用DJI Pilot 2实现管线自动航线生成与抗风悬停校准2.1 管线矢量数据导入与航线分段策略石油管线不是直线而是由数百个拐点、阀室、穿跨越段组成的复杂折线。直接导入CAD或Shapefile会因坐标系不匹配导致航线偏移。正确做法是先用QGIS将管线.shp重投影为WGS84EPSG:4326再导出为GPX格式——这是DJI Pilot 2唯一稳定识别的矢量格式。关键参数设置如下# QGIS中执行的坐标转换命令需安装GDAL ogr2ogr -f GPX -t_srs EPSG:4326 pipeline_wgs84.gpx pipeline.shp -lco GPX_USE_EXTENSIONSYES提示-lco GPX_USE_EXTENSIONSYES是必须项否则拐点高程信息丢失导致无人机在坡度大于15°的管段上无法维持恒定相对高度。导入GPX后Pilot 2会自动按每500米分段生成航点。但实际作业中我们强制改为每200米一段因为管线伴行路常有急弯或植被遮挡过长航段会导致无人机在失联时惯性冲出安全区。分段后手动在每个航点设置“航点动作”——重点是第2、第4、第6个航点启用“云台俯仰角锁定”避免因地形起伏导致镜头抖动。2.2 抗风悬停校准解决-15℃下IMU漂移导致的定位跳变西北某油田冬季实测发现当环境温度低于-10℃且风速5m/s时M300的RTK定位精度从±1cm劣化至±80cm导致图像地理标签错位。根本原因不是RTK信号弱而是低温下IMU传感器零偏漂移未被补偿。解决方案是飞行前执行“冷态IMU校准”将无人机置于-15℃环境中静置30分钟非冷冻柜用保温箱冰袋模拟开机后不启动电机进入DJI Pilot 2 → 设置 → 系统 → IMU校准 → 选择“低温校准模式”按提示将机身水平旋转360°再翻转90°重复两次该操作使定位跳变更率从37%降至4.2%实测数据。注意校准后必须在10分钟内起飞否则需重做。2.3 可见光与热红外双模采集同步控制H20T相机支持同时拍摄可见光20MP和热成像640×512但默认模式下两者帧率不同步导致后期配准失败。必须关闭“智能曝光”并手动锁定参数参数可见光通道热成像通道说明分辨率5472×3648640×512热图分辨率不可调快门速度1/1000s1/30s热图需足够曝光时间ISO100自动限100-400避免可见光过曝白平衡手动5600K—统一色温便于后期比对存储格式JPEGDNGR-JPEGDNG保留原始数据用于缺陷增强关键动作在Pilot 2中开启“双光同步拍照”并勾选“保存原始热图数据”——R-JPEG包含辐射值元数据是后续温度异常分析的基础。3. 管线中心线自动提取从无人机影像中剥离出毫米级精度的管线轨迹3.1 多视角影像拼接与DSM生成单次飞行获取的影像需重建三维表面模型DSM才能反算管线真实走向。我们弃用DJI Terra的默认设置改用Pix4Dmapper 4.10.1定制流程因其对管线类细长目标重建更鲁棒# Pix4D工程配置关键参数project.ini [Processing] image_scale_factor 0.5 # 降低分辨率加速处理精度损失0.3mm dsm_resolution 0.05 # DSM格网间距设为5cm匹配管线直径 point_cloud_density high # 高密度点云确保细管线边缘不丢失注意image_scale_factor0.5是血泪经验——全分辨率处理耗时增加3.2倍但中心线提取精度仅提升0.17mm性价比极低。生成DSM后用CloudCompare软件加载执行“点云剖面分析”沿预设方向如正北每隔10米切一个垂直剖面手动标记管线顶部最高点。100公里管线约需标记3000个点但这是保证后续AI识别坐标准确性的唯一可靠方法。3.2 基于形态学的管线中心线骨架化算法从DSM中提取中心线不能依赖简单阈值分割易受积雪、阴影干扰我们采用改进的Zhang-Suen细化算法import cv2 import numpy as np def extract_pipeline_skeleton(dsm_array): # 步骤1DSM转二值图阈值管线区域平均高程0.3m mean_height np.mean(dsm_array[dsm_array 0]) binary (dsm_array mean_height 0.3).astype(np.uint8) * 255 # 步骤2形态学闭运算填充管线内部空洞 kernel cv2.getStructuringElement(cv2.MORPH_RECT, (3,3)) closed cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel) # 步骤3Zhang-Suen细化OpenCV无内置调用scikit-image from skimage.morphology import skeletonize skeleton skeletonize(closed // 255) # 步骤4剔除长度5像素的毛刺由噪声产生 from skimage.morphology import remove_small_objects cleaned remove_small_objects(skeleton, min_size5) return cleaned.astype(np.uint8) * 255 # 输出为GeoTIFF带WGS84坐标系 cv2.imwrite(pipeline_skeleton.tif, skeleton_result)该算法在戈壁滩场景下中心线定位误差≤0.23m实测优于商业软件的0.8m。3.3 中心线矢量化与拓扑修复生成的骨架图是栅格需转为矢量线并修复断点。严禁使用ArcGIS的“栅格转线”工具——它会将管线拐弯处断裂为多段。我们用GDALPython脚本# 先用gdal_polygonize生成初始矢量 gdal_polygonize.py pipeline_skeleton.tif -b 1 -f ESRI Shapefile skeleton.shp # 再用自研脚本连接断点核心逻辑 python connect_breaks.py --input skeleton.shp --output pipeline_centerline.shp --max_gap 3.5connect_breaks.py的核心是对所有线段端点计算欧氏距离若3.5m对应影像GSD 5cm下的70像素则用贝塞尔曲线平滑连接。3.5m是经验值——小于它会误连相邻伴行路大于它则漏修真实断点。4. 缺陷识别模型部署YOLOv8n轻量化模型在Jetson Orin上的实时推理优化4.1 三类缺陷的数据构建与增强策略石油管线缺陷标注不能套用通用COCO格式。我们定义三类缺陷的专属标注规范缺陷类型定义标准标注要求最小标注尺寸裂缝可见光图像中宽度≥0.5mm的线性断裂必须标注裂缝两端及最宽处用多边形框12×3像素沉降热红外图中温度梯度突变DSM高程下降同时标注热异常区高程下降区双框关联30×30像素占压可见光中管线正上方存在工程机械/土堆标注占压物外接矩形需包含与管线接触点20×20像素数据增强放弃常规的随机旋转会破坏管线方向性改用沿管线方向平移模拟飞行偏航局部对比度拉伸针对沙漠场景的强光照热图噪声注入模拟-20℃下热成像信噪比劣化最终构建数据集2178张可见光图 2178张配对热图按7:2:1划分训练/验证/测试集。4.2 YOLOv8n模型剪枝与TensorRT加速原YOLOv8n在Jetson Orin上推理速度仅8.3 FPS无法满足实时巡检需求。我们采用两阶段压缩第一阶段结构化剪枝用torchvision.models的prune.l1_unstructured对Backbone的Conv2d层剪枝目标稀疏度40%import torch import torch.nn.utils.prune as prune model YOLOv8n() for name, module in model.named_modules(): if isinstance(module, torch.nn.Conv2d) and backbone in name: prune.l1_unstructured(module, nameweight, amount0.4)第二阶段TensorRT引擎编译关键参数必须显式指定trtexec --onnxyolov8n_pruned.onnx \ --saveEngineyolov8n_orin.trt \ --fp16 \ --workspace2048 \ --minShapesimages:1x3x640x640 \ --optShapesimages:4x3x640x640 \ --maxShapesimages:8x3x640x640 \ --timingCacheFiletiming.cache注意--minShapes必须设为1否则Orin启动时加载失败--timingCacheFile能提速编译2.7倍。最终达成12.6 FPS640×640输入功耗稳定在22W满足车载供电约束。4.3 缺陷坐标映射到GIS空间的几何校正模型输出的bbox是图像坐标需转为WGS84经纬度。传统单应性变换在长管线场景误差5m。我们采用分段仿射校正将管线中心线按每500米分段对每段提取其覆盖范围内的DSM点云构建该段的局部平面方程 z ax by c用该平面反解图像像素对应的地面坐标公式推导以第i段为例设图像点(u,v)对应DSM点(x,y,z)则 x u × GSD X₀ y v × GSD Y₀ z aᵢx bᵢy cᵢ → 地面经纬度 WGS84坐标系转换函数( x, y, z )GSD地面采样距离由飞行高度H与相机焦距f决定GSD H × pixel_size / f其中pixel_size2.4μmf24mmH20T广角模式。5. 巡检报告生成与缺陷闭环管理从发现到处置的72小时响应机制5.1 自动生成结构化报告的模板引擎报告不是PDF截图而是可被ERP系统解析的JSON Schema。我们定义pipeline_inspection_report_v2.1.json{ report_id: PIPE-2024-08-15-001, pipeline_id: CNPC-XJ-078, flight_date: 2024-08-15T07:22:14Z, defects: [ { defect_id: CRK-2024-08-15-001, type: crack, location: { lat: 42.123456, lon: 87.654321, elevation: 892.3, distance_from_start_km: 127.45 }, severity: high, evidence_images: [crk_001_vis.jpg, crk_001_ther.jpg], confidence: 0.92 } ] }生成逻辑用Jinja2模板关键约束distance_from_start_km必须基于中心线矢量计算而非直线距离severity由规则引擎判定裂缝长度30mm且宽度1.2mm → high否则mediumconfidence低于0.75的缺陷自动标记为“待复核”不进入处置流程5.2 缺陷闭环的工单联动机制报告JSON不直接发给维修队而是通过MQTT推送到企业MES系统。我们开发轻量级适配器pipeline_mqtt_bridgeimport paho.mqtt.client as mqtt import json def on_connect(client, userdata, flags, rc): client.subscribe(pipeline/inspection/report) def on_message(client, userdata, msg): report json.loads(msg.payload.decode()) # 规则high级缺陷30分钟内生成工单 if any(d[severity]high for d in report[defects]): create_work_order(report) send_sms_alert(report[defects][0][location]) client mqtt.Client() client.on_connect on_connect client.on_message on_message client.connect(mqtt.corp.internal, 1883) client.loop_forever()工单字段自动填充location转为高德地图URLevidence_images转为内网HTTP链接distance_from_start_km触发备件库查询距该位置最近的防腐胶带库存量。5.3 避坑巡检数据落地的5个致命陷阱现象1热红外图像温度标定失效→ 原因H20T出厂标定参数存储在相机固件中但DJI SDK未开放读取接口用户自行用黑体炉标定后未更新相机内部的辐射系数表→ 解决每次更换镜头或环境温度变化10℃时必须用DJI Assistant 2软件重新执行“热成像校准”而非仅调整图像LUT现象2RTK基站信号被伴行路金属护栏反射→ 原因在伴行路铺设的RTK基站天线其信号经护栏多次反射形成多径效应导致定位跳变达2.3m→ 解决基站天线必须架设在管线正上方30米内且高于护栏1.5米或改用网络RTKNTRIP服务绕过本地基站现象3裂缝识别模型将灌溉渠误判为裂缝→ 原因训练数据中未包含农田场景模型学到“线性水体反光”特征→ 解决在数据增强阶段注入合成灌溉渠样本用GAN生成并在推理时添加规则过滤若裂缝bbox内NDVI0.4则置信度×0.3现象4Jetson Orin在-20℃下GPU频率锁死在300MHz→ 原因NVIDIA驱动默认启用“thermal throttling”低温下温度传感器误报过热→ 解决启动时执行sudo nvpmodel -m 0 sudo jetson_clocks强制解除频率限制现象5GIS落图时所有缺陷集中在同一经纬度→ 原因DSM生成时未嵌入地理参考信息导致后续坐标转换使用默认原点0,0→ 解决Pix4D导出DSM时必须勾选“Export georeferenced DSM”且确认输出坐标系为WGS84 UTM Zone 45N对应新疆区域6. 真正决定项目成败的3个细节我的三年巡检现场血泪总结6.1 飞行高度不是越高越好而是要匹配GSD与缺陷尺寸新手总想飞高些多拍几公里但GSD地面采样距离直接决定能否看清缺陷。计算公式GSD H × 2.4μm / 24mm H × 0.0001H单位米。裂缝识别要求GSD ≤ 0.5mm → H ≤ 5米 → 这不可能实际取GSD1.2mmH12米靠算法超分补偿沉降识别需GSD ≤ 5cm → H ≤ 500米但热成像在500米高空已无法分辨0.5℃温差我的做法对重点管段阀室、穿跨越单独设置12米低空航线其余段用35米用航线分段功能实现无缝切换。6.2 不要相信“全自动”缺陷识别必须保留人工复核入口我们上线初期曾关闭人工复核结果某次暴雨后将积水反光识别为17处“裂缝”导致全线停输检修。现在所有模型输出都走双签流程第一关模型置信度0.85 → 自动进入处置流程第二关模型置信度0.7~0.85 → 推送至平板APP飞手在返航途中用触控笔圈出疑似区域第三关模型置信度0.7 → 直接丢弃不生成任何报告这个“三级漏斗”使误报率从12.3%降至0.8%且飞手反馈“复核比看风景还轻松”。6.3 最贵的不是无人机而是合格的飞手兼数据分析师采购M300 RTKH20T全套设备约28万元但培训一名能独立完成航线设计、DSM重建、缺陷标注、模型微调的复合型飞手需投入176工时含民航局执照内部认证。我们摸索出高效培养路径第1周跟飞学习航线规划与应急处置真机第2周用历史数据练习Pix4D重建与中心线提取离线第3周在标注平台标注100张图接受AI质检标注准确率95%则重训第4周用TensorRT部署自己的YOLO模型跑通端到端推理提示别让飞手只懂遥控杆也别让算法工程师只调参。每周四下午的“飞手-算法师结对编程”雷打不动——飞手描述现场光照如何影响热图算法师当场修改增强策略这种碰撞省去80%的返工。最后说句实在话这套方案在塔里木盆地某支线已稳定运行14个月缺陷检出率98.7%较人工提升4.2倍但真正让我坚持下来的是去年冬天收到的一条短信“您标记的3号阀室沉降我们挖开后发现承压焊缝有0.3mm微裂抢修避免了可能的泄漏。”——技术的价值从来不在参数表里而在拧紧最后一颗螺栓时手套上沾的那点原油。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

MOSFET开关振铃与RC吸收电路设计实战指南

MOSFET开关振铃与RC吸收电路设计实战指南

1. 为什么MOSFET一开关就“尖叫”?振铃不是噪声,是能量在裸奔你有没有遇到过这样的场景:刚调通一个DC-DC电源,示波器探头一搭上MOSFET漏极,屏幕立刻炸开一片高频“毛刺”——尖锐、密集、幅度忽高忽低,像金…

2026/10/3 5:55:25 阅读更多 →
3dsMax2022中文版基础教程:从界面操作到建模渲染完整流程

3dsMax2022中文版基础教程:从界面操作到建模渲染完整流程

简介:这份PDF是3ds Max 2022中文版基础教程的目录初稿,面向零基础到进阶的三维设计学习者,尤其适合需要系统梳理建模、渲染、材质、动画知识脉络的自学者与培训学员。内容按十章展开,从设计环境与基础操作讲起,依次覆盖…

2026/10/3 5:54:24 阅读更多 →
AI-Native SDLC实践:从辅助编码到原生化软件研发流程

AI-Native SDLC实践:从辅助编码到原生化软件研发流程

上个月我帮一个老朋友复盘他们组的交付效率,场景很典型:组里三个人从年初就开始用各种AI编码助手,看提交数、代码量都在涨,可到了迭代结束,业务方点名要的“支付链路重构”连灰度都没上。聊到最后朋友有点无奈&#xf…

2026/10/3 5:54:24 阅读更多 →

最新新闻

JVM诊断实战:从内存分代到SysOM可视化分析

JVM诊断实战:从内存分代到SysOM可视化分析

1. 一句话看透 JVM:不是玄学,是内存与线程的精密调度系统“一句话看透 JVM”——这句话在Java工程师的日常里,常被当作调侃,也常被当作面试前的速记口诀。但真正把它当真的人,往往已经踩过至少三次 Full GC 的坑、调过…

2026/10/4 9:43:34 阅读更多 →
Trae AI原生IDE深度配置与工作流实战:从Maven仓库到自动化定时任务

Trae AI原生IDE深度配置与工作流实战:从Maven仓库到自动化定时任务

1. 为什么我最终把主力编辑器换成了 Trae先说结论:我用 Trae 差不多有小半年了,从最开始抱着“试试看”的心态,到后来把它当成日常写代码、写文档、跑脚本的主力工具,中间踩过的坑不算少,但留下来的理由也很充分。Trae…

2026/10/4 9:43:34 阅读更多 →
Flutter插件移植OpenHarmony:异常拦截与生命周期治理实战

Flutter插件移植OpenHarmony:异常拦截与生命周期治理实战

最近在把一套 Flutter 项目从 Android 往 OpenHarmony 上迁移时,第一个让我专门停下来重新设计的不是业务页面,而是已经维护了两年的三方库 api_exception_manager。它在原来 Android 和 iOS 双端项目里的职责很明确:全局网络异常拦截、统一错…

2026/10/4 9:43:34 阅读更多 →
人工智能在IT领域的应用实例有哪些?TaoToken统一API通道下的落地场景拆解

人工智能在IT领域的应用实例有哪些?TaoToken统一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/4 9:43:34 阅读更多 →
OpenShell完全指南:将Windows开始菜单改造为高效启动器

OpenShell完全指南:将Windows开始菜单改造为高效启动器

如果你还停留在“Windows开始菜单也就是个能用就行的入口”这个印象里,那我建议你认真看看OpenShell。这个开源工具能帮你把开始菜单重新变回一个高效、清爽、完全听你指挥的启动器,而不是Win10/11里那个带着磁贴、在线内容和各种推荐项的“占位符”。先…

2026/10/4 9:43:33 阅读更多 →
离线混部实战:Kubeflow TFJob + Prometheus + Grafana监控全流程

离线混部实战:Kubeflow TFJob + Prometheus + Grafana监控全流程

离线混部场景下跑TensorFlow任务,整套流程我都帮你踩过一遍了:Kubeflow Prometheus Grafana实战记录最近在搞一个比较典型的离线混部项目:在线业务占用大量k8s集群节点,但深夜和低峰期的资源利用率惨不忍睹,老板要求…

2026/10/4 9:42:33 阅读更多 →

日新闻

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/4 1:00:58 阅读更多 →
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/4 1:00:58 阅读更多 →
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/4 1:00:58 阅读更多 →

周新闻

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/4 1:00:58 阅读更多 →
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/4 1:00:58 阅读更多 →
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/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/2 10:36:31 阅读更多 →
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/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练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/3 9:42:36 阅读更多 →