国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

YOLOv5、YOLOv8改進:S2注意力機制

這篇具有很好參考價值的文章主要介紹了YOLOv5、YOLOv8改進:S2注意力機制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.簡介

2.YOLOv5改進

2.1增加以下S2-MLPv2.yaml文件

2.2common.py配置

2.3yolo.py配置


1.簡介

?S2-MLPv2注意力機制

YOLOv5、YOLOv8改進:S2注意力機制,YOLO改進,YOLO,人工智能,深度學習,計算機視覺,pytorch

?

最近,出現(xiàn)了基于 MLP 的視覺主干。與 CNN 和視覺Transformer相比,基于 MLP 的視覺架構具有較少的歸納偏差,在圖像識別方面實現(xiàn)了有競爭力的性能。其中,spatial-shift MLP (S2-MLP),采用直接的空間位移操作,取得了比包括 MLP-mixer 和 ResMLP 在內(nèi)的開創(chuàng)性工作更好的性能。使用具有金字塔結構的較小補丁,視覺置換器 (ViP) 和Global Filter Network (GFNet) 實現(xiàn)了比 S2-MLP 更好的性能。

在本文中,我們改進了 S2-MLP 視覺主干。我們沿通道維度擴展特征圖,并將擴展后的特征圖分成幾個部分。我們對分割部分進行不同的空間移位操作。

YOLOv5、YOLOv8改進:S2注意力機制,YOLO改進,YOLO,人工智能,深度學習,計算機視覺,pytorch

本文對空間移位MLP (S2-MLP)模型進行了改進,提出了S2-MLPv2模型。將feature map進行擴展,并將擴展后的feature map分為三部分。它將每個部分單獨移動,然后通過split-attention融合分開的特征圖。同時,我們利用層次金字塔來提高其建模細粒度細節(jié)的能力,以獲得更高的識別精度。在沒有外部訓練數(shù)據(jù)集的情況下,采用224×224的images,我們的s2-mlv2-medium模型在ImageNet1K數(shù)據(jù)集上取得了83.6%的top-1準確率,這是目前基于MLP的方法中最先進的性能。同時,與基于transformer的方法相比,我們的S2-MLPv2模型在不需要自我注意的情況下,參數(shù)更少,達到了相當?shù)木取?/p>

? ? ? ? 與基于MLP的先驅作品如MLP-Mixer、ResMLP以及最近類似MLP的模型如Vision Permutator和GFNet相比,空間移位MLP的另一個重要優(yōu)勢是,空間移位MLP的形狀對圖像的輸入尺度是不變的。因此,經(jīng)過特定尺度圖像預訓練的空間移位MLP模型可以很好地應用于具有不同尺寸輸入圖像的下游任務。未來的工作將致力于不斷提高空間移位MLP體系結構的圖像識別精度。一個有希望且直接的方向是嘗試更小尺寸的patch和更高級的四層金字塔,如CycleMLP和AS-MLP,以進一步減少FLOPs和縮短基于transformer模型之間的識別差距。
?

?S2注意力機制(S2 Attention Mechanism)是一種用于序列建模和注意力機制改進的方法,特別在自然語言處理(NLP)領域中得到廣泛應用。它是對傳統(tǒng)的自注意力機制(self-attention)進行改進,旨在提高序列中不同位置之間的關聯(lián)性建模能力。

  1. 自注意力機制回顧: 自注意力機制是一種用于處理序列數(shù)據(jù)的方法,最早在Transformer模型中提出并廣泛用于NLP任務中。在自注意力機制中,序列中的每個位置都可以與其他所有位置進行交互,以便捕獲位置之間的關系。然而,這種全局的交互可能會導致計算復雜度的增加,并且可能過于強調(diào)距離較近的位置。

  2. S2注意力機制的改進: S2注意力機制引入了一種分段結構,將序列分為不同的段(segments)。每個段內(nèi)的位置之間可以進行交互,但不同段之間的交互被限制。這種分段結構在捕獲長距離依賴關系時更加高效,因為不同段之間的關聯(lián)性通常較弱。

  3. 注意力計算: 在S2注意力中,注意力權重的計算仍然涉及對查詢(query)、鍵(key)和值(value)的操作。不同之處在于,每個段的注意力計算是獨立的,而不同段之間的注意力權重設為固定值(通常為0)。

  4. 優(yōu)勢與應用: S2注意力機制的主要優(yōu)勢是在捕獲序列中的長距離依賴關系時表現(xiàn)更加高效。這在處理長文本或長序列時特別有用,可以減少計算成本,同時提高建模性能。S2注意力機制在機器翻譯、文本生成、命名實體識別等NLP任務中都有應用,以更好地處理長文本的關系建模。

