YOLO11果树害虫识别系统实战:从数据集到论文答辩全流程

每年毕业季,选择深度学习目标检测方向的人有一大批,果树害虫识别更是常青选题。打开学术库看到的相关论文很多,但真正轮到自己动手时,从克隆一个YOLO11开源项目到交出一套包含源码和论文的完整系统,中间隔着数据、训练、部署、写作四道坎。这篇文章不聊空泛的理论,只讲如何把一个YOLO11果树害虫识别系统从零做到能演示、能答辩、能写进论文的完整状态。我会把选型逻辑、数据准备、训练调参、系统集成、论文写作和踩坑经验一次性说透。

1. 为什么选YOLO11做果树害虫识别:需求拆解与选型逻辑

1.1 毕设选题的真实痛点

做目标检测类毕设的学生,每年踩的坑高度相似:开始觉得算法很酷,三周后发现自己连数据集都没整理明白;等代码终于能跑了,又发现界面要么没有、要么丑得不敢给老师看;最后赶论文时,实验部分只能拿训练日志里的几个数字硬凑。这些问题的根源只有一个——选题时没想清楚毕设的真正验收标准。

果树害虫识别为什么是热门方向?因为它恰好落在目标检测的"舒适区":害虫在图像里体积不算太小、类别之间形态差异明显、公开数据相对容易获取、行业应用价值也讲得清楚。相比通用目标检测或者街景识别,这类细分场景更容易在小数据集上做出肉眼可见的效果。

我建议在动手前先给自己定三条硬指标:测试集上mAP50达到85%左右,单张图片推理时间在100毫秒量级,有一个能上传图片并展示检测结果的界面。这三条全部达成,答辩基本就稳了。至于"模型精确率超过某篇论文"这种目标,反而不是毕设的核心诉求。

1.2 YOLO11相比老版本的核心变化

YOLO11是官方在YOLOv8之后推出的新一代目标检测模型,同样覆盖检测、分割、姿态估计等任务。它不是推翻重写的网络,而是在v8框架内做模块升级:主干部分用C3k2替换了部分C2f结构,同时引入了C2PSA这类空间注意力模块,SPPF结构也有简化。模型按n/s/m/l/x五个尺度发布,方便不同算力场景选用。

训练实测的感受是:在消费级GPU上,YOLO11的收敛过程比v8更平滑,尤其对小规模数据集,前期loss下降更稳定,很少出现剧烈震荡。n版本的参数量压到了很轻的量级,s版本在精度和速度之间最均衡。对毕设来说,s版本是性价比最优的选择——训练时间能接受,精度也拿得出手。

还有一个不得不提的原因:生态成熟度。官方代码库的文档、预训练权重、部署工具一站式齐全,遇到问题几乎都能搜到解决方案。对一个要在几个月内完成全流程的学生来说,稳定可靠的工具链比一个"看起来很新的模型"重要得多。

1.3 别贪多:类别数量决定项目生死

很多学生一上来就想识别十几种害虫,结果每类只有几十张图,模型根本学不到有效特征,最后的界面看起来就像在乱猜。我的建议是先锁定5到8个类别。这个数量既能让论文有对比空间,又能保证每类有足够训练样本。

选类别的原则是"形态差异优先"。比如蚜虫、介壳虫这类体型小的,和苹果蠹蛾这类翅膀明显的,特征区分度高,模型好学。反过来,如果选两个外观极相似的近缘种,别说YOLO11,换更大模型也很难分清楚。选题时宁可砍掉有争议的类别,也不要给后面埋雷。

2. 数据集才是真正决定上限的环节

2.1 公开资源筛选:不要一上来就想自己采集

害虫数据集的准备是最容易翻车的一步。几乎每个做这类项目的学生都想过自己拿手机去果园拍,真实拍过之后才发现问题一大堆:目标太小看不清、枝叶遮挡严重、光线忽明忽暗、拍回来几百张里能用的不到一半。等你花两周标完,和公开数据混在一起训出来的效果可能更差。

正确做法是先找一个覆盖面广的公开昆虫图像数据集,从中筛出和果树相关的常见害虫类别。这类数据通常已经做过基础清洗,标注质量也相对稳定。每类保留300到600张图像作为训练集,再留出验证集和测试集,规模就足够了。

