【人工智能】YOLOv8文献阅读及源码复现

图片[1] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本

官方没有发布论文,故参考第三方论文,地址:https://arxiv.org/abs/2408.15857;官方文档:https://docs.ultralytics.com/zh/models/yolov8/

动机

Ultralytics 推出 YOLOv8 的主要目标,是在准确性(精度)和推理速度之间实现更优平衡,使现实中对实时目标检测有高要求的应用(如监控、自动驾驶、边缘设备)能更好地部署。与早期 YOLO 版本相比,YOLOv8 通过架构精炼和模块优化,希望提供更现代、更高效、用途更广的模型,同时简化开发者使用预训练模型和微调模型的门槛。

创新点

架构设计:YOLOv8使用Backbone+Neck架构来提取和融合特征,以提高检测性能。
无锚点(anchor-free)检测头:YOLOv8采用无锚点、分离式(decoupled)的UltralyticsHead,相比传统锚框(anchor-based)方法,这种设计降低了复杂度并提升效率。
多任务支持:YOLOv8系列不仅包括目标检测(detect),还支持实例分割(seg)、姿态估计(pose)、定向检测(obb)、分类(cls)等任务,每一种变体都针对对应任务优化。
优化精准性-速度权衡:提供不同规模版本,用户可以根据场景选择更轻量或更高精度的模型。

图片[2] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本

与 YOLOv5 相比,YOLOv8 的 Neck 部分进行了以下优化:首个卷积层的卷积核尺寸从 6×6 调整为 3×3,所有 C3 模块替换为 C2f 结构,该结构增加了更多跳层连接和 Split 操作。

图片[3] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本

①移除Neck模块中的两个卷积连接层。
②Backbone中C2f模块的Block数量由3-6-9-3调整为3-6-6-3。
③观察N/S/M/L/X等尺寸模型发现,N/S与L/X仅调整缩放系数,而S/M/L骨干网络通道数设置存在差异,未采用统一缩放系数。这可能是由于统一缩放系数下的通道配置并非最优,YOLOv7设计时也未对所有模型使用同一套缩放系数。

图片[4] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本

Head部分进行了重大改进,由原来的耦合头转变为解耦头结构,同时从YOLOv5的Anchor-Based机制切换为Anchor-Free设计,其结构如左图所示。
新结构中不再包含objectness分支,仅保留解耦的分类与回归分支,其中回归分支采用Distribution Focal Loss中提出的积分形式表示法。

数据集

COCO (常用目标检测 benchmark):YOLOv8 各版本在 COCO 上训练并报告 mAP。
Open Images V7:Ultralytics 提供了在 Open Images V7 上预训练模型 (有 600 类) 的支持。

实验结果

在COCO数据集(检测任务)上,YOLOv8n(最小版本)在val集合取得mAP₅₀–₉₅=37.3。
推理速度(A100TensorRT):YOLOv8n在A100卡上达到0.99毫秒(ms)的推理时间。
参数量与计算量(FLOPs):不同版本差别大,例如v8n只有~3.2M参数/8.7BFLOPs;v8x则有~68.2M参数/237.8BFLOPs。
在其他任务上的表现:
实例分割:YOLOv8n-segmAP_box=~36.7,mAP_mask=~30.5。
姿态估计:YOLOv8n-posemAP(50-95)≈50.4。
旋转框检测:YOLOv8n-obb在DOTAv1上mAP₅₀=78.0。
分类:YOLOv8n-cls在ImageNet上top-1accuracy=69.0%,top-5=88.3%。

改进空间

虽然无锚点Head简化了结构,但可能在某些密集或小物体上性能还可以优化。
另外学术可解释性因为没有正式的论文,对其架构设计细节(例如backbone具体结构)的公开分析较少,研究人员如果要深入理解或改进,必须自己阅读源码或社区逆向。

模型复现和分析

图片[5] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本

使用COCO128数据集复现

图片[6] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[7] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[8] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[9] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[10] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[11] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[12] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[13] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本
图片[14] - AI科研 编程 读书笔记 - 【人工智能】YOLOv8文献阅读及源码复现 - AI科研 编程 读书笔记 - 小竹の笔记本

模型对比

与之前的YOLO系列相比,YOLOv8引入了无锚点Head与更先进Backbone+Neck结构,这些改进使其在速度-精度之间更有优势。
与后续版本(如YOLO11)对比,YOLO11在架构和效率上还有进一步优化。

特性/模型YOLOv1YOLOv3YOLOv4YOLOv5YOLOv8
发布年份20152018202020202023
核心思想将目标检测视为单个回归问题,实现端到端实时检测。引入多尺度特征图预测,大幅提升小目标检测能力。系统性整合当时的最佳实践(Bag of Freebies 与 Bag of Specials)。注重工程化、易用性、训练速度和部署灵活性。新一代标杆架构,统一多种视觉任务并实现 SOTA 性能。
骨干网络 (Backbone)Custom(类 GoogLeNet)Darknet-53CSPDarknet53CSPDarknet53CSPDarknet(C2f 模块),进一步优化
颈部网络 (Neck)FPN(特征金字塔网络)PANet + SPPPANet + SPP增强的 PAN(FPN + PAN),优化特征融合路径
头部网络 (Head)耦合头,直接回归坐标和类别解耦头,为不同尺度分别设置预测头与 v3 类似与 v3 / v4 类似无锚框解耦头,简化训练并提升泛化能力
锚框机制 (Anchor)Anchor-BasedAnchor-BasedAnchor-Based,引入自适应锚框Anchor-Free,模型自适应学习中心与尺寸
损失函数MSE LossBCE Loss(分类/置信度) + MSE Loss(坐标)CIoU Loss(定位) + BCE LossBCE Loss + CIoU LossFocal Loss(分类) + CIoU / DFL Loss(定位) + BCE Loss(对象性)

© 版权声明
THE END
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容