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

YOLOv7改進主干結(jié)構(gòu)系列:結(jié)合豐富的梯度流信息模塊,來自YOLOv8的核心模塊

這篇具有很好參考價值的文章主要介紹了YOLOv7改進主干結(jié)構(gòu)系列:結(jié)合豐富的梯度流信息模塊,來自YOLOv8的核心模塊。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最新創(chuàng)新點改進推薦

-??統(tǒng)一使用 YOLO 代碼框架,結(jié)合不同模塊來構(gòu)建不同的YOLO目標檢測模型。

?? 《芒果書》系列改進專欄內(nèi)的改進文章,均包含多種模型改進方式,均適用于YOLOv3 、YOLOv4 、 YOLOR 、 YOLOXYOLOv5 、 YOLOv7 、 YOLOv8 改進(重點)?。?!

?? 專欄創(chuàng)新點教程 均有不少同學反應(yīng)和我說已經(jīng)在自己的數(shù)據(jù)集上有效漲點啦?。?包括COCO數(shù)據(jù)集也能漲點

所有文章博客均包含 改進源代碼部分,一鍵訓練即可

?? 對應(yīng)專欄訂閱的越早,就可以越早使用原創(chuàng)創(chuàng)新點去改進模型,搶先一步

點擊查看詳情:YOLOv5改進、YOLOv7改進|YOLO改進超過50種注意力機制,全篇共計30萬字(內(nèi)附改進源代碼),原創(chuàng)改進50種Attention注意力機制和Transformer自注意力機制


芒果書 點擊以下鏈接 查看文章目錄詳情??

  • ??????:一、CSDN原創(chuàng)《芒果改進YOLO高階指南》強烈改進漲點推薦!??推薦指數(shù):??????????

  • ??????:二、CSDN原創(chuàng)YOLO進階 | 《芒果改進YOLO進階指南》改進漲點推薦!??推薦指數(shù):??????????

  • ??????:三、CSDN獨家全網(wǎng)首發(fā)專欄 | 《目標檢測YOLO改進指南》改進漲點推薦!推薦指數(shù):??????????


一、理論部分

這個模塊比較簡單,就直接上代碼了.

C2f模塊來自YOLOv8系列,本質(zhì)上改進借鑒了YOLOv7核心模塊的思想,所以這個嚴格來說不算改進。

YOLOv5作者YOLOv8作者 是用一個作者,所以沒必要基于YOLOv5加這個了…作者本身就是基于 YOLOv5 改進得到的 YOLOv8

YOLOv7改進主干結(jié)構(gòu)系列:結(jié)合豐富的梯度流信息模塊,來自YOLOv8的核心模塊

就簡單試一下效果吧

這個 C2f 模塊中存在 Split 等操作對特定硬件部署沒有之前那么友好

圖中C2f模塊就是ultralytics改進的模塊

C2f模塊結(jié)合了C3模塊以及ELAN模塊的思想設(shè)計
YOLOv7改進主干結(jié)構(gòu)系列:結(jié)合豐富的梯度流信息模塊,來自YOLOv8的核心模塊
圖源:https://github.com/ultralytics/ultralytics/issues/189

二、將其應(yīng)用到Y(jié)OLOv7中

配置文件

增加以下yolov7_c2f.yaml文件
代碼演示

# YOLOv5 ?? by YOLOAir, GPL-3.0 license
# parameters
nc: 80  # number of classes
depth_multiple: 1.0  # model depth multiple
width_multiple: 1.0  # layer channel iscyy multiple

# anchors
anchors:
  - [12,16, 19,36, 40,28]  # P3/8
  - [36,75, 76,55, 72,146]  # P4/16
  - [142,110, 192,243, 459,401]  # P5/32