公开数据不是拿来就能用,有两个细节必须处理干净。第一是删除多标签冲突的图像,如果一张图里同时出现两个目标类别且标注互相重叠,我的建议是直接弃用。第二是检查图像质量,把模糊、严重压缩、分辨率过低的图像剔除。这一步看似耗时,却能让训练过程少踩一半的坑。

2.2 标注规范:类别ID从0开始这个细节决定生死

如果你使用YOLO格式的标签,每个txt文件里每一行必须遵守固定的顺序:class_id x_center y_center width height,坐标全部归一化到0到1之间。最关键的一点是,class_id必须从0开始编号。比如5个类别就是0、1、2、3、4,而不是1到5。很多人习惯从1开始数,训练时模型把标签当偏移量,mAP直接崩到接近于0,查半天还以为是网络问题。

我自己习惯在标注工具导出后,写一个小脚本做合法性检查:标签文件是否有空行、坐标是否越界、类别ID是否超出范围、图片和标签文件是否一一对应。这一步几分钟就能做完,却能帮你避开训练中途才爆出来的神秘报错。

标注策略上,尽量贴近目标边界框,不要为了省事把整片虫害区域全圈进去。如果图像里存在严重遮挡的目标,可以正常标注,训练时它会被当成难样本处理,对模型鲁棒性反而是好事。同一张图里大量小目标聚集时,建议按单目标逐个框出,不要用一个大框覆盖整个密集区域,否则模型学到的位置信息会很粗糙。

2.3 数据增强与样本均衡:内置能力要用足

YOLO11训练时默认开启Mosaic、MixUp、HSV变换、随机翻转等增强策略,这让它在小数据集上的表现比老一代模型稳得多。害虫图像通常背景复杂、光照多变,我建议在默认基础上适当增强HSV的色相和饱和度扰动,让模型对果园环境里的光线变化更鲁棒。

类别不均是最常见的样本问题。比如蚜虫类样本有500张,介壳虫只有150张,训练时模型会偏向多数类。一个有效的做法是,在数据划分之前先做按类别重采样,让每类图像数量大致接近。如果实在不够,可以用复制-粘贴式的扩充,把目标区域抠出来贴到不同背景上,但操作时要保证边缘融合自然,否则模型会学到抠图痕迹。

要特别强调的是:数据增强只应用于训练集。验证集和测试集必须保持原始图像,任何增强都会让你看到的精度数字虚高。这个错误很多人都在答辩前才发现,重跑实验浪费一周时间。

2.4 数据划分与目录组织

数据集目录按官方约定组织是最省心的方式。项目根目录下建images/train、images/val、labels/train、labels/val四个文件夹,图片和标签保持同名。yaml配置文件里写清楚类别数和类别名,路径用相对路径,并且整条路径中不要出现中文字符和空格。

划分比例推荐8:1:1,或者训练集和验证集按9:1,测试集单独留出。如果数据集是通过筛选得到的公开数据,最好保证验证集和测试集来自与训练集不同的图像批次,这样能更真实地反映模型泛化能力。

3. 从零训练到调通:环境、参数和曲线解读

3.1 环境搭建的排雷

环境搭建是第一个劝退点。硬件条件不同,差距巨大,但好在YOLO11对配置的要求并不苛刻。消费级显卡就可以跑,没有独立显卡的话也能用CPU慢慢训,只是时间会拉长很多。

一个减少折腾的方式:用Anaconda新建一个干净的Python环境,版本选3.10左右,先安装与你的显卡驱动匹配的PyTorch版本,再安装官方YOLO实现包。这里最容易被坑的是CUDA版本和驱动不匹配,驱动过老时PyTorch会静默退回CPU,训练速度从几分钟一个epoch变成几十分钟。很多人盯着代码看了两天,最后发现是环境问题。

3.2 数据集目录结构

数据集目录结构一定要提前组织好。建议在项目根目录下建立datasets/ruits_pest/images/train、images/val、labels/train、labels/val这样的层级,图片和标签文件保持同名。项目根目录下的数据集配置文件里写清楚训练集、验证集的路径和类别名,路径统一使用相对路径。

路径中不要出现中文字符,这是我在实际项目中踩过无数次的坑。某一次训练时总是提示找不到图片,检查后发现是路径里有个全角空格。这类问题极难排查,最好一开始就避免。

