当前位置: 首页 > news >正文

dw网站模板下载新冠疫苗最新官方消息

dw网站模板下载,新冠疫苗最新官方消息,甘肃省建设银行校园招聘网站,重庆建筑工程安全施工管理安全网【YOLOv5改进系列】前期回顾#xff1a; YOLOv5改进系列#xff08;0#xff09;——重要性能指标与训练结果评价及分析 YOLOv5改进系列#xff08;1#xff09;——添加SE注意力机制 YOLOv5改进系列#xff08;2#xff09;——添加CBAM注意力机制 YOLOv5改进系列 YOLOv5改进系列0——重要性能指标与训练结果评价及分析 YOLOv5改进系列1——添加SE注意力机制 YOLOv5改进系列2——添加CBAM注意力机制 YOLOv5改进系列3——添加CA注意力机制 YOLOv5改进系列4——添加ECA注意力机制 YOLOv5改进系列5——替换主干网络之 MobileNetV3 YOLOv5改进系列6——替换主干网络之 ShuffleNetV2 YOLOv5改进系列7——添加SimAM注意力机制 YOLOv5改进系列8——添加SOCA注意力机制 YOLOv5改进系列9——替换主干网络之EfficientNetv2 ​​​​​​YOLOv5改进系列10——替换主干网络之GhostNet YOLOv5改进系列11——添加损失函数之EIoU、AlphaIoU、SIoU、WIoU YOLOv5改进系列12——更换Neck之BiFPN YOLOv5改进系列13——更换激活函数之SiLUReLUELUHardswishMishSoftplusAconC系列等 YOLOv5改进系列14——更换NMS非极大抑制之 DIoU-NMS、CIoU-NMS、EIoU-NMS、GIoU-NMS 、SIoU-NMS、Soft-NMS YOLOv5改进系列15——增加小目标检测层 YOLOv5改进系列16——添加EMA注意力机制ICASSP2023|实测涨点 YOLOv5改进系列17——更换IoU之MPDIoUELSEVIER 2023|超越WIoU、EIoU等|实测涨点 YOLOv5改进系列18——更换Neck之AFPN全新渐进特征金字塔|超越PAFPN|实测涨点 YOLOv5改进系列19——替换主干网络之Swin TransformerV1参数量更小的ViT模型 YOLOv5改进系列20——添加BiFormer注意力机制CVPR2023|小目标涨点神器 YOLOv5改进系列21——替换主干网络之RepViT清华 ICCV 2023|最新开源移动端ViT YOLOv5改进系列22——替换主干网络之MobileViTv1一种轻量级的、通用的移动设备 ViT YOLOv5改进系列23——替换主干网络之MobileViTv2移动视觉 Transformer 的高效可分离自注意力机制 YOLOv5改进系列24——替换主干网络之MobileViTv3移动端轻量化网络的进一步升级 YOLOv5改进系列25——添加LSKNet注意力机制大选择性卷积核的领域首次探索 目录 一、RFAConv介绍  1.1 RFAConv简介  1.2 RFAConv网络结构  1RFAConv 2RFCAConv 3RFCBAMConv 二、RFAConv核心代码讲解 ① class Bottleneck1 ② class RFAConv ③ Bottleneck_RFAConv  三、具体添加方法  3.1 添加顺序  3.2 具体添加步骤   第①步在common.py中添加RFAConv模块   第②步在yolo.py文件里的parse_model函数加入类名 第③步创建自定义的yaml文件    第④步验证是否加入成功 本人YOLOv5系列导航 一、RFAConv介绍  论文题目《RFAConv: Innovating Spatial Attention and Standard Convolutional Operation》论文地址https://arxiv.org/pdf/2304.03198.pdf代码实现GitHub - Liuchen1997/RFAConv: RAFConv: Innovating Spatital Attention and Standard Convolutional Operation 1.1 RFAConv简介  空间注意力机制的局限性 空间注意力机制就是寻找网络中最重要的部位进行处理。旨在提升关键区域的特征表达本质上是将原始图片中的空间信息通过空间转换模块变换到另一个空间中并保留关键信息为每个位置生成权重掩膜mask并加权输出从而增强感兴趣的特定目标区域同时弱化不相关的背景区域。 空间注意力机制从本质上解决了卷积核参数共享问题。然而空间注意力生成的注意图所包含的信息对于大尺寸卷积核是不够的。 RFAConv的贡献 针对以上不足作者提出了一种新的注意机制——感受野注意力(Receptive-Field Attention, RFA)。现有的空间注意力如卷积块注意力模块CBAM和协调注意力CA都存在着只关注空间特征并没有完全解决卷积核参数共享的问题。 相反RFA不仅关注感受野空间特征而且为大尺寸卷积核提供了有效的注意力权重。 由RFA开发的感受野注意卷积运算RFAConv代表了一种取代标准卷积运算的新方法。它可以显著提高网络性能但是几乎可以忽略不计的计算成本和参数增量。RFAConv的核心思想是将空间注意力机制与卷积操作相结合与感受野特征信息交互以学习注意力图从而提高卷积神经网络CNN的性能。 1.2 RFAConv网络结构  1RFAConv 具有3×3大小卷积核的RFAConv的总体结构如下图所示 我们先看上半部分  首先通过使用AvgPool池化每个感受野特征的全局信息。然后通过1×1的组卷积运算与信息交互。最后softmax用于强调感受野特征中每个特征的重要性。 目的为了减少额外的的计算开销和参数数量。 计算公式 g表示分组卷积k表示卷积核的大小Norm代表规范化X表示输入特征图F是通过将注意力图与变换的感受野空间特征相乘而获得的。  下半部分 通过快速分组卷积提取感受野特征替换了原来比较慢的提取感受野特征的方法。 2RFCAConv 与RFA类似使用stride为k的k×k的最终卷积运算来提取特征信息。 3RFCBAMConv 为了比原始的CBAM减少计算开销可以使用SE注意力来代替RFCBAM中的CAM。 二、RFAConv核心代码讲解 源码太长读不下去找了核心代码读一读吧~ from einops import rearrangeclass Bottleneck1(nn.Module):Standard bottleneck.# __init__ 方法初始化函数def __init__(self, c1, c2, shortcutTrue, g1, k(3, 3), e0.5):Initializes a bottleneck module with given input/output channels, shortcut option, group, kernels, andexpansion.super().__init__()# 计算隐藏通道数c_ int(c2 * e) # hidden channels# 两个卷积层分别是输入通道数到隐藏通道数和隐藏通道数到输出通道数的卷积。self.cv1 Conv(c1, c_, k[0], 1)self.cv2 Conv(c_, c2, k[1], 1, gg)# 判断是否使用快捷连接条件是启用快捷连接并且输入通道数等于输出通道数。self.add shortcut and c1 c2def forward(self, x):forward() applies the YOLO FPN to input data.return x self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))class RFAConv(nn.Module):def __init__(self, in_channel, out_channel, kernel_size, stride1):super().__init__()# 存储卷积核的尺寸self.kernel_size kernel_size# 生成权重self.get_weight nn.Sequential(nn.AvgPool2d(kernel_sizekernel_size, paddingkernel_size // 2, stridestride),nn.Conv2d(in_channel, in_channel * (kernel_size ** 2), kernel_size1,groupsin_channel, biasFalse))# 生成特征self.generate_feature nn.Sequential(nn.Conv2d(in_channel, in_channel * (kernel_size ** 2), kernel_sizekernel_size, paddingkernel_size // 2,stridestride, groupsin_channel, biasFalse),nn.BatchNorm2d(in_channel * (kernel_size ** 2)),nn.ReLU())self.conv Conv(in_channel, out_channel, kkernel_size, skernel_size, p0)def forward(self, x):b, c x.shape[0:2]weight self.get_weight(x)h, w weight.shape[2:]weighted weight.view(b, c, self.kernel_size ** 2, h, w).softmax(2) # b c*kernel**2,h,w - b c k**2 h wfeature self.generate_feature(x).view(b, c, self.kernel_size ** 2, h,w) # b c*kernel**2,h,w - b c k**2 h wweighted_data feature * weightedconv_data rearrange(weighted_data, b c (n1 n2) h w - b c (h n1) (w n2), n1self.kernel_size,# b c k**2 h w - b c h*k w*kn2self.kernel_size)return self.conv(conv_data)# Bottleneck1的子类 class Bottleneck_RFAConv(Bottleneck1):Standard bottleneck with RFAConv.def __init__(self, c1, c2, shortcutTrue, g1, k(3, 3), e0.5): # ch_in, ch_out, shortcut, groups, kernels, expandsuper().__init__(c1, c2, shortcut, g, k, e)c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, k[0], 1)self.cv2 RFAConv(c_, c2, k[1])# C3的子类 class C3_RFAConv(C3):def __init__(self, c1, c2, n1, shortcutFalse, g1, e0.5):super().__init__(c1, c2, n, shortcut, g, e)c_ int(c2 * e) # hidden channelsself.m nn.Sequential(*(Bottleneck_RFAConv(c_, c_, shortcut, g, k(1, 3), e1.0) for _ in range(n))) ① class Bottleneck1 这是一个标准的残差块在以前代码讲解中我们讲过很多次。 首先通过__init__ 方法初始化函数然后计算隐藏通道数 c_即第一个卷积层的输出通道数。 再定义两个卷积层 cv1 和 cv2分别将输入通道数映射到隐藏通道数接着从隐藏通道数映射到输出通道数。 最后通过self.add判断是否使用shortcut。 ② class RFAConv 这个类就是实现了具有区域注意力机制的卷积操作通过生成权重并将其应用到输入特征上以获得加权的特征表示。最终通过卷积操作将这些加权的特征映射到输出通道数。 其中self.get_weight包含两个子模块的顺序模块用于生成权重。 第一个子模块是一个平均池化层用于降低空间分辨率。第二个子模块是一个 1x1 的卷积层用于生成权重并通过设置 groupsin_channel 实现通道间的独立 ③ Bottleneck_RFAConv  这个类是①的子类参数也和①一样就不细讲了~ 目的是在残差块结构中引入区域注意力机制从而提高模型对输入数据的关注度。 ④class C3_RFAConv 它是 C3 类的子类通过引入 Bottleneck_RFAConv 模块实现了区域注意力机制。 目的是在 C3 模块结构中引入区域注意力机制通过使用 Bottleneck_RFAConv 模块替代标准的瓶颈模块。这样可以在模块内引入区域注意力从而在整个 C3 模块内提高模型对输入数据的关注度。  三、具体添加方法  3.1 添加顺序  1models/common.py    --  加入新增的网络结构 2     models/yolo.py       --  设定网络结构的传参细节将RFAConv系列类名加入其中。当新的自定义模块中存在输入输出维度时要使用qw调整输出维度3 models/yolov5*.yaml  --  新建一个文件夹如yolov5s_RFAConv.yaml修改现有模型结构配置文件。当引入新的层时要修改后续的结构中的from参数4         train.py                --  修改‘--cfg’默认参数训练时指定模型结构配置文件 3.2 具体添加步骤   第①步在common.py中添加RFAConv模块   将下面的RFAConv代码复制粘贴到common.py文件的末尾   from einops import rearrangeclass Bottleneck1(nn.Module):Standard bottleneck.def __init__(self, c1, c2, shortcutTrue, g1, k(3, 3), e0.5):Initializes a bottleneck module with given input/output channels, shortcut option, group, kernels, andexpansion.super().__init__()c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, k[0], 1)self.cv2 Conv(c_, c2, k[1], 1, gg)self.add shortcut and c1 c2def forward(self, x):forward() applies the YOLO FPN to input data.return x self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))class RFAConv(nn.Module):def __init__(self, in_channel, out_channel, kernel_size, stride1):super().__init__()self.kernel_size kernel_sizeself.get_weight nn.Sequential(nn.AvgPool2d(kernel_sizekernel_size, paddingkernel_size // 2, stridestride),nn.Conv2d(in_channel, in_channel * (kernel_size ** 2), kernel_size1,groupsin_channel, biasFalse))self.generate_feature nn.Sequential(nn.Conv2d(in_channel, in_channel * (kernel_size ** 2), kernel_sizekernel_size, paddingkernel_size // 2,stridestride, groupsin_channel, biasFalse),nn.BatchNorm2d(in_channel * (kernel_size ** 2)),nn.ReLU())self.conv Conv(in_channel, out_channel, kkernel_size, skernel_size, p0)def forward(self, x):b, c x.shape[0:2]weight self.get_weight(x)h, w weight.shape[2:]weighted weight.view(b, c, self.kernel_size ** 2, h, w).softmax(2) # b c*kernel**2,h,w - b c k**2 h wfeature self.generate_feature(x).view(b, c, self.kernel_size ** 2, h,w) # b c*kernel**2,h,w - b c k**2 h wweighted_data feature * weightedconv_data rearrange(weighted_data, b c (n1 n2) h w - b c (h n1) (w n2), n1self.kernel_size,# b c k**2 h w - b c h*k w*kn2self.kernel_size)return self.conv(conv_data)class Bottleneck_RFAConv(Bottleneck1):Standard bottleneck with RFAConv.def __init__(self, c1, c2, shortcutTrue, g1, k(3, 3), e0.5): # ch_in, ch_out, shortcut, groups, kernels, expandsuper().__init__(c1, c2, shortcut, g, k, e)c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, k[0], 1)self.cv2 RFAConv(c_, c2, k[1])class C3_RFAConv(C3):def __init__(self, c1, c2, n1, shortcutFalse, g1, e0.5):super().__init__(c1, c2, n, shortcut, g, e)c_ int(c2 * e) # hidden channelsself.m nn.Sequential(*(Bottleneck_RFAConv(c_, c_, shortcut, g, k(1, 3), e1.0) for _ in range(n))) 第②步在yolo.py文件里的parse_model函数加入类名 首先找到yolo.py里面parse_model函数的这一行 加入 RFAConv、C3_RFAConv 这两个模块 第③步创建自定义的yaml文件    第1种更改Conv模块 # YOLOv5 by Ultralytics, GPL-3.0 license# Parameters nc: 80 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32# YOLOv5 v6.0 backbone backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2[-1, 1, RFAConv, [128, 3, 2]], # 1-P2/4[-1, 3, C3, [128]],[-1, 1, RFAConv, [256, 3, 2]], # 3-P3/8[-1, 6, C3, [256]],[-1, 1, RFAConv, [512, 3, 2]], # 5-P4/16[-1, 9, C3, [512]],[-1, 1, RFAConv, [1024, 3, 2]], # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]], # 9]# YOLOv5 v6.0 head head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, RFAConv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, RFAConv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)] 第2种更改C3模块 # YOLOv5 by Ultralytics, GPL-3.0 license# Parameters nc: 80 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32# YOLOv5 v6.0 backbone backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, C3_RFAConv, [128]],[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 6, C3_RFAConv, [256]],[-1, 1, Conv, [512, 3, 2]], # 5-P4/16[-1, 9, C3_RFAConv, [512]],[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32[-1, 3, C3_RFAConv, [1024]],[-1, 1, SPPF, [1024, 5]], # 9]# YOLOv5 v6.0 head head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3_RFAConv, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3_RFAConv, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3_RFAConv, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3_RFAConv, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)] 第④步验证是否加入成功 运行yolo.py    第1种 第2种  这样就OK啦 代码参考 优化改进YOLOv5算法之感受野注意力卷积运算RFAConv效果秒杀CBAM和CA等-CSDN博客 本人YOLOv5系列导航 ​​   YOLOv5源码详解系列   YOLOv5源码逐行超详细注释与解读1——项目目录结构解析 ​​​​​​YOLOv5源码逐行超详细注释与解读2——推理部分detect.py YOLOv5源码逐行超详细注释与解读3——训练部分train.py YOLOv5源码逐行超详细注释与解读4——验证部分valtest.py YOLOv5源码逐行超详细注释与解读5——配置文件yolov5s.yaml YOLOv5源码逐行超详细注释与解读6——网络结构1yolo.py YOLOv5源码逐行超详细注释与解读7——网络结构2common.py ​​​   YOLOv5入门实践系列   YOLOv5入门实践1——手把手带你环境配置搭建 YOLOv5入门实践2——手把手教你利用labelimg标注数据集 YOLOv5入门实践3——手把手教你划分自己的数据集 YOLOv5入门实践4——手把手教你训练自己的数据集 YOLOv5入门实践5——从零开始手把手教你训练自己的目标检测模型包含pyqt5界面
http://www.zqtcl.cn/news/426478/

