当前位置: 首页 > news >正文

深度学习篇---Yolov系列

YOLO(You Only Look Once)系列是目标检测领域极具影响力的算法家族,以速度快、精度高为核心优势,从 2016 年首次提出至今,已迭代多个版本,不断在实时性与检测性能之间寻求突破。以下是 YOLOv 系列的详细介绍:

一、YOLOv1(2016):开创性的 “单阶段” 思路

YOLOv1 是该系列的开山之作,首次将目标检测视为回归问题,打破了传统 “先候选框再分类” 的两阶段思路(如 R-CNN 系列),实现了端到端的实时检测。

核心特点:
  • 统一框架:将输入图像划分为(S×S)网格(默认(7×7)),每个网格负责预测中心落在该网格内的目标。
  • 预测内容:每个网格输出 2 个边界框(x, y, w, h)、置信度(反映框包含目标的概率 + 框的准确度),以及C个类别概率(基于数据集类别数,如 PASCAL VOC 的 20 类)。
  • 损失函数:综合位置误差、置信度误差和分类误差,通过平方和损失优化。
优缺点:
  • 优点:速度极快(GPU 上 45fps),端到端训练简单。
  • 缺点
    • 小目标检测能力弱(网格划分较粗,易漏检密集小目标)。
    • 边界框定位精度不足,尤其是大目标。

二、YOLOv2(2017):精度与速度的平衡

YOLOv2 在 v1 基础上进行了多项改进,目标是 “更好、更快、更强”(Better, Faster, Stronger)。

核心改进:
  1. Batch Normalization(批归一化):每个卷积层后加入 BN,减少过拟合,提升收敛速度,精度提升 2%。
  2. 高分辨率分类器:先在 448×448 分辨率下预训练分类网络(Darknet-19),再用于检测,适应更高分辨率输入。
  3. Anchor Boxes(锚框):借鉴 Faster R-CNN 的锚框机制,不再让网格直接预测边界框,而是预测锚框的偏移量,增加小目标检测能力,召回率提升约 16%。
  4. 维度聚类:通过 K-means 聚类训练集中的边界框,生成更适合数据的锚框尺寸(默认 5 种),而非手动设定。
  5. passthrough 层:将 26×26×512 的特征图与 13×13×1024 的特征图融合(拼接通道),保留细粒度特征,提升小目标检测。
性能:
  • 速度:67fps(VOC 数据集),精度超过 Fast R-CNN。
  • 衍生版本 YOLO9000:通过联合训练分类与检测数据集(COCO+ImageNet),支持 9000 + 类目标检测。

三、YOLOv3(2018):多尺度检测与更优网络

YOLOv3 进一步优化了网络结构和检测策略,尤其增强了多尺度目标的识别能力。

核心改进:
  1. Darknet-53 网络:替换 v2 的 Darknet-19,采用更多残差块(Residual Block),加深网络至 53 层,提升特征提取能力,同时保持高效(比 ResNet-101/152 更快)。
  2. 多尺度检测:在 3 个不同尺度(13×13、26×26、52×52)的特征图上预测目标,分别对应大、中、小目标,通过上采样融合高层语义特征与低层细节特征。
  3. 类别预测优化:用多标签分类(sigmoid 函数 + 二进制交叉熵损失)替代 softmax,支持目标属于多个类别的场景(如 “人” 同时属于 “行人” 和 “运动员”)。
  4. 锚框调整:增加到 9 种锚框(每个尺度 3 种),通过聚类 COCO 数据集得到。
性能:
  • 在 COCO 数据集上 mAP(平均精度均值)达 57.9%,速度 51fps,平衡了精度与实时性。
  • 小目标检测能力显著提升,但仍弱于两阶段算法(如 FPN)。

四、YOLOv4(2020):工程化的极致优化

YOLOv4 由 Alexey Bochkovskiy 等提出,整合了当时计算机视觉领域的多项先进技术,目标是 “在 GPU 上实现最快的实时检测”。

