源码解析篇 | YOLO11:计算机视觉领域的新突破 !对比YOLOv8如何 ?

前言:Hello大家好,我是小哥谈。在2024年9月27日盛大举行的YOLO Vision 2024活动上,Ultralytics公司震撼发布了YOLO系列的最新成员—YOLO11。作为Ultralytics YOLO系列实时目标检测器的最新迭代,YOLO11凭借尖端的准确性、速度和效率,重新定义了性能极限,为目标检测、分割、分类、定向边界框检测以及姿态估计等多样计算机视觉任务树立了新标杆。????

     目录

????1.算法介绍

????2.模型架构

????3.算法应用

????????实时视频分析

????????无人驾驶

????????安防监控

????1.算法介绍

在2024年9月27日盛大举行的YOLO Vision 2024活动上,Ultralytics公司震撼发布了YOLO系列的最新成员—YOLO11。作为Ultralytics YOLO系列实时目标检测器的最新迭代,YOLO11凭借尖端的准确性、速度和效率,重新定义了性能极限,为目标检测、分割、分类、定向边界框检测以及姿态估计等多样计算机视觉任务树立了新标杆。

相较于前代YOLOv8,YOLO11在保持卓越性能的同时,实现了参数数量的显著减少检测效果却更上一层楼。这一突破性进展预示着YOLO11在边缘设备上的运行将更为高效、快速,无疑将在计算机视觉领域的最先进技术(SOTA)中占据一席之地。

基于之前YOLO版本的显著成就,YOLO11在架构设计训练方法上进行了重大革新,使其成为应对各种复杂计算机视觉挑战的首选工具。

github地址:https: //github.com/ultralytics/ultralytics

关于YOLO11的主要改进:

  • 增强的特征提取:YOLO11采用了改进的主干(backbone)和头部(head)架构,显著增强了特征提取能力。具体而言,backbone部分将YOLOv8的C2f模块替换成了YOLO11的C3k2模块,并在YOLOv8的SPPF模块后新增了C2PSA模块C3k2模块集成了C2f和C3模块的组合,而C2PSA模块则是一个由两个卷积层和一个多头自注意力模块组成的结构,用于进一步增强特征提取能力。

  • 优化的效率和速度:YOLO11引入了精致的架构设计和优化的训练流程,以提供更快的处理速度。通过这些改进,YOLO11在保持准确性和性能之间平衡的同时,实现了更快的处理速度

  • 使用更少的参数获得更高的精度:YOLO11m在COCO数据集上实现了更高的平均准确度(mAP),同时使用的参数比YOLOv8m少22%。这表明YOLO11在不影响精度的情况下,通过减少参数数量提高了计算效率。

  • 跨环境适应性:YOLO11可以无缝部署在各种环境中,包括边缘设备云平台以及支持NVIDIA GPU的系统。这种跨环境的适应性确保了YOLO11在各种应用场景中的灵活性和可用性。

  • 支持的任务范围广泛:YOLO11不仅支持对象检测任务,还支持实例分割、图像分类、姿态估计定向对象检测(OBB)等多种计算机视觉任务。这种多功能性使得YOLO11能够应对各种复杂的计算机视觉挑战。


????2.模型架构

YOLO11的5种尺寸缩放模型包括:纳米(nano, n)、(small , s)、(medium, m)、(large, l)和超大(extra-large, x)。这些模型在结构上是相似的,但它们的深度、宽度和最大通道数等参数有所不同,从而导致了它们在计算量、内存占用性能上的差异。

# backbone特征提取

通过观察YOLO11与YOLOv8的backbone部分可以发现,在模块组合上差别主要来源于:

  • C3k2模块替换了原有的C2f模块;

  • 增加了C2PSA模块;

C3k2模块是YOLO11模型中的一种重要特征提取组件,通过代码可知,该模块是基于传统C3模块的改进设计。它通过结合可变卷积核(如3x3、5x5等)和通道分离策略,提供了更强大的特征提取能力。

C3k2模块通常将输入特征分为两部分,一部分通过普通的卷积操作直接传递另一部分则通过多个C3K或Bottleneck结构进行深度特征提取最终两部分特征进行拼接,并通过1x1卷积进行融合。

C3k2模块是基于C3完成的一个更快速的CSP模块,CSP模块结构如下:

class C3k2(C2f):
    """Faster Implementation of CSP Bottleneck with 2 convolutions."""

    def __init__(self, c1, c2, n=1, c3k=False, e=0.5, g=1, shortcut=True):
        """Initializes the C3k2 module, a faster CSP Bottleneck with 2 convolutions and optional C3k blocks."""
        super().__init__(c1, c2, n, shortcut, g, e)
        self.m = nn.ModuleList(
            C3k(self.c, self.c, 2, shortcut, g) if c3k else Bottleneck(self.c, self.c, shortcut, g) for _ in range(n)
        )


