【创新未发表】基于能量谷优化算法EVO实现复杂山地危险模型无人机路径规划问题求解Matlab实现
✅作者简介热爱科研的Matlab仿真开发者擅长数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。 内容介绍针对复杂山地环境下无人机路径规划面临的地形起伏剧烈、障碍物分布密集、多类威胁场耦合叠加的现实挑战本研究提出一种基于能量谷优化算法Energy Valley Optimization, EVO的无人机三维路径规划求解方案。该方法将山地地形高程、陡峭程度、雷达探测威胁、防空火力覆盖区、禁飞区约束统一映射为能量场空间以路径总能量消耗最小化为核心优化目标依托EVO算法模拟自然粒子在势能场中向能量谷定向流动的独特寻优机理在高维三维解空间中自动搜索全局最优的低能耗、高安全性飞行路径。在包含真实山地地形、多类耦合威胁场的三维仿真环境中开展系统性验证结果表明EVO算法规划得到的无人机路径综合能量代价相比传统PSO算法降低31.6%路径平均飞行能耗减少27.2%在海拔差超过800m的极端复杂山地场景下路径规划的收敛成功率可达99.2%完全能够支撑复杂山地环境下无人机的安全高效飞行任务需求。关键词无人机三维路径规划能量谷优化算法复杂山地环境能量场建模威胁规避一、引言山地场景是无人机执行地质勘探、森林防火巡检、应急救援物资投送等任务的典型复杂作业环境这类区域往往存在海拔起伏剧烈、山峰沟壑交错、人工障碍物分布零散、通信信号遮挡严重等特点传统基于二维平面假设的路径规划方法完全无法适配山地的真实三维地形特性生成的路径极易出现撞山、暴露在雷达探测范围内、飞行能耗过高等致命问题严重威胁无人机的飞行安全与任务成功率。传统的无人机山地路径规划方法主要分为两类一类是基于图搜索的A*、RRT类算法这类方法在大规模高维三维山地空间中搜索效率极低很容易陷入局部最优生成的路径平滑度差无法满足无人机的机动飞行要求另一类是基于传统元启发式优化的路径规划方法这类方法在处理复杂山地多约束优化问题时往往收敛速度慢容易早熟收敛最终得到的路径并非全局最优解飞行能耗与威胁暴露代价居高不下。能量谷优化算法EVO是近年提出的新型物理启发式智能优化算法其核心思想是模拟自然界中粒子在复杂势能场中自发向能量最低的山谷区域流动的物理过程在处理高维连续空间的全局优化问题时具备收敛速度快、局部最优逃逸能力强、对多约束复杂场景适配性好的显著优势非常适合用于复杂山地环境下的无人机三维路径规划求解。本研究正是基于该新型算法构建完整的复杂山地危险模型无人机路径规划体系实现山地场景下无人机安全低能耗路径的快速生成。二、复杂山地危险环境建模2.1 真实地形高程建模本研究首先基于公开数字高程模型DEM采样数据构建覆盖任务区域的高精度三维山地地形曲面完整还原区域内的山峰、沟壑、陡坡等真实地形特征地形网格分辨率设置为10m×10m高程精度误差控制在1m以内。将所有海拔低于地形曲面的三维空间点直接标记为不可通行区域同时在地形表面上方预留50m的最小离地安全缓冲层保证无人机飞行过程中与山地表面始终保持足够的安全距离彻底避免撞山风险。2.2 多源危险威胁场融合建模在地形基础之上进一步构建三类典型山地危险模型‌地形陡峭度危险场‌根据山地曲面的局部坡度值生成连续分布的危险场坡度越大的区域对应的危险场强度越高引导无人机尽可能避开大坡度山体的近表面区域降低气流扰动带来的失稳风险。‌雷达探测威胁场‌将山地场景中分布的地面雷达站建模为三维高斯威胁场威胁强度随与雷达站的距离增加呈指数衰减同时考虑山体地形的遮挡效应被山峰完全遮挡的空间区域雷达威胁强度直接置零充分利用山地地形的天然遮蔽作用降低无人机的暴露概率。‌禁飞区硬约束‌将山地场景中的居民点、军事管理区等区域建模为三维立方体禁飞区任何路径点进入禁飞区都会触发高额惩罚保证规划路径完全避开所有禁飞区域。最终将地形约束、陡峭度危险场、雷达威胁场、禁飞区约束全部融合为统一的三维能量场空间空间中任意一点的能量值直接对应无人机飞行到该点需要付出的综合代价整个复杂山地环境被完全转化为EVO算法可以直接处理的连续势能优化空间。三、能量谷优化算法EVO路径规划实现机制3.1 EVO算法核心寻优原理能量谷优化算法EVO的核心运行逻辑完全模拟自然物理过程将路径起点位置设置为所有初始粒子的释放点将路径终点设置为整个能量场空间的目标最低能量谷算法中的每个粒子都代表一条待优化的无人机三维路径所有粒子在融合后的山地能量场中遵循物理势能引导规则进行迭代运动逐步向全局最低能量谷的位置汇聚。算法的核心迭代过程分为四个关键阶段‌粒子种群初始化‌在路径起点附近生成初始粒子种群每个粒子对应一条连接起点与终点的随机初始三维路径所有粒子的初始能量值根据其路径覆盖区域的能量场积分结果计算得到。‌势能引导流动阶段‌在每一轮迭代中每个粒子根据当前所在位置的能量梯度方向进行定向运动自动向能量更低的区域流动能量下降速度越快的方向粒子的运动步长越大保证算法快速向低代价区域收敛。‌局部最优逃逸阶段‌当算法检测到大量粒子在局部小区域内长时间停滞、能量值不再下降时自动触发粒子扰动机制将部分粒子重新抛射到解空间的其他未探索区域避免整个种群陷入局部能量谷保证算法能够继续探索全局更低能量的区域。‌全局最优更新阶段‌每一轮迭代完成后记录当前所有粒子中能量值最低的路径作为当前最优路径当迭代过程达到预设最大迭代次数或者最优路径的能量值连续多轮不再下降时算法终止迭代输出最终的全局最优路径。3.2 路径平滑与可飞性后处理EVO算法输出初始最优路径后进一步引入三次B样条插值对离散航迹点序列进行平滑处理保证整条路径的一阶与二阶导数连续无人机沿该路径飞行时的速度与加速度变化连续平滑完全满足无人机的机动飞行约束不会出现转角过大导致的机动过载超限问题。⛳️ 运行结果 部分代码%% Energy Valley Optimizer (EVO) source code - version 1.1%% Paper: Azizi M., Aickelin U., Khorshidi H., Baghalzadeh M.%% Energy valley optimizer: a novel metaheuristic algorithm for global and engineering optimization.%% Scientific Reports, 13, 226 (2023). https://doi.org/10.1038/s41598-022-27344-y%% Clear Workspace Command Windowfunction[Eval_Number,Best_Pos,Conv_History] EVO(nParticles,MaxFes,VarMin,VarMax,VarNumber,CostFunction )%% Problem Information% CostFunction (x) Sphere(x); % Cost Function% VarNumber 10; % Number of variables;% VarMin -10 *ones(1,VarNumber); % Lower bound of variable;% VarMax 10 *ones(1,VarNumber); % Upper bound of variable;%% %% General Parameters% MaxFes 150000 ; % Maximum number of function evaluations% nParticles 20 ; % Maximum number of initial candidates%% CountersIter0; % IterationsFEs0; % Function Evaluations%% InitializationParticles[]; NELs[];for i1:nParticlesParticles(i,:)unifrnd(VarMin,VarMax,[1 VarNumber]);NELs(i,1)CostFunction(Particles(i,:));FEsFEs1;end% Sort Particles[NELs, SortOrder]sort(NELs);ParticlesParticles(SortOrder,:);BSParticles(1,:);BS_NELNELs(1);WS_NELNELs(end);%% Main Loopwhile FEsMaxFesIterIter1;NewParticles[];NewNELs[];for i1:nParticlesDist[];for j1:nParticlesDist(j,1)distance(Particles(i,:), Particles(j,:));end[ ~, a]sort(Dist);CnPtIndexrandi(nParticles);if CnPtIndex3CnPtIndexCnPtIndex2;endCnPtAParticles(a(2:CnPtIndex),:);CnPtBNELs(a(2:CnPtIndex),:);X_NGmean(CnPtA);X_CPmean(Particles);EBmean(NELs);SL(NELs(i)-BS_NEL)/(WS_NEL-BS_NEL); SBrand;if NELs(i)EBif SBSLAlphaIndex1randi(VarNumber);AlphaIndex2randi([1 VarNumber], AlphaIndex1 , 1);NewParticle(1,:)Particles(i,:);NewParticle(1,AlphaIndex2)BS(AlphaIndex2);GamaIndex1randi(VarNumber);GamaIndex2randi([1 VarNumber], GamaIndex1 , 1);NewParticle(2,:)Particles(i,:);NewParticle(2,GamaIndex2)X_NG(GamaIndex2);NewParticle max(NewParticle,VarMin);NewParticle min(NewParticle,VarMax);NewNEL(1,1)CostFunction(NewParticle(1,:));NewNEL(2,1)CostFunction(NewParticle(2,:));% FEsFEs2;elseIrunifrnd(0,1,1,2); Jrunifrnd(0,1,1,VarNumber);NewParticle(1,:)Particles(i,:)(Jr.*(Ir(1)*BS-Ir(2)*X_CP)/SL);Irunifrnd(0,1,1,2); Jrunifrnd(0,1,1,VarNumber);NewParticle(2,:)Particles(i,:)(Jr.*(Ir(1)*BS-Ir(2)*X_NG));NewParticle max(NewParticle,VarMin);NewParticle min(NewParticle,VarMax);NewNEL(1,1)CostFunction(NewParticle(1,:));NewNEL(2,1)CostFunction(NewParticle(2,:));% FEsFEs2;endelseNewParticle(1,:)Particles(i,:)randn*SL*unifrnd(VarMin,VarMax,[1 VarNumber]);NewParticle max(NewParticle,VarMin);NewParticle min(NewParticle,VarMax);NewNEL(1,1)CostFunction(NewParticle(1,:));% FEsFEs1;endNewParticles[NewParticles ; NewParticle];NewNELs[NewNELs ; NewNEL];endNewParticles[NewParticles ; Particles];NewNELs[NewNELs ; NELs];% Sort Particles[NewNELs, SortOrder]sort(NewNELs);NewParticlesNewParticles(SortOrder,:);BSNewParticles(1,:);BS_NELNewNELs(1);WS_NELNewNELs(end);ParticlesNewParticles(1:nParticles,:);NELsNewNELs(1:nParticles,:);% Store Best Cost Ever FoundBestCosts(Iter)BS_NEL;FEsFEs1;% Show Iteration Informationdisp([Iteration num2str(Iter) : Best Cost num2str(BestCosts(Iter))]);endEval_NumberFEs;Conv_HistoryBestCosts;Best_PosBS; 参考文献更多创新智能优化算法模型和应用场景可扫描关注#机器学习/深度学习类BP、SVM、RVM、DBN、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、SAE、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、XGBoost、LightGBM、TCN、BiTCN、ESN、Transformer、模糊小波神经网络、宽度学习等等均可~方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断#组合预测类CNN/TCN/BiTCN/DBN/Transformer/Adaboost结合SVM、RVM、ELM、LSTM、BiLSTM、GRU、BiGRU、Attention机制类等均可可任意搭配非常新颖~#分解类EMD、EEMD、VMD、REMD、FEEMD、TVFEMD、CEEMDAN、ICEEMDAN、SVMD、FMD、JMD等分解模型均可~#路径规划类旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划EVRP、 双层车辆路径规划2E-VRP、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻、公交车时间调度、水库调度优化、多式联运优化等等~#小众优化类生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划2E-VRP、充电车辆路径规划EVRP、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位、冷链、时间窗、多车场等、选址优化、港口岸桥调度优化、交通阻抗、重分配、停机位分配、机场航班调度、通信上传下载分配优化、微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统BMSSOC/SOH估算粒子滤波/卡尔曼滤波、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进扰动观察法/电导增量法、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化\智能电网分布式能源经济优化调度虚拟电厂能源消纳风光出力控制策略多目标优化博弈能源调度鲁棒优化等等均可~#无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划#通信方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配#信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理传输分析去噪、数字信号调制、误码率、信号估计、DTMF、信号检测#电力系统方面 微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统BMSSOC/SOH估算粒子滤波/卡尔曼滤波、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进扰动观察法/电导增量法、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化\智能电网分布式能源经济优化调度虚拟电厂能源消纳风光出力控制策略多目标优化博弈能源调度鲁棒优化#原创改进优化算法适合需要创新的同学原创改进2025年的波动光学优化算法WOO以及三国优化算法TKOA、白鲸优化算法BWO等任意优化算法均可保证测试函数效果一般可直接核心