3.3 训练参数配置与推荐值

训练参数直接决定了最终效果和你的显卡耐受力。下面是我在果树害虫数据集上比较常用的配置:

参数推荐值说明
imgsz640输入分辨率,兼顾精度和显存
batch16根据显存调整,6GB卡建议8
epochs120数据集小时不需要训太久
modelyolo11s.pt预训练权重,精度速度均衡
optimizerauto默认即可,自动应用余弦退火
ampTrue混合精度,节省显存

如果显卡显存不够,优先把batch降到8或4,不要直接降imgsz。imgsz降到416虽然能跑,但小目标的检出率会明显下降。考虑到害虫目标整体不大,输入分辨率太低会直接影响最终效果。

训练时设置固定随机种子,保证每次结果可复现。训练完成后会得到多个权重文件,重点保留两个:best.pt(验证集最优)和last.pt(最后一个epoch)。答辩时如果被问到为什么选best.pt,可以明确回答因为它的验证集精度最高。

3.4 训练曲线怎么看

训练过程中要重点盯住三组曲线:训练损失、验证损失、mAP50。理想状态是训练损失稳步下降并趋平,验证损失同步下降,mAP50持续上升后放缓。如果验证损失在某个点开始反弹,而训练损失还在下降,那就是过拟合信号,应提升数据增强强度或提前终止训练。

还有个常见问题:mAP50在很多个epoch内保持为0。遇到这种情况先别调参数,回到数据上排查——标签路径是否正确、类别ID是否越界、yaml配置里类别数与实际标签是否匹配。绝大多数"训不出来"的问题根源在数据侧,而不是模型侧。

3.5 显存不足和意外中断的应对

显存不足(OOM)是训练中最常见的崩溃原因。解决办法优先级从高到低依次是:减小batch、开启梯度累积、降低imgsz到512。如果训练跑到某个epoch突然报错并出现nan,多数是数据里有损坏图片或标签异常。可以写一个脚本遍历所有训练图片强制解码一遍,把打不开的文件剔掉,然后重新训练。

训练中断是家常便饭,不要每次都从零开始。官方代码天然支持断点续训,只要在启动命令里加上resume=True,就能从上次保存的权重继续训练。这个功能建议在第一次开始训练前就确认好,免得辛苦跑了几十个小时后前功尽弃。

4. 把模型变成能演示的系统:后端推理与界面交互

4.1 系统总体架构

训练出模型只是第一步,答辩时老师想看的是一个能动手操作的系统。常见的毕设系统架构是轻量级Web应用:后端用FastAPI或Flask提供推理接口,前端用原生HTML加JavaScript,数据库按需加上。整体链路是:前端上传图片,后端接收后调用模型推理,把检测结果和可视化图片返回前端展示。

一个核心原则是模型只加载一次。很多初学者把模型初始化写在每个请求的处理函数里,结果每次请求都要重新加载权重,用户点一次要等好几秒。正确做法是在服务启动时加载模型,之后所有请求共用同一个模型实例。

4.2 推理接口的实现要点

推理接口的逻辑通常分三步:接收上传图片、执行推理并过滤低置信度结果、把检测框和类别信息组装成JSON返回。过滤低置信度是每个系统必须做的,否则界面上会出现大量置信度0.1左右的误检框,严重影响演示效果。

这里有一个很容易被忽略的细节:坐标映射。模型输出的边界框坐标是基于输入尺寸的,展示到原图上时,必须按原图的宽高比例缩放回去。很多系统的框看起来偏小或者偏大,都是因为坐标映射没做对。

推理时应保持输入分辨率与训练时一致,比如训练用640,推理也设为640。如果把推理分辨率调高到1280,检测效果不一定变好,推理速度反而明显变慢。对于害虫识别这种场景,640已经是性价比很高的选择。

4.3 前端展示的加分细节

前端页面不需要花哨,但三个要素不能少:上传区、结果图、结果统计表。上传区负责选取图片,结果图展示带有检测框的标注结果,统计表列出识别到的害虫类别和数量。建议把每类目标的数量统计单独展示,比如"蚜虫20只、苹果蠹蛾3只",这种输出比单纯的画框更能体现系统价值。