class C3k(C3):
    """C3k is a CSP bottleneck module with customizable kernel sizes for feature extraction in neural networks."""

    def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5, k=3):
        """Initializes the C3k module with specified channels, number of layers, and configurations."""
        super().__init__(c1, c2, n, shortcut, g, e)
        c_ = int(c2 * e)  # hidden channels
        # self.m = nn.Sequential(*(RepBottleneck(c_, c_, shortcut, g, k=(k, k), e=1.0) for _ in range(n)))
        self.m = nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, k=(k, k), e=1.0) for _ in range(n)))

可以看到最关键的就是在C3k2的中调用C3k时候指定参数为2,从C3k2调用C3k,所以C3k2的意思就是两个C3k。 

YOLO11中的C2PSA模块是该模型的核心创新之一。

C2PSA在前向传播过程中,首先分为a,b两部分进行计算(b部分也分为两部分,为了进行区分,按顺序命名为b1和b)。

  • a和b1首先经过cv1(1x1卷积层,将输入通道的数量减少到2*c)模块进行卷积操作,然后依据c(隐藏层通道数量)进行切分得到;

  • b是b1经过PSABlock的金字塔切片注意力机制得到,它通过构建金字塔结构,对输入特征进行多层次的切片处理,从而捕捉更丰富的上下文信息和特征细节;

  • 最后a、b通过cat拼接后,经过cv2(1x1卷积层,将输出通道的数量减少到c)模块完成前向传播过程。

C2PSA是一个具有注意力机制的特征提取和处理模块,能够进一步增强模型的特征提取能力。C2PSA支持一个可以多次叠加的PSA(金字塔切片注意力)模块,PSA是在受到了SE注意力机制的叠加改进,SE注意力模块如下:

最终的PSA注意力模块结构如下:

SPC模块结构如下:

最终得到的PSA模块作为独立组件,可以插入不同模型的Backbone之中进行替换,增强模型的特征提取能力。

# head特征融合

深度可分离卷积的应用:

YOLO11在head的cls分支上使用了深度可分离卷积,这种卷积方式有助于减少模型的计算量,同时保持较高的精度。通过减少冗余计算,YOLO11在保持性能的同时实现了更高的效率。

# 检测头部分

YOLO11的检测头部分延续了YOLOv8的设计,因此后处理解析步骤基本相同,保证了模型的稳定性可靠性


????3.算法应用

????????实时视频分析

实时视频分析中,YOLO11发挥着至关重要的作用。凭借其快速的处理速度和高精度的目标检测能力,能够在短时间内对大量的视频数据进行分析。例如,在直播平台上,YOLO11可以实时检测主播的动作和表情,为观众提供更加丰富的互动体验。同时,它还可以对直播内容进行实时审核,确保直播的合法性和规范性。在视频会议中,YOLO11 可以实时识别参会人员的身份和表情,提高会议的效率和质量。据统计,使用YOLO11进行实时视频分析,能够将分析效率提高30%以上,大大节省了时间和人力成本。

????????无人驾驶

无人驾驶领域,YOLO11是不可或缺的技术之一。它能够实时检测和识别道路上的各种物体,如行人、车辆、交通标志等,为无人驾驶汽车提供准确的环境信息。通过精确的目标检测和跟踪,无人驾驶汽车可以更加安全地行驶。例如,在复杂的城市道路环境中,YOLO11可以准确地识别出行人的位置和行动方向,及时采取刹车或避让措施,避免交通事故的发生。此外,YOLO11还可以与其他传感器技术相结合,如激光雷达、毫米波雷达等,提高无人驾驶汽车的感知能力和决策能力。据研究表明,使用YOLO11技术的无人驾驶汽车,其安全性和可靠性可以提高20%以上。

????????安防监控

安防监控领域,YOLO11有着广泛的应用前景。它可以实时监测监控区域内的人员和物体,及时发现异常情况并发出警报。例如,在银行、商场等公共场所,YOLO11可以实时识别可疑人员的行为和特征,为安保人员提供及时的预警信息。同时,它还可以对监控视频进行智能分析,提取有价值的信息,为案件侦破提供线索。在智能小区中,YOLO11可以实现人员和车辆的自动识别和管理,提高小区的安全性和管理效率。据数据显示,使用YOLO11技术的安防监控系统,其准确率可以提高40%以上,有效地保障了公共安全。


上一篇:【JWT】Asp.Net Core中JWT刷新Token解决方案


下一篇:了解什么是稀土长余辉发光剂