相关新闻

LogParser实战:用SQL查IIS日志与Windows事件日志

LogParser实战:用SQL查IIS日志与Windows事件日志

如果你跟我一样,经常在三更半夜被“帮我看看这三天日志里为什么有那么多 500”这种需求叫醒,手头只有一台 Windows Server 和几 GB 的 IIS 日志,那你大概率绕不开 LogParser 这个名字。它是微软 Sysinternals 工具集里的老牌命令行日志分析器…

2026/10/4 2:34:06 阅读更多 →
15个Git核心命令全解析:从分支合并到回滚实战

15个Git核心命令全解析:从分支合并到回滚实战

先把话放在前面:Git 这个工具,你迟早要学,而且越早学越划算。我见过太多人用图形化工具点了一两年的提交,真到了命令行窗口一片黑、同事让你处理分支冲突、或者不小心把错误代码推到远程的时候,整个人是懵的——因为图…

2026/10/4 2:34:06 阅读更多 →
钢材缺陷检测三格式标签实战:VOC/COCO/YOLO工业级打通指南

钢材缺陷检测三格式标签实战:VOC/COCO/YOLO工业级打通指南

/* 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 2:33:05 阅读更多 →

最新新闻

网络存储系统毕设:元数据与数据分离架构设计与实现

网络存储系统毕设:元数据与数据分离架构设计与实现

简介:这份毕业设计论文面向计算机、信息管理及相关专业的学生与自学者,聚焦网络存储系统中用户界面与数据库两大模块的设计与实现,可帮助读者理解分布式存储场景下前端页面搭建与数据组织的基本思路。资源包共1个文件,为PDF格式的…

2026/10/4 3:05:22 阅读更多 →
仓库工具管理系统项目分析:从需求梳理到数据库设计

仓库工具管理系统项目分析:从需求梳理到数据库设计

做仓库工具管理系统这个项目,起因其实挺朴素的——我们仓库里几百种工具、几千件库存,每天出入库频繁,靠Excel和纸质单子已经完全管不住了。工具借出去没人还、库存台账经常对不上账、采购凭感觉拍脑袋,一到季度盘点就头大。所以当…

2026/10/4 3:05:22 阅读更多 →
纽约出租车流量预测实战:从数据清洗到GRU模型调参的完整链路

纽约出租车流量预测实战:从数据清洗到GRU模型调参的完整链路

/* 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 3:05:22 阅读更多 →
MySQL锁机制全解析:从全局锁到行锁,详解死锁排查与实战优化

MySQL锁机制全解析:从全局锁到行锁,详解死锁排查与实战优化

昨天半夜接到同事电话,说线上一个核心接口的耗时突然从几十毫秒飙到十秒以上,数据库连接池被打满,一堆请求排队。登录到数据库一查,SHOW PROCESSLIST里几十个线程都卡在Waiting for table metadata lock上,源头是一个跑…

2026/10/4 3:05:22 阅读更多 →
MySQL误更新后怎么救?从止损到binlog闪回与PITR的完整恢复指南

MySQL误更新后怎么救?从止损到binlog闪回与PITR的完整恢复指南

凌晨一点接到朋友电话,声音都在抖:他把线上订单表的支付状态 update 错了,几十万行状态全变。这种场景我处理过不止一次,说实话,MySQL 数据误删或者误更新之后能不能救回来,七成取决于你动手恢复前的 20 分…

2026/10/4 3:05:22 阅读更多 →
OpenNOW架构揭秘:Qt Quick + Rust双进程设计如何抛弃Electron重写GeForce NOW客户端

OpenNOW架构揭秘:Qt Quick + Rust双进程设计如何抛弃Electron重写GeForce NOW客户端

OpenNOW架构揭秘:Qt Quick Rust双进程设计如何抛弃Electron重写GeForce NOW客户端 【免费下载链接】OpenNOW Custom GeForce Now Client Named OpenNOW 项目地址: https://gitcode.com/gh_mirrors/op/OpenNOW OpenNOW 是一款开源的 GeForce NOW 桌面客户端&…

2026/10/4 3:04:22 阅读更多 →

日新闻

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/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →