前言
YOLO11作为这YOLO系列的最新力作,无疑将目标检测算法推向了一个新的高度。YOLO11在2024年9月30日的YOLOVision活动中正式发布了,这一新版本不仅在性能上有了显著提升,还在功能多样性上迈出了重要一步。
一、模型介绍
YOLO11是由Ultralytics团队于2024年9月30日发布的,它是YOLO(You Only Look Once)系列中的最新成员。YOLO11在之前版本的YOLO基础上引入了新功能和改进,以进一步提高性能和灵活性。这使得YOLO11成为目标检测和跟踪、实例分割、图像分类和姿态估计等多种计算机视觉任务的理想选择。
二、网络结构
YOLO11采用改进的骨干和颈部架构,增强了特征提取能力,提高了物体检测的精确度和复杂任务的表现。相比较于YOLOv8模型,其将CF2模块改成C3K2,同时在SPPF模块后面添加了一个C2PSA模块,且将YOLOv10的head思想引入到YOLO11的head中,使用深度可分离的方法,减少冗余计算,提高效率。
1.主干网络(Backbone)
YOLO1增加了一个C2PSA模块,并且将C2f替换为了C3k2。相比于C2f,当超参数c3k=True时,瓶颈块替换为 C3k,否则还是C2f,而C3k相比于C3则是可以让使用者自定义卷积块大小,更加灵活。C2PSA扩展了C2f,通过引入PSA( Position-Sensitive Attention),旨在通过多头注意力机制和前馈神经网络来增强特征提取能力。它可以选择性地添加残差结构(shortcut)以优化梯度传播和网络训练效果。同时,使用FFN 可以将输入特征映射到更高维的空间,捕获输入特征的复杂非线性关系,允许模型学习更丰富的特征表示。
2.颈部网络(Neck)
YOLO11使用PAN结构,并在其中也使用了C3K2模块。这种结构设计有助于聚合来自不同尺度的特征,并优化特征的传递过程。C3K2模块其实就是C2F模块转变出来的,它代码中有一个设置,就是当c3k这个参数为FALSE的时候,C3K2模块就是C2F模块,也就是说它的Bottleneck是普通的Bottleneck;反之当它为true的时候,将Bottleneck模块替换成C3模块。
3.头部网络(Head)
YOLO11的Head部分和YOLOV8是近似的,YOLO11在head部分的cls分支上使用深度可分离卷积,具体代码如下:
self.cv2 = nn.ModuleList(
nn.Sequential(Conv(x, c2, 3), Conv(c2, c2, 3), nn.Conv2d(c2, 4 * self.reg_max, 1)) for x in ch
)
self.cv3 = nn.ModuleList(
nn.Sequential(
nn.Sequential(DWConv(x, x, 3), Conv(x, c3, 1)),
nn.Sequential(DWConv(c3, c3, 3), Conv(c3, c3, 1)),
nn.Conv2d(c3, self.nc, 1),
)
for x in ch
)
三、算法改进
YOLO11在其前身基础上引入了几项重要进步。主要改进包括:
1.增强的特征提取
YOLO11采用改进的骨干和颈部架构,增强了特征提取能力,提高了物体检测的精确度。
2.优化的效率和速度
精炼的架构设计和优化的训练流程实现了更快的处理速度,同时保持了准确性和性能之间的平衡。
3.更高的准确性与更少的参数
YOLO11m在COCO数据集上实现了更高的均值平均精度(mAP),同时使用比YOLOv8m少22%的参数,使其在不妥协准确性的情况下更加计算高效。
4.环境适应性强
YOLO11可以在多种环境中部署,包括边缘设备、云平台以及支持NVIDIA GPU的系统。
5.支持广泛的任务
YOLO11支持多种计算机视觉任务,如物体检测、实例分割、图像分类、姿态估计和定向物体检测(OBB)。
四、性能表现
YOLO11引入精炼的架构设计和优化的训练流程,实现更快的处理速度,同时保持精度和性能之间的最佳平衡。通过模型设计的进步,YOLO11m在COCO数据集上实现了更高的均值平均精度(mAP),同时使用比YOLOv8m少22%的参数,使其在不妥协准确性的情况下更加计算高效。YOLO11可以无缝部署在各种环境中,包括边缘设备、云平台以及支持NVIDIA GPU的系统,确保最大灵活性。无论是物体检测、实例分割、图像分类、姿态估计,还是定向物体检测(OBB),YOLO11都旨在应对多样的计算机视觉挑战。
五、损失函数
Loss 计算包括 2 个分支:分类和回归分支,没有了之前的 objectness 分支。分类分支依然采用 BCE Loss。回归分支使用了 Distribution Focal Loss(DFL Reg_max默认为16)+ CIoU Loss。3 个Loss采用一定权重比例加权即可。
这里重点介绍一下DFL损失。目前被广泛使用的bbox表示可以看作是对bbox方框坐标建模了单一的狄拉克分布。但是在复杂场景中,一些检测对象的边界并非十分明确。如下图左面所示,对于滑板左侧被水花模糊,引起对左边界的预测分布是任意而扁平的,对右边界的预测分布是明确而尖锐的。对于这个问题,有学者提出直接回归一个任意分布来建模边界框,使用softmax实现离散的回归,将狄拉克分布的积分形式推导到一般形式的积分形式来表示边界框。
六、YOLO11使用详解
无论是YOLOv8还是YOLO11,Coovally平台通通可以满足的你的训练需求,而且模型训练对比、实验结果等参数直观对比,满足你的课题研究和商业应用。
1.添加模型
进入Coovally平台点击【全部模型】,搜索YOLO11,在这里可以选择不同的YOLO11版本。下载代码包或者点击另存为我的模型。进入【模型集成】页面,进行安装。
2.创建数据集
进入【图像数据】页面,点击创建数据集,输入数据集名称、描述,选择任务类型,上传压缩包文件。创建数据集时可以按照比例拆分训练集、验证集、测试集。
3.数据标注
进入【辅助标注】页面,点击创建样本集,进入样本集详情页,创建好标签进行数据标注。可以选择几组数据进行人工标注,标注完成后发布为数据集启动微调训练,剩余样本集数据即可全部自动化完成。
4.模型训练
进入数据集详情页,输入任务名称,选择模型配置模版,设置实验E-poch次数,训练次数等信息,即可开始训练。
5.模型预测
模型训练完成后,完成模型转换与模型部署后,即可上传图片进行结果预测。完成后还可以将模型下载与分享。
总结
YOLO11算法提高了检测精度和效率。在有很多物体的视频中,YOLO11的检测效果更好,甚至可以检测到领带等细小物品。
1.网络结构与性能提升
YOLO11通过引入C3K2、C2PSA等模块,增强了特征提取能力,提高了检测精度。同时,采用深度可分离卷积等方法优化计算效率,实现了更快的处理速度和更高的性能。这使得YOLO11在多种计算机视觉任务中表现出色,尤其在复杂场景中更具优势。
2.算法改进与任务扩展
YOLO11在算法层面进行了多项优化,包括增强的特征提取、优化的训练流程等,进一步提升了模型的准确性和效率。此外,它还支持多种计算机视觉任务,如实例分割、图像分类等,满足了更广泛的应用需求。
3.灵活部署与广泛应用
YOLO11具有良好的环境适应性,可以在边缘设备、云平台等多种环境中部署。其高效的计算性能和广泛的应用场景,使得YOLO11成为实时目标检测领域的佼佼者,为科研和商业应用提供了有力支持。
总结来说,YOLOv10不仅是一个新的实时端到端目标检测器,而且在各个方面都有所提升。如果您有兴趣了解更多关于YOLOv10的使用方法等,欢迎关注我们,我们将继续为大家带来更多干货内容!