前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >基于YOLOv10的工业油污缺陷检测算法,具有切片操作的SimAM注意力,魔改SimAM助力缺陷检测(二)

基于YOLOv10的工业油污缺陷检测算法,具有切片操作的SimAM注意力,魔改SimAM助力缺陷检测(二)

原创
作者头像
AI小怪兽
发布2025-01-14 12:49:14
发布2025-01-14 12:49:14
15000
代码可运行
举报
文章被收录于专栏:毕业设计YOLO大作战
运行总次数:0
代码可运行

💡💡💡本文内容:针对基基于YOLOv10的工业油污缺陷检测算法进行性能提升,加入各个创新点做验证性试验。

💡💡💡 具有切片操作的SimAM注意力,魔改SimAM

💡💡💡 原始mAP50为 0.584提升至0.614

博主简介

AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8、v9、v10、11优化创新,涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富;

1.YOLOv10介绍

论文: https://arxiv.org/pdf/2405.14458

代码: GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection

摘要:在过去的几年里,由于其在计算成本和检测性能之间的有效平衡,YOLOS已经成为实时目标检测领域的主导范例。研究人员已经探索了YOLOS的架构设计、优化目标、数据增强策略等,并取得了显著进展。然而,对用于后处理的非最大抑制(NMS)的依赖妨碍了YOLOS的端到端部署,并且影响了推理延迟。此外,YOLOS中各部件的设计缺乏全面和彻底的检查,导致明显的计算冗余,限制了模型的性能。这导致次优的效率,以及相当大的性能改进潜力。在这项工作中,我们的目标是从后处理和模型架构两个方面进一步推进YOLOS的性能-效率边界。为此,我们首先提出了用于YOLOs无NMS训练的持续双重分配,该方法带来了有竞争力的性能和低推理延迟。此外,我们还介绍了YOLOS的整体效率-精度驱动模型设计策略。我们从效率和精度两个角度对YOLOS的各个组件进行了全面优化,大大降低了计算开销,增强了性能。我们努力的成果是用于实时端到端对象检测的新一代YOLO系列,称为YOLOV10。广泛的实验表明,YOLOV10在各种模型规模上实现了最先进的性能和效率。例如,在COCO上的类似AP下,我们的YOLOV10-S比RT-DETR-R18快1.8倍,同时具有2.8倍更少的参数和FLOPS。与YOLOV9-C相比,YOLOV10-B在性能相同的情况下,延迟减少了46%,参数减少了25%。

1.1 C2fUIB介绍

为了解决这个问题,我们提出了一种基于秩的块设计方案,旨在通过紧凑的架构设计降低被证明是冗余的阶段复杂度。我们首先提出了一个紧凑的倒置块(CIB)结构,它采用廉价的深度可分离卷积进行空间混合,以及成本效益高的点对点卷积进行通道混合

C2fUIB只是用CIB结构替换了YOLOv8中 C2f的Bottleneck结构

实现代码ultralytics/nn/modules/block.py

1.2 PSA介绍

具体来说,我们在1×1卷积后将特征均匀地分为两部分。我们只将一部分输入到由多头自注意力模块(MHSA)和前馈网络(FFN)组成的NPSA块中。然后,两部分通过1×1卷积连接并融合。此外,遵循将查询和键的维度分配为值的一半,并用BatchNorm替换LayerNorm以实现快速推理。

实现代码ultralytics/nn/modules/block.py

1.3 SCDown

FOLOs通常利用常规的3×3标准卷积,步长为2,同时实现空间下采样(从H×W到H/2×W/2)和通道变换(从C到2C)。这引入了不可忽视的计算成本O(9HWC^2)和参数数量O(18C^2)。相反,我们提议将空间缩减和通道增加操作解耦,以实现更高效的下采样。具体来说,我们首先利用点对点卷积来调整通道维度,然后利用深度可分离卷积进行空间下采样。这将计算成本降低到O(2HWC^2 + 9HWC),并将参数数量减少到O(2C^2 + 18C)。同时,它最大限度地保留了下采样过程中的信息,从而在减少延迟的同时保持了有竞争力的性能。

实现代码ultralytics/nn/modules/block.py

2.工业油污缺陷检测识别数据集介绍

三星油污缺陷类别:头发丝和小黑点,["TFS","XZW"]

数据集大小:660张

细节图如下:

类别分布情况

3.YOLOv10魔改提升精度

3.1原始结果

原始YOLOv10n结果如下:

原始mAP50为 0.584

代码语言:javascript
代码运行次数:0
复制
YOLOv10n summary (fused): 285 layers, 2695196 parameters, 0 gradients, 8.2 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 3/3 [00:03<00:00,  1.31s/it]
                   all         66        187      0.588      0.489      0.584      0.278
                   TFS         66        130      0.471      0.431      0.499      0.226
                   XZW         66         57      0.706      0.547      0.669       0.33

3.2 具有切片操作的SimAM注意力,魔改SimAM

原文链接:YOLOv10全网首发:注意力独家魔改 | 具有切片操作的SimAM注意力,魔改SimAM助力小目标检测-CSDN博客

💡💡💡本文创新:魔改SimAM注意力,引入切片操作,增强小目标特征提取能力

💡💡💡问题点:SimAM计算整张特征图的像素差平均值时加权可能会忽略小目标的重要性,同时与整体平均值相比可能和背景信息相似,导致加权增强较弱,进而使得SimAM对小目标的增强能力较差。

💡💡💡本文解决对策:引入了切片操作,当特征图被切成不同的块后,大目标由于其纹理特征明显会影响所在块的平均值,导致其获得的额外加权减少,而合并特征图后,大目标依然可以保持高可识别度甚至获得进一步增强;而小目标的特征与局部平均值差距更大,从而获得更多加权,小目标特征得到增强,即sws模块保证了大、小目标都获得了公正的关注和增强。

💡💡💡如何创新到YOLOv10

1)直接作为注意力使用,效果秒杀SimAM;

2)高效和卷积结合,代替原始网络的卷积操作;

改进结果如下:

原始mAP50为 0.584提升至0.614

代码语言:javascript
代码运行次数:0
复制
YOLOv10n-Conv_SWS summary (fused): 301 layers, 2695372 parameters, 0 gradients, 8.3 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 3/3 [00:04<00:00,  1.53s/it]
                   all         66        187      0.706      0.493      0.614      0.284
                   TFS         66        130      0.586      0.408      0.495      0.223
                   XZW         66         57      0.825      0.579      0.733      0.345

4.系列篇

1) BRA注意力替换 PSA中的多头自注意力模块MHSA注意力(一)

2) 具有切片操作的SimAM注意力,魔改SimAM助力缺陷检测(二)

3) 一种基于YOLOv10的高精度工业油污缺陷检测算法(原创自研)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.YOLOv10介绍
  • 1.1 C2fUIB介绍
  • 1.2 PSA介绍
  • 1.3 SCDown
  • 2.工业油污缺陷检测识别数据集介绍
  • 3.YOLOv10魔改提升精度
  • 3.1原始结果
  • 3.2 具有切片操作的SimAM注意力,魔改SimAM
  • 4.系列篇
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档