核心改进:
  1. 骨干网络升级:CSPDarknet53,基于 Darknet-53,引入 CSP(Cross Stage Partial)结构,将特征图分为两部分处理后融合,减少计算量,增强梯度传播。
  2. ** Neck 部分 **:采用 PANet(Path Aggregation Network)替代 FPN,增加自底向上的特征融合路径,提升低层特征利用效率。
  3. 训练技巧
    • Mosaic 数据增强:随机拼接 4 张图像,增加小目标和背景多样性。
    • CmBN(Cross Mini-Batch Normalization):改进 BN,利用前几批数据的统计信息,提升训练稳定性。
    • SAT(Self-Adversarial Training):分两步训练,先让网络生成对抗样本,再用对抗样本训练,增强鲁棒性。
  4. 激活函数:用 Mish 激活函数(\(x·tanh(softplus(x))\))替代 Leaky ReLU,提升精度。
性能:
  • COCO 数据集 mAP 达 43.5%(416×416 输入),速度 65fps;大分辨率输入(832×832)时 mAP 达 50.5%,远超 v3。

五、YOLOv5(2020):易用性与灵活性的突破

YOLOv5 并非由 YOLO 原作者提出,而是 Ultralytics 公司开源的项目,但因易用性和高性能被广泛采用,成为工业界主流。

核心改进:
  1. 网络结构模块化:分为 Input、Backbone、Neck、Head 四部分,支持灵活调整。
    • Backbone:CSPDarknet,根据模型大小(n/s/m/l/x)调整深度和宽度。
    • Neck:PANet 结构,增加 CSP 模块。
    • Head:统一输出 3 个尺度的预测,用 GIOU 损失优化边界框。
  2. 自动锚框计算:训练前自动根据数据集计算最优锚框,无需手动设置。
  3. 更强的数据增强
    • 自适应锚框缩放(根据输入尺寸调整锚框)。
    • 混合增强(MixUp)、仿射变换(旋转、缩放等)。
  4. 部署友好:支持 ONNX、TensorRT 等格式导出,适配边缘设备(如 Jetson)和云平台。
版本与性能:
  • 提供 5 个版本(n/s/m/l/x),平衡速度与精度:
    • YOLOv5n: fastest,28.7mAP,124fps(GPU)。
    • YOLOv5x:最高精度,50.7mAP,13fps。
  • 小目标检测能力优于 v4,且训练和部署流程更简化。

六、YOLOv6(2022):工业级实时检测

YOLOv6 由美团团队提出,针对工业场景优化,侧重推理速度和部署效率。

核心改进:
  1. Backbone:EfficientRep:用 RepVGG 的结构(训练时多分支,推理时融合为单分支),提升速度同时保持精度。
  2. Neck:Rep-PAN:结合 PANet 和 RepVGG 思想,简化特征融合层,减少计算量。
  3. Head:Decoupled Head:将分类与回归分支分离(分类用 Conv+BN+SiLU,回归用 Conv+BN+SiLU + 锚框偏移),提升收敛速度和精度。
  4. 动态标签分配:用 TOOD(Task-Aligned One-Stage Object Detection)的分配策略,根据分类与定位的联合得分分配标签,替代传统 IOU 分配。
性能:
  • 在 COCO 数据集上,YOLOv6-s(320×320)mAP 达 43.5%,速度 123fps,优于 v5-s。

七、YOLOv7(2022):实时目标检测的巅峰

YOLOv7 由原 YOLOv4 团队推出,专注于 “实时性” 与 “高精度” 的极致平衡,在 COCO 数据集上 mAP 超过 60%。

核心改进:
  1. 扩展高效网络(Extended EfficientNet)
    • ELAN 结构:通过堆叠不同尺度的梯度流分支,平衡网络深度与计算效率,提升特征学习能力。
    • 模型缩放策略:同时调整深度、宽度和分辨率,而非单一维度。
  2. 训练优化
    • Mosaic 增强改进:仅在训练后期使用,避免早期对小目标的干扰。
    • Re-parametric(重参数化):训练时用多分支结构,推理时融合为单分支,提升速度。
  3. 辅助头训练:增加一个辅助检测头,在训练中辅助主头学习,推理时移除,提升主头精度。
性能:
  • 512×512 输入下,mAP 达 51.4%,速度 161fps;1280×1280 输入时 mAP 达 63.7%,远超同期算法。

八、YOLOv8(2023):全场景适配的统一框架

YOLOv8 是 Ultralytics 推出的最新版本,整合了目标检测、实例分割、姿态估计等任务,更注重易用性和泛化能力。