相关文章:

  • 江苏建设人才网网站中国最新时事新闻
  • 网站建立时间毕节地seo
  • 央企网站建设意义长沙网约车
  • 广告联盟怎么建设网站做贸易 公司网站放哪里
  • 北京建设局网站首页开发游戏用什么软件
  • 做淘宝客网站能接广告吗网站悬浮二维码
  • 重庆自助建站模板网站建设juxinghulian
  • 优惠券网站怎么搭建宝安中心区规划
  • 网站建设中怎么添加源码会计常用的三个软件
  • vk汉化网站谁做的购物网站设计公司
  • 门户网站建设平台建设招标项目常挂网站有哪些
  • 公司海外网站建设龙海市城乡规划建设局网站
  • 温州哪里做网站设计seo报名在线咨询
  • 四川住房和城乡建设厅进不去网站网站专题方案
  • 企业网站维护服务做网站设计都需要什么软件
  • jsp电商网站开发教程盐城网站建设制作
  • 企业解决方案网站做企业官网多少钱
  • 宁波网站建设哪家比较好怎麽做网站
  • 诸塈市建设局网站做移动网站开发
  • 南京建站公司网站网站视频源码地址
  • 德阳建设局网站做公众号首图的网站
  • 南阳网站优化渠道山西太原最新消息
  • 发布做网站需求qq群centos wordpress 建站教程
  • 东阳网站建设yw126南京网站改版
  • discuz视频网站模板徐州专业网站建设公司哪家好
  • 网站开发投资成本Wordpress显示成缩略图
  • 网站域名和网站网址吗中东跨境电商平台有哪些
  • 常宁市城乡和住房建设网站怎样加强文化建设
  • 视频网站如何做营销策划模板网站 seo
  • 中企动力做网站好吗网页建设软件