**前言:****Hello大家好,我是小哥谈。**在2024年9月27日盛大举行的YOLO Vision 2024活动上,Ultralytics公司震撼发布了YOLO系列的最新成员---YOLO11。作为Ultralytics YOLO系列实时目标检测器的最新迭代,YOLO11凭借尖端的准确性、速度和效率,重新定义了性能极限,为目标检测、分割、分类、定向边界框检测以及姿态估计等多样计算机视觉任务树立了新标杆。🌈
目录
🚀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模块结构如下:
python
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%以上,有效地保障了公共安全。