YOLOv8 到 YOLO11:从架构层面深入对比综述

本文转载自:
https://mp.weixin.qq.com/s/bGUvIpcvHfYn3soD9JNMTQ



多种模型的效果对比


一、YOLO 版本更迭

YOLO 是被工业界最广泛使用的模型之一,自 2015 年 YOLOv1 发布以来,到 2024 年已发展到第 11 个版本。上篇文章 2025年了,AI算法工程师的核心竞争力是什么?也提到了大家都在用YOLO,但是一些人却完全不懂。

本文的目标是对四个最新的 YOLO 模型(特别是 YOLOv8 到 YOLO11)进行全面且深入的架构比较,使你能够快速掌握每个模型的运行方式及其之间的区别。

  • YOLOv8(2023)引入了无锚点检测方法,简化了模型架构并提升了对小目标的检测性能。其统一的多任务框架增强了其在多个计算机视觉领域的适用性。YOLOv8 支持目标检测、实例分割和图像分类任务,并新增了目标跟踪、姿态估计和旋转边界框等功能。


YOLOv8 支持多种视觉任务,成为工业界标配

  • YOLOv9(2024)引入了 PGI(可编程梯度信息)框架和 GELAN(广义高效层聚合网络)架构,解决了信息瓶颈问题并提高了轻量级模型的准确性。
  • YOLOv10(2024)采用了无 NMS(非极大值抑制)训练,简化了从训练到部署的流程并减少了计算需求。空间-通道解耦下采样和大核卷积的使用显著提升了性能和效率。
  • YOLO11 在目标检测、特征提取、实例分割、姿态估计、跟踪和分类等多种计算机视觉任务中表现出色。它代表了实时目标检测技术的重大突破。YOLOv11 新增了 C3k2 模块、SPPF(快速空间金字塔池化)和 C2PSA(并行空间注意力卷积模块),这些组件增强了特征提取和目标检测能力。

YOLO11实时目标检测速度与精度优势明显


二、变化


1、输入图像的调整

与 YOLOv4 及其前代产品相比,YOLOv8 至 YOLO11 中的输入图像将在保留图像纵横比的同时进行调整。为了保留纵横比,图像将用灰色像素填充。如果输入图像是正方形,则图像将在不填充的情况下进行调整。



Letterbox代码示例如下:

def letterbox(img: np.ndarray, new_size:ImgSize, fill_value: int=114) -> np.ndarray:          
    aspect_ratio = min(new_size.height / img.shape[1], new_size.width / img.shape[0])  
      
    new_size_with_ar = int(img.shape[1] * aspect_ratio), int(img.shape[0] * aspect_ratio)  
      
    resized_img = np.asarray(cv2.resize(img, new_size_with_ar))  
    resized_h, resized_w, _ = resized_img.shape  
      
    padded_img = np.full(new_size.get_tuple(), fill_value)  
    center_x = new_size.width / 2  
    center_y = new_size.height / 2  
      
    x_range_start = int(center_x - (resized_w / 2))  
    x_range_end = int(center_x + (resized_w / 2))  
      
    y_range_start = int(center_y - (resized_h / 2))  
    y_range_end = int(center_y + (resized_h / 2))  
      
    padded_img[y_range_start: y_range_end, x_range_start: x_range_end, :] = resized_img  
    return padded_img  
  
img = cv2.imread("zidane.jpg")  
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  
img_lb_mine = letterbox(np.asarray(img_rgb), ImgSize(640, 640))  
plt.imshow(img_lb)

2、YOLO系列模型架构


YOLOv8 的架构图示例

YOLOv8 的变体由三个参数决定:depth_multiplewidth_multiplemax_channels。其中,depth_multiple 参数决定了 C2f 模块中瓶颈块的数量,而 width_multiplemax_channels 参数定义了输出通道数。检测头由两个部分组成,分别是分类头(classification head)和回归头(regression head)。分类头用于生成类别概率,而回归头用于生成边界框坐标预测。每个头由两个卷积块组成,后接一个二维卷积层。



YOLOv9 的架构图

YOLOv9 新增了一个称为“辅助部分”(auxiliary)的模块。该部分用于生成可靠的梯度并更新网络参数。通过提供连接输入数据与输出目标的额外信息,解决了深度学习网络层间信息丢失的问题。辅助部分仅在训练过程中使用,在推理过程中可以移除以加速模型运行,而不会影响准确性。



YOLOv10 的架构图

在训练过程中使用两个头:一个头实现一对多分配以提供强监督,另一个头使用一对一匹配。在推理过程中,仅使用一对一匹配的头,从而消除了对 NMS(非极大值抑制)的需求,在不牺牲性能的情况下提高了推理效率。



YOLO11 的架构图

引入了一个新模块,即 DWConv(深度可分离卷积模块)。depth_multiple 变量用于确定 C3k2 模块中瓶颈块或 C3k 块的数量,以及 C2PSA 模块中 PSA 块的数量。width_multiplemax_channels 变量则用于定义输出通道数。



YOLO8 vs 11性能对比


关于YOLO11的具体细节和训练可以参考仅更改一行代码! 一颗彻底改变视觉AI领域的重磅炸弹:YOLOv11

关于上述YOLO几种模型的更详细的网络结构对比可以查阅论文:https://arxiv.org/pdf/2501.13400


2025-02-02(日)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值