💡💡💡本文原创自研创新改进:
优点:为了利用不同的池化核尺寸提取特征的方式可以获得更多的特征信息,提高网络的识别精度。
如何优化:在此基础上加入注意力机制,能够在不同尺度上更好的、更多的获取特征信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响
强烈推荐,适合直接使用,paper创新级别
💡💡💡Mask mAP50 从原始的0.926 提升至0.929
改进结构图如下:
《YOLOv11魔术师专栏》将从以下各个方向进行创新:
【原创自研模块】【多组合点优化】【注意力机制】【卷积魔改】【block&多尺度融合结合】【损失&IOU优化】【上下采样优化 】【小目标性能提升】【前沿论文分享】【训练实战篇】
【pose关键点检测】【yolo11-seg分割】
💡💡💡适用场景:红外、小目标检测、工业缺陷检测、医学影像、遥感目标检测、低对比度场景
💡💡💡适用任务:所有改进点适用【检测】、【分割】、【pose】、【分类】等
💡💡💡全网独家首发创新,【自研多个自研模块】,【多创新点组合适合paper 】!!!
Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。
Segmentation 官方在COCO数据集上做了更多测试:
包裹分割数据集是一个精选的图片集合,专门为计算机视觉领域中与包裹分割相关的任务量身定制。这个数据集旨在帮助研究人员、开发者和爱好者们进行与包裹识别、分类和处理相关的项目。
该数据集包含了一系列展示不同背景和环境下各种包裹的多样化图片,是训练和评估分割模型的宝贵资源。无论您从事的是物流、仓库自动化还是任何需要精确包裹分析的应用,包裹分割数据集都提供了一个针对性强且全面的图片集,以提高您的计算机视觉算法的性能。
数据集结构
包装分割数据集的数据分布结构如下:
应用
由包装分割数据集(Package Segmentation Dataset)推动的包装分割对于优化物流、加强最后一英里配送、改进制造质量控制以及促进智能城市解决方案至关重要。从电子商务到安全应用,该数据集是一项关键资源,促进了计算机视觉领域的创新,实现了多样化和高效的包装分析应用。
标签可视化:
YOLO11-seg summary (fused): 265 layers, 2,834,763 parameters, 0 gradients, 10.2 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95) Mask(P R mAP50 mAP50-95): 100%|██████████| 6/6 [00:10<00:00, 1.79s/it]
all 188 693 0.875 0.921 0.925 0.839 0.9 0.902 0.926 0.809
Mask mAP50 为0.926
MaskPR_curve.png
预测结果如下:
YOLOv5最初采用SPP结构在v6.0版本(repo)后开始使用SPPF,主要目的是融合更大尺度(全局)信息,对每个特征图,使用三种不同尺寸(5×5、9×9、13×13)的池化核进行最大池化,分别得到预设的特征图尺寸,最后将所有特征图展开为特征向量并融合,过程如下图所示。 YOLOV8使用SPPF
SPPF顾名思义,就是为了保证准确率相似的条件下,减少计算量,以提高速度,使用3个5×5的最大池化,代替原来v5之前的5×5、9×9、13×13最大池化。使用SPPF的目的是为了利用不同的池化核尺寸提取特征的方式可以获得更多的特征信息,提高网络的识别精度。
左边是SPP,右边是SPPF。
SPPF源代码
class SPPF(nn.Module):
"""Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher."""
def __init__(self, c1, c2, k=5): # equivalent to SPP(k=(5, 9, 13))
super().__init__()
c_ = c1 // 2 # hidden channels
self.cv1 = Conv(c1, c_, 1, 1)
self.cv2 = Conv(c_ * 4, c2, 1, 1)
self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)
def forward(self, x):
"""Forward pass through Ghost Convolution block."""
x = self.cv1(x)
y1 = self.m(x)
y2 = self.m(y1)
return self.cv2(torch.cat((x, y1, y2, self.m(y2)), 1))
优点:为了利用不同的池化核尺寸提取特征的方式可以获得更多的特征信息,提高网络的识别精度。
如何优化:在此基础上加入注意力机制,能够在不同尺度上更好的、更多的获取特征信息,从而提高网络的识别精度。
原始结构 加入注意力机制
结合YOLO11结构图:
Mask mAP50 从原始的0.926 提升至0.929
YOLO11-seg-SPPF_attention summary (fused): 274 layers, 3,361,101 parameters, 0 gradients, 10.6 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95) Mask(P R mAP50 mAP50-95): 100%|██████████| 6/6 [00:29<00:00, 4.92s/it]
all 188 693 0.864 0.917 0.924 0.839 0.871 0.925 0.929 0.814
4) 原创自研 | 一种新颖的跨通道交互的高效率通道注意力EMCA
5) SPPF原创自研 | SPPF_attention,能够在不同尺度上更好的、更多的关注注意力特征信息
7)全局到局部可控感受野模块GL-CRM ,量身为为多尺度变化而设计
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。