如果时间充裕,建议加一个置信度阈值滑杆,让用户能实时调整阈值,过滤掉低置信度的误检框。答辩演示时亲手把阈值从0.25调到0.7,观察误检明显减少,这个互动环节比任何口头解释都有说服力。

界面语言和图标保持简洁,不要堆砌动画效果。答辩演示最怕的是现场翻车,简单可靠的页面反而更稳妥。

5. 论文写作:实验对比和创新点的门道

5.1 论文结构怎么安排

这类检测系统论文的常规结构是:摘要、背景与意义、相关工作、数据集构建、方法设计、实验分析、结论与展望。摘要部分要按"问题—方法—结果"三段式写,两百字左右,把系统做了什么、达到什么效果说清楚。

相关工作不要写成教程式罗列。正确写法是分类综述,从通用目标检测演进写起,再写到农业病虫害检测应用,最后落到轻量化网络在果园场景的部署需求,形成清晰的递进逻辑。切忌逐篇罗列论文摘要,那会让评审老师觉得你没有消化文献。

5.2 实验对比表:同一数据集同一参数才有意义

实验对比是论文的核心,也是最容易造假或注水的地方。正确的做法是,在自己构建的数据集上,用完全相同的配置分别训练YOLOv5、YOLOv8和YOLO11,记录各自的mAP50、mAP50-95、参数量、推理速度,然后列一张对比表。

即便最终精度只差两三个百分点,实验结果依然成立,因为这至少说明你做了受控实验。相反,如果直接引用别人论文里的精度数字来做对比,一旦被追问数据来源就会很难收场。诚实但普通的结果,远比好看但虚假的数据更经得起答辩追问。

5.3 创新点:一个做扎实就够了

毕设论文的评审中,真正加分的是"把一件事做到完整可复现",而不是"提出五个想法但每个都是半成品"。如果确实没有算法层面的创新,可以把创新点放在应用工程层面,例如设计了一套针对果园遮挡场景的低置信度二次校验策略,或者做一个按拍摄距离自动选择推理模型的机制。

创新点的写法遵循"问题—方案—验证"的黄金结构。先描述实际场景里遇到的问题,再说明你设计了什么方案,最后用实验数据证明方案有效。一个完整的小创新,超过三个半吊子构想。

6. 踩坑清单与效率建议

6.1 高频问题速查表

这里把我见过的最高频问题整理成一张表,每个都是真实发生过的情况:

现象根因解决方式
mAP一直为0标签类别ID从1开始检查并重写标签ID
训练极慢CUDA版本不匹配导致回退CPU重装匹配的PyTorch
某epoch后崩溃训练集中有损坏图片遍历解码并剔除坏图
结果框位置偏移推理坐标未映射回原图按原图宽高比例缩放
界面加载模型慢每次请求都初始化模型启动时加载一次
论文实验数字对不上换过参数忘了记录所有实验前先写配置记录

6.2 时间安排上的效率建议

给准备做的同学一个时间节奏参考:前两周主攻数据集筛选和标注检查,确保一个干净的数据集;之后两周跑通训练并完成第一轮调参;然后用两周时间搭建系统页面和推理接口;最后一个月专心写论文和做实验对比,留下两周缓冲应对突发问题。

不要一开始就追求完美。第一个完整版本哪怕界面朴素、效果一般,也比"纸上设计了一个完美系统但代码一行没写"强得多。先跑通全流程,再逐步优化细节,这是做毕设最靠谱的策略。

项目文件和权重一定要多备份,最好用云盘或者代码托管平台同步。很多人辛苦训练了一周,结果硬盘出问题,所有成果烟消云散,那种崩溃我见过太多次。训练日志、数据集版本、权重文件、论文草稿全部定期备份,属于花十分钟避免十小时返工的高回报操作。

6.3 一点个人体会

最后说点实际的。果树害虫识别这类毕设,最大的价值不是模型精度刷新了某个榜单,而是让你完整走了一遍"数据—训练—部署—写作"的全链路。这个过程里踩过的每一个坑,都会在后续的工作或深造中变成实实在在的工程直觉。我做这个项目时最深刻的体会就是,真正难的不是用什么模型,而是愿意花时间把数据、细节和工程链路打磨完整。把这个过程走完,答辩时的底气自然就有了。

相关新闻