核心改进:
  1. 网络结构简化
    • Backbone:CSPDarknet 升级为 CSPDarknetv8,移除部分残差块,提升效率。
    • Neck:用 C2f 模块替代 C3,增加跨层连接,增强特征融合。
    • Head:采用无锚框(Anchor-Free)设计,直接预测目标中心点和宽高,简化计算。
  2. 任务扩展:支持目标检测、实例分割(新增分割头)、人体姿态估计(关键点预测)。
  3. 训练策略优化
    • 动态学习率调整。
    • 改进的损失函数(分类用 CE,回归用 CIOU)。
性能:
  • 检测任务:YOLOv8-x 在 COCO 上 mAP 达 53.9%,速度 31fps,优于 v7 和 v5。
  • 部署支持:兼容 TensorRT、OpenVINO 等,适配 CPU、GPU、边缘设备。

九、YOLO 系列对比总结

版本核心创新优势领域典型性能(COCO mAP)速度(GPU fps)
YOLOv1单阶段检测框架实时性初代验证63.4%(VOC)45
YOLOv2锚框 + 多尺度中小目标平衡76.8%(VOC)67
YOLOv3Darknet-53 + 三尺度检测多尺度目标57.9%51
YOLOv4CSP 结构 + 工程化优化工业级实时检测50.5%(832 输入)65
YOLOv5模块化 + 易用性快速部署与二次开发50.7%(x 版本)13(x)
YOLOv6解耦头 + 动态标签分配高速度场景(如美团配送)52.5%(l 版本)72(l)
YOLOv7ELAN 结构 + 重参数化高精度实时检测63.7%(1280 输入)36(1280 输入)
YOLOv8无锚框 + 多任务统一全场景适配(检测 / 分割等)53.9%(x 版本)31(x)

十、YOLO 系列的应用场景

  • 实时监控:安防摄像头中的行人、车辆检测。
  • 自动驾驶:实时识别交通灯、障碍物、车道线。
  • 机器人视觉:物体抓取、环境导航。
  • 移动端应用:手机拍照的实时目标标注(如人像虚化)。

YOLO 系列的迭代体现了目标检测从 “追求速度” 到 “速度与精度并重”,再到 “工程化落地” 的演进,未来仍将在轻量化、小样本学习等方向持续突破。

http://www.lryc.cn/news/581776.html

相关文章:

  • rxcpp--基础
  • 【机器学习笔记Ⅰ】2 线性回归模型
  • LeetCode 287. 寻找重复数(不修改数组 + O(1) 空间)
  • Android studio升级AGP需要注意哪些
  • 编程基础:继承
  • Modbus_TCP_V5 新功能
  • C++之路:多态与虚函数
  • 在phpstudy环境下配置搭建XDEBUG配合PHPSTORM的调试环境
  • 【Bluedroid】蓝牙 GATT 客户端注册机制与流程详解(BTA_GATTC_AppRegister)
  • Solidity——pure 不消耗gas的情况、call和sendTransaction区别
  • 【算法刷题记录(简单题)003】统计大写字母个数(java代码实现)
  • Node.js特训专栏-实战进阶:13. ORM/ODM工具选型与使用
  • AI做美观PPT:3步流程+工具测评+避坑指南
  • 【论文笔记】【强化微调】Pixel Reasoner:早期 tool call 的调用
  • CppCon 2018 学习:Undefined Behavior is Not an Error
  • 【系统分析师】2022年真题:论文及解题思路
  • (二) TDOA(到达时间差)、AoA(到达角度)、RSSI(接收信号强度)、TOF(飞行时间) 四种定位技术的原理详解及对比
  • 手动使用 Docker 启动 MinIO 分布式集群(推荐生产环境)
  • 从前端转go开发的学习路线
  • 2025 BSidesMumbaiCTF re 部分wp
  • NLP文本预处理
  • Spring AI(12)——调用多模态模型识别和生成图像
  • MyBatis实战指南(九)MyBatis+JSP+MySQL 前端页面实现数据库的增加与删除显示数据
  • 分布式会话的演进和最佳事件,含springBoot 实现(Java版本)
  • 【网络安全】不要在 XSS 中使用 alert(1)
  • 电池预测 | 第33讲 Matlab基于CNN-LSTM-Attention的锂电池剩余寿命预测,附锂电池最新文章汇集
  • 一个简单的脚本,让pdf开启夜间模式
  • 【STM32】通用定时器PWM
  • 李宏毅NLP-8-语音模型
  • 20250706-11-Docker快速入门(下)-构建Nginx镜像和Tomcat镜像_笔记