2.YOLOv5改進

2.1增加以下S2-MLPv2.yaml文件

# parameters
# 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, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [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, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
   [-1, 1, S2Attention, [1024]], #修改

   [[17, 20, 24], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

2.2common.py配置

./models/common.py文件增加以下模塊

import numpy as np
import torch
from torch import nn
from torch.nn import init

# https://arxiv.org/abs/2108.01072
def spatial_shift1(x):
    b,w,h,c = x.size()
    x[:,1:,:,:c//4] = x[:,:w-1,:,:c//4]
    x[:,:w-1,:,c//4:c//2] = x[:,1:,:,c//4:c//2]
    x[:,:,1:,c//2:c*3//4] = x[:,:,:h-1,c//2:c*3//4]
    x[:,:,:h-1,3*c//4:] = x[:,:,1:,3*c//4:]
    return x


def spatial_shift2(x):
    b,w,h,c = x.size()
    x[:,:,1:,:c//4] = x[:,:,:h-1,:c//4]
    x[:,:,:h-1,c//4:c//2] = x[:,:,1:,c//4:c//2]
    x[:,1:,:,c//2:c*3//4] = x[:,:w-1,:,c//2:c*3//4]
    x[:,:w-1,:,3*c//4:] = x[:,1:,:,3*c//4:]
    return x


class SplitAttention(nn.Module):
    def __init__(self,channel=512,k=3):
        super().__init__()
        self.channel=channel
        self.k=k
        self.mlp1=nn.Linear(channel,channel,bias=False)
        self.gelu=nn.GELU()
        self.mlp2=nn.Linear(channel,channel*k,bias=False)
        self.softmax=nn.Softmax(1)
    
    def forward(self,x_all):
        b,k,h,w,c=x_all.shape
        x_all=x_all.reshape(b,k,-1,c) 
        a=torch.sum(torch.sum(x_all,1),1) 
        hat_a=self.mlp2(self.gelu(self.mlp1(a))) 
        hat_a=hat_a.reshape(b,self.k,c) 
        bar_a=self.softmax(hat_a) 
        attention=bar_a.unsqueeze(-2) 
        out=attention*x_all 
        out=torch.sum(out,1).reshape(b,h,w,c)
        return out


class S2Attention(nn.Module):

    def __init__(self, channels=512 ):
        super().__init__()
        self.mlp1 = nn.Linear(channels,channels*3)
        self.mlp2 = nn.Linear(channels,channels)
        self.split_attention = SplitAttention()

    def forward(self, x):
        b,c,w,h = x.size()
        x=x.permute(0,2,3,1)
        x = self.mlp1(x)
        x1 = spatial_shift1(x[:,:,:,:c])
        x2 = spatial_shift2(x[:,:,:,c:c*2])
        x3 = x[:,:,:,c*2:]
        x_all=torch.stack([x1,x2,x3],1)
        a = self.split_attention(x_all)
        x = self.mlp2(a)
        x=x.permute(0,3,1,2)
        return x
  
  

2.3yolo.py配置

在 models/yolo.py文件夾下

定位到parse_model函數(shù)中,新增以下代碼

elif m is S2Attention:
    c1, c2 = ch[f], args[0]
    if c2 != no:
        c2 = make_divisible(c2 * gw, 8)

以上就修改完成了

又遇到的問題歡迎評論區(qū)留言討論文章來源地址http://www.zghlxwxcb.cn/news/detail-656875.html

到了這里,關于YOLOv5、YOLOv8改進:S2注意力機制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 改進YOLOv8/YOLOv5系列:助力漲點,魔改注意力,動態(tài)通道注意力模塊DyCAConv,帶改進描述

    在深度學習領域,尤其是計算機視覺任務中,神經(jīng)網(wǎng)絡需要捕捉圖像中的多尺度特征以實現(xiàn)有效的特征表征。為了實現(xiàn)這一目標,研究人員不斷開發(fā)新的模塊和結構來改進神經(jīng)網(wǎng)絡的性能。通道注意力模塊是一種有效的方法,旨在為每個通道分配權重,使網(wǎng)絡關注更重要的通

    2023年04月25日
    瀏覽(31)
  • YOLOv8改進算法之添加CA注意力機制

    YOLOv8改進算法之添加CA注意力機制

    CA(Coordinate Attention)注意力機制是一種用于加強深度學習模型對輸入數(shù)據(jù)的空間結構理解的注意力機制。CA 注意力機制的核心思想是引入坐標信息,以便模型可以更好地理解不同位置之間的關系。如下圖: 1. 輸入特征 : CA 注意力機制的輸入通常是一個特征圖,它通常是卷積

    2024年02月08日
    瀏覽(27)
  • 改進YOLOv5:添加EMA注意力機制

    改進YOLOv5:添加EMA注意力機制

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 本文主要介紹一種在YOLOv5-7.0中添加EMA注意力機制的方法。EMA注意力機制原論文地址,有關EMA注意力機制的解讀可參考文章。 在yolov5的models文件中新建一個名為EMA.py文件,將下述代碼復制到EMA.py文件中并

    2024年02月09日
    瀏覽(31)
  • 改進YOLOv8:添加CBAM注意力機制(漲點明顯)

    改進YOLOv8:添加CBAM注意力機制(漲點明顯)

    計算機視覺中的注意力機制是一種聚焦于局部信息的機制,其基本思想是讓系統(tǒng)學會忽略無關信息而關注重點信息。這種機制在圖像識別、物體檢測和人臉識別等任務中都發(fā)揮了重要作用。 注意力機制的實現(xiàn)方法有多種,其中包括 空間注意力 模型、 通道注意力 模型、 空間

    2024年01月15日
    瀏覽(26)
  • YOLOv5、v8改進:CrissCrossAttention注意力機制

    YOLOv5、v8改進:CrissCrossAttention注意力機制

    目錄 1.簡介 2. yolov5添加方法: 2.1common.py構建CrissCrossAttention模塊 2.2yolo.py中注冊?CrissCrossAttention模塊 2.3修改yaml文件。 這是ICCV2019的用于語義分割的論文,可以說和CVPR2019的DANet遙相呼應。 和DANet一樣,CCNet也是想建模像素之間的long range dependencies,來做更加豐富的contextual info

    2024年02月11日
    瀏覽(32)
  • 改進YOLO系列:改進YOLOv8,教你YOLOv8如何添加20多種注意力機制,并實驗不同位置。

    改進YOLO系列:改進YOLOv8,教你YOLOv8如何添加20多種注意力機制,并實驗不同位置。

    注意力機制(Attention Mechanism)是深度學習中一種重要的技術,它可以幫助模型更好地關注輸入數(shù)據(jù)中的關鍵信息,從而提高模型的性能。注意力機制最早在自然語言處理領域的序列到序列(seq2seq)模型中得到廣泛應用,后來逐漸擴展到了計算機視覺、語音識別等多個領域。

    2024年02月16日
    瀏覽(32)
  • YOLOv5改進系列(1)——添加SE注意力機制

    YOLOv5改進系列(1)——添加SE注意力機制

    從這篇開始我們進入YOLOv5改進系列。那就先從最簡單的添加注意力機制開始吧?。ǎ幔┄J 【YOLOv5改進系列】前期回顧: YOLOv5改進系列(0)——重要性能指標與訓練結果評價及分析 目錄

    2024年02月03日
    瀏覽(36)
  • YOLOv5、v8改進:引入SKAttention注意力機制

    YOLOv5、v8改進:引入SKAttention注意力機制

    目錄 1.簡介 2.YOLOv5改進 2.1增加以下SKAttention.yaml文件 2.2common.py配置 2.3yolo.py配置 論文鏈接:https://arxiv.org/pdf/1903.06586.pdf 最近對卷積神經(jīng)網(wǎng)絡中的“自適應調(diào)整感受野”這樣的操作很感興趣,從字面的意思可以理解:如果可以自適應的調(diào)整感受野的大小,其背后說得應該就是自

    2024年02月12日
    瀏覽(24)
  • YOLOv5改進算法之添加CA注意力機制模塊

    YOLOv5改進算法之添加CA注意力機制模塊

    目錄 ? 1.CA注意力機制 2.YOLOv5添加注意力機制 送書活動 ? CA(Coordinate Attention)注意力機制是一種用于加強深度學習模型對輸入數(shù)據(jù)的空間結構理解的注意力機制。CA 注意力機制的核心思想是引入坐標信息,以便模型可以更好地理解不同位置之間的關系。如下圖: 1. 輸入特征

    2024年02月09日
    瀏覽(30)
  • (超詳細)7-YOLOV5改進-添加 CoTAttention注意力機制

    (超詳細)7-YOLOV5改進-添加 CoTAttention注意力機制

    1、在yolov5/models下面新建一個CoTAttention.py文件,在里面放入下面的代碼 代碼如下: 2、找到y(tǒng)olo.py文件,進行更改內(nèi)容 在29行加一個 from models.CoTAttention import CoTAttention , 保存即可 3、找到自己想要更改的yaml文件,我選擇的yolov5s.yaml文件(你可以根據(jù)自己需求進行選擇),將剛剛寫

    2024年01月21日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包