# yolov7 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [32, 3, 1]],  # 0
   [-1, 1, Conv, [64, 3, 2]],  # 1-P1/2
   [-1, 1, Conv, [64, 3, 1]],
   [-1, 1, Conv, [128, 3, 2]],  # 3-P2/4 
   [-1, 1, C2f, [128]], 
   [-1, 1, Conv, [256, 3, 2]], 
   [-1, 1, MP, []],
   [-1, 1, Conv, [128, 1, 1]],
   [-3, 1, Conv, [128, 1, 1]],
   [-1, 1, Conv, [128, 3, 2]],
   [[-1, -3], 1, Concat, [1]],  # 16-P3/8
   [-1, 1, Conv, [128, 1, 1]],

   [-2, 1, Conv, [128, 1, 1]],
   [-1, 1, Conv, [128, 3, 1]],
   [-1, 1, Conv, [128, 3, 1]],
   [-1, 1, Conv, [128, 3, 1]],
   [-1, 1, Conv, [128, 3, 1]],

   [[-1, -3, -5, -6], 1, Concat, [1]],
   [-1, 1, Conv, [512, 1, 1]],
   
   [-1, 1, MP, []],
   [-1, 1, Conv, [256, 1, 1]],
   [-3, 1, Conv, [256, 1, 1]],
   [-1, 1, Conv, [256, 3, 2]],
   [[-1, -3], 1, Concat, [1]],
   [-1, 1, Conv, [256, 1, 1]],

   [-2, 1, Conv, [256, 1, 1]],
   [-1, 1, Conv, [256, 3, 1]],
   [-1, 1, Conv, [256, 3, 1]],

   [-1, 1, Conv, [256, 3, 1]],
   [-1, 1, Conv, [256, 3, 1]],

   [[-1, -3, -5, -6], 1, Concat, [1]],
   [-1, 1, Conv, [1024, 1, 1]],          
   [-1, 1, MP, []],
   [-1, 1, Conv, [512, 1, 1]],
   [-3, 1, Conv, [512, 1, 1]],
   [-1, 1, Conv, [512, 3, 2]],
   [[-1, -3], 1, Concat, [1]],
   [-1, 1, C2f, [1024]],
   [-1, 1, Conv, [256, 3, 1]],
  ]

# yolov7 head
head:
  [[-1, 1, SPPCSPC, [512]],

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [31, 1, Conv, [256, 1, 1]],
   [[-1, -2], 1, Concat, [1]],
   [-1, 1, C2f, [128]],

   [-1, 1, Conv, [128, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [18, 1, Conv, [128, 1, 1]],
   [[-1, -2], 1, Concat, [1]],

   [-1, 1, C2f, [128]],

   [-1, 1, MP, []],
   [-1, 1, Conv, [128, 1, 1]],
   [-3, 1, Conv, [128, 1, 1]],
   [-1, 1, Conv, [128, 3, 2]],
   [[-1, -3, 44], 1, Concat, [1]],
   [-1, 1, C2f, [256]], 
   [-1, 1, MP, []],
   [-1, 1, Conv, [256, 1, 1]],
   [-3, 1, Conv, [256, 1, 1]],
   [-1, 1, Conv, [256, 3, 2]], 
   [[-1, -3, 39], 1, Concat, [1]],

   [-1, 3, C2f, [512]],

# 檢測頭 -----------------------------
   [49, 1, RepConv, [256, 3, 1]],
   [55, 1, RepConv, [512, 3, 1]],
   [61, 1, RepConv, [1024, 3, 1]],

   [[62,63,64], 1, IDetect, [nc, anchors]],   # Detect(P3, P4, P5)
  ]

核心代碼

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

class Bottlenecks(nn.Module):
    # Standard bottleneck
    def __init__(self, c1, c2, shortcut=True, g=1, k=(3, 3), e=0.5):  # ch_in, ch_out, shortcut, groups, kernels, expand
        super().__init__()
        c_ = int(c2 * e)  # hidden channels
        self.cv1 = Conv(c1, c_, k[0], 1)
        self.cv2 = Conv(c_, c2, k[1], 1, g=g)
        self.add = shortcut and c1 == c2

    def forward(self, x):
        return x + self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))

class C2f(nn.Module):
    # CSP Bottleneck with 2 convolutions
    def __init__(self, c1, c2, n=1, shortcut=False, g=1, e=0.5):  # ch_in, ch_out, number, shortcut, groups, expansion
        super().__init__()
        self.c = int(c2 * e)  # hidden channels
        self.cv1 = Conv(c1, 2 * self.c, 1, 1)
        self.cv2 = Conv((2 + n) * self.c, c2, 1)  # optional act=FReLU(c2)
        self.m = nn.ModuleList(Bottlenecks(self.c, self.c, shortcut, g, k=((3, 3), (3, 3)), e=1.0) for _ in range(n))

    def forward(self, x):
        y = list(self.cv1(x).split((self.c, self.c), 1))
        y.extend(m(y[-1]) for m in self.m)
        return self.cv2(torch.cat(y, 1))

其他配置

找到./models/yolo.py文件下里的parse_model函數(shù),將類名加入進去

for i, (f, n, m, args) in enumerate(d[‘backbone’] + d[‘head’]):`內(nèi)部
對應(yīng)位置 下方只需要增加 代碼

參考代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-445104.html

        elif m in [C2f]:
            c1, c2 = ch[f], args[0]
            if c2 != no:  # if not output
                c2 = make_divisible(c2 * gw, 8)
            args = [c1, c2]
            if m in [C2f]:
                args.insert(2, n)  # number of repeats
                n = 1

運行配置

python train.py --cfg yolov7_c2f.yaml

到了這里,關(guān)于YOLOv7改進主干結(jié)構(gòu)系列:結(jié)合豐富的梯度流信息模塊,來自YOLOv8的核心模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包