STM32F407标准库6路串口DMA中断配置实战

STM32F407标准库6路串口DMA中断配置实战

简介:这份资源面向使用STM32F407进行多串口通信开发的嵌入式工程师与学生,基于标准外设库实现6路USART的完整配置,并配套DMA发送与中断接收机制,可解决多设备并发通信、模块化数据转发等场景下的串口资源调度问题。压缩包共115个文…

2026/10/20 20:54:23 阅读更多 →
电商大数据规模到底有多大?从业务场景到技术选型的完整拆解

电商大数据规模到底有多大?从业务场景到技术选型的完整拆解

电商行业的数据规模到底有多大,这个问题几乎每个做数据相关工作的朋友都问过我。不管是刚入行的数据分析师想了解行业天花板,还是做技术选型时拿不准该用什么量级的方案,又或者是产品经理在规划数据看板时想搞清楚“我们这点数据算大还是算小…

2026/10/20 20:54:23 阅读更多 →
AI爬虫技能实战:从反爬识别到合规数据采集

AI爬虫技能实战:从反爬识别到合规数据采集

做数据采集的人,几乎都逃不过“反爬”这两个字。就在上个月,我给自己那个只会聊天的AI助手——代号“小龙虾”——加了一套爬虫技能,让它能自己看网页、提取数据、清洗入库。整个过程踩了不少坑,但也整理出了一套相对完整的思路。…

2026/10/20 20:53:19 阅读更多 →

最新新闻

图数据建模必知:从转导式到归纳式学习的范式切换实践

图数据建模必知:从转导式到归纳式学习的范式切换实践

前阵子接手一个图数据的用户行为预测项目,最初跑得挺顺,后来每来一批新用户,模型效果就肉眼可见地掉。一开始我以为只是特征没做好,调了一周才意识到,问题出在我用的学习范式上——我一直在一张静态图上做转导式&#…

2026/10/20 21:30:50 阅读更多 →
Docker镜像加载原理:分层、内容寻址与联合文件系统

Docker镜像加载原理:分层、内容寻址与联合文件系统

1. 从一次镜像拉取卡顿说起:为什么需要搞懂加载原理很多人用 Docker 的第一课就是docker pull,然后docker run,容器跑起来了,任务就算完成。直到某天你发现:同一个镜像,在测试机上拉取只要十几秒&#xff0…

2026/10/20 21:30:50 阅读更多 →
扩展HTTP协议实现文件夹多线程分片秒传:信创环境下的完整方案

扩展HTTP协议实现文件夹多线程分片秒传:信创环境下的完整方案

前段时间做信创改造,好几个同行都在问同一个问题:配置再高、网络再好的环境里,为什么文件夹上传还是动不动报错?仔细一看,多数系统还在用最原始的multipart/form-data一次性上传。大文件传一半断了就从头再来&#xff…

2026/10/20 21:30:50 阅读更多 →
开源AI助手OpenClaw本地部署实战:从零到跑通全流程

开源AI助手OpenClaw本地部署实战:从零到跑通全流程

先讲一个特别有画面感的场景:上周我在某个技术讨论区闲逛,有人发了一条动态,晒了一张终端截图——一个叫 OpenClaw 的项目跑起来了,正在自动整理他电脑里的文档。底下评论区有人问:"这跟网页版 AI 有啥区别&#…

2026/10/20 21:30:50 阅读更多 →
H3C策略路由PBR双出口实验:配置、验证与排错全指南

H3C策略路由PBR双出口实验:配置、验证与排错全指南

做网络的人早晚会撞上这样一个需求:内网有两条出口链路,领导指定“财务部门的流量必须走专线,其他上网流量走普通宽带”,然后你觉得这很简单,在出口设备上多写几条静态路由不就完事了吗?真正敲完命令你会发…

2026/10/20 21:30:50 阅读更多 →
大语言模型反常识推理能力:培养路径与工程实践

大语言模型反常识推理能力:培养路径与工程实践

大规模语言模型的反常识推理能力培养这两年做大模型应用,有个问题一直在困扰我和身边的同行:模型在常规问答、内容生成上已经强得离谱,但只要碰到那种"违背直觉但其实是正确答案"的问题,立马就露怯。比如你问"一个…

2026/10/20 21:29:46 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →