0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

YOLOV7網(wǎng)絡(luò)架構(gòu)解讀

jt_rfid5 ? 來(lái)源:CSDN博主江小皮不皮 ? 2023-11-29 10:00 ? 次閱讀

前言

繼美團(tuán)發(fā)布YOLOV6之后,YOLO系列原作者也發(fā)布了YOLOV7。

YOLOV7主要的貢獻(xiàn)在于:

1.模型重參數(shù)

YOLOV7將模型重參數(shù)化引入到網(wǎng)絡(luò)架構(gòu)中,重參數(shù)化這一思想最早出現(xiàn)于REPVGG中。

2.標(biāo)簽分配策略

YOLOV7的標(biāo)簽分配策略采用的是YOLOV5的跨網(wǎng)格搜索,以及YOLOX的匹配策略。

3.ELAN高效網(wǎng)絡(luò)架構(gòu)

YOLOV7中提出的一個(gè)新的網(wǎng)絡(luò)架構(gòu),以高效為主。

4.帶輔助頭的訓(xùn)練

YOLOV7提出了輔助頭的一個(gè)訓(xùn)練方法,主要目的是通過(guò)增加訓(xùn)練成本,提升精度,同時(shí)不影響推理的時(shí)間,因?yàn)檩o助頭只會(huì)出現(xiàn)在訓(xùn)練過(guò)程中。

一、YOLOV7是什么?

YOLO算法作為one-stage目標(biāo)檢測(cè)算法最典型的代表,其基于深度神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)象的識(shí)別和定位,運(yùn)行速度很快,可以用于實(shí)時(shí)系統(tǒng)。

YOLOV7是目前YOLO系列最先進(jìn)的算法,在準(zhǔn)確率和速度上超越了以往的YOLO系列。

了解YOLO是對(duì)目標(biāo)檢測(cè)算法研究的一個(gè)必須步驟。

二、網(wǎng)絡(luò)架構(gòu)

1、架構(gòu)圖總覽

4bca96d6-8dd6-11ee-939d-92fbcf53809c.png

2、CBS模塊解讀

?對(duì)于CBS模塊,我們可以看從圖中可以看出它是由一個(gè)Conv層,也就是卷積層,一個(gè)BN層,也就是Batch normalization層,還有一個(gè)Silu層,這是一個(gè)激活函數(shù)。

?silu激活函數(shù)是swish激活函數(shù)的變體,兩者的公式如下所示

silu(x)=x?sigmoid(x)

swish(x)=x?sigmoid(βx)

4bd07768-8dd6-11ee-939d-92fbcf53809c.png

?從架構(gòu)圖中我們可以看出,CBS模塊這里有三種顏色,三種顏色代表它們的卷積核(k)和步長(zhǎng)(s)不同。

首先最淺的顏色,也就是第一個(gè)CBS模塊的顏色,它是一個(gè)1x1的卷積,stride(步長(zhǎng)為1)。

其次稍淺的顏色,也就是第二個(gè)CBS模塊的顏色,它是一個(gè)3x3的卷積,stride(步長(zhǎng)為1)。

最后最深的顏色,也就是第三個(gè)CBS模塊的顏色,它是一個(gè)3x3的卷積,stride(步長(zhǎng)為2)。

?1x1的卷積主要用來(lái)改變通道數(shù)。

?3x3的卷積,步長(zhǎng)為1,主要用來(lái)特征提取。

?3x3的卷積,步長(zhǎng)為2,主要用來(lái)下采樣。

4c25c18c-8dd6-11ee-939d-92fbcf53809c.png

3、CBM模塊解讀

?CBM模塊和CBS模塊,我們可以看出來(lái)是基本一致的。

?由一個(gè)Conv層,也就是卷積層,一個(gè)BN層,也就是Batch normalization層,還有一個(gè)sigmoid層,這是一個(gè)激活函數(shù)。

?卷積核為1x1,stride(步長(zhǎng)為1)

4c3b1762-8dd6-11ee-939d-92fbcf53809c.png

4、REP模塊解讀

?REP模塊分為兩個(gè),一個(gè)是train,也就是訓(xùn)練,一個(gè)deploy,也就是推理。

?訓(xùn)練模塊,它有三個(gè)分支。

最上面的分支是3x3的卷積,用于特征提取。

中間的分支是1x1的卷積,用于平滑特征。

最后分支是一個(gè)Identity,不做卷積操作,直接移過(guò)來(lái)。

最后把它們相加在一起。

?推理模塊,包含一個(gè)3x3的卷積,stride(步長(zhǎng)為1)。是由訓(xùn)練模塊重參數(shù)化轉(zhuǎn)換而來(lái)。

在訓(xùn)練模塊中,因?yàn)榈谝粚邮且粋€(gè)3x3的卷積,第二層是一個(gè)1x1的卷積,最后層是一個(gè)Identity。

在模型從參數(shù)化的時(shí)候,需要把1x1的卷積啊,轉(zhuǎn)換成3x3的卷積,把Identity也轉(zhuǎn)換成3x3的卷積,然后進(jìn)行一個(gè)矩陣的一個(gè)加法,也就是一個(gè)矩陣融合過(guò)程。

然后最后將它的權(quán)重進(jìn)行相加,就得到了一個(gè)3x3的卷積,也就是說(shuō),這三個(gè)分支就融合成了一條線,里面只有一個(gè)3x3的卷積。

它們的權(quán)重是三個(gè)分支的疊加結(jié)果,矩陣,也是三個(gè)分支的疊加結(jié)果。

4c469128-8dd6-11ee-939d-92fbcf53809c.png

5、MP模塊解讀

?MP模塊有兩個(gè)分支,作用是進(jìn)行下采樣。

?第一條分支先經(jīng)過(guò)一個(gè)maxpool,也就是最大池化。最大值化的作用就是下采樣,然后再經(jīng)過(guò)一個(gè)1x1的卷積進(jìn)行通道數(shù)的改變。

?第二條分支先經(jīng)過(guò)一個(gè)1x1的卷積,做通道數(shù)的變化,然后再經(jīng)過(guò)一個(gè)3x3卷積核、步長(zhǎng)為2的卷積塊,這個(gè)卷積塊也是用來(lái)下采樣的。

?最后把第一個(gè)分支和第二分支的結(jié)果加在一起,得到了超級(jí)下采樣的結(jié)果。

4c53f2fa-8dd6-11ee-939d-92fbcf53809c.png

6、ELAN模塊解讀

?ELAN模塊是一個(gè)高效的網(wǎng)絡(luò)結(jié)構(gòu),它通過(guò)控制最短和最長(zhǎng)的梯度路徑,使網(wǎng)絡(luò)能夠?qū)W習(xí)到更多的特征,并且具有更強(qiáng)的魯棒性。

?ELAN有兩條分支。

?第一條分支是經(jīng)過(guò)一個(gè)1x1的卷積做通道數(shù)的變化。

?第二條分支就比較復(fù)雜了。它先首先經(jīng)過(guò)一個(gè)1x1的卷積模塊,做通道數(shù)的變化。然后再經(jīng)過(guò)四個(gè)3x3的卷積模塊,做特征提取。

?如圖所示,最后把四個(gè)特征疊加在一起得到最后的特征提取結(jié)果。

4c5f3a98-8dd6-11ee-939d-92fbcf53809c.png

7、ELAN-W模塊解讀

?對(duì)于ELAN-W模塊,我們也看到它跟ELAN模塊是非常的相似,所略有不同的就是它在第二條分支的時(shí)候選取的輸出數(shù)量不同。

?ELAN模塊選取了三個(gè)輸出進(jìn)行最后的相加。

?ELAN-W模塊選取了五個(gè)進(jìn)行相加。

8、UPSample模塊解讀

UPSample模塊是一個(gè)上采樣的模塊,它使用的上采樣方式是最近鄰插值。

4c764634-8dd6-11ee-939d-92fbcf53809c.png

9、SPPCSPC模塊解讀

SPP的作用是能夠增大感受野,使得算法適應(yīng)不同的分辨率圖像,它是通過(guò)最大池化來(lái)獲得不同感受野。

?我們可以看到在第一條分支中,經(jīng)理了maxpool的有四條分支。分別是5,9,13,1,這四個(gè)不同的maxpool就代表著他能夠處理不同的對(duì)象。

?也就是說(shuō),它這四個(gè)不同尺度的最大池化有四種感受野,用來(lái)區(qū)別于大目標(biāo)和小目標(biāo)。

比如一張照片中的狗和行人以及車,他們的尺度是不一樣的,通過(guò)不同的maxpool,這樣子就能夠更好的區(qū)別小目標(biāo)和大目標(biāo)。

CSP模塊,首先將特征分為兩部分,其中的一個(gè)部分進(jìn)行常規(guī)的處理,另外一個(gè)部分進(jìn)行SPP結(jié)構(gòu)的處理,最后把這兩個(gè)部分合并在一起,這樣子就能夠減少一半的計(jì)算量,使得速度變得快,精度反而會(huì)提升。

4c871d7e-8dd6-11ee-939d-92fbcf53809c.png

來(lái)源:CSDN博主江小皮不皮

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:【光電智造】YOLOV7詳細(xì)解讀|網(wǎng)絡(luò)架構(gòu)解讀

文章出處:【微信號(hào):今日光電,微信公眾號(hào):今日光電】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    在英特爾AI開(kāi)發(fā)板上用OpenVINO NNCF優(yōu)化YOLOv7

    提高了性能和效率。YOLO算法作為one-stage目標(biāo)檢測(cè)算法最典型的代表,其基于深度神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)象的識(shí)別和定位,運(yùn)行速度很快,可以用于實(shí)時(shí)系統(tǒng)。YOLOv7 是 YOLO 模型系列的下一個(gè)演進(jìn)階段,在不增加推理成本的情況下,大大提高了實(shí)時(shí)目標(biāo)檢測(cè)精度。
    的頭像 發(fā)表于 01-05 09:29 ?761次閱讀
    在英特爾AI開(kāi)發(fā)板上用OpenVINO NNCF優(yōu)化<b class='flag-5'>YOLOv7</b>

    Android 4.0網(wǎng)絡(luò)編程詳解源碼

    本帖最后由 richthoffen 于 2019-7-19 16:39 編輯 Android 4.0網(wǎng)絡(luò)編程詳解源碼
    發(fā)表于 07-19 08:41

    與V.35網(wǎng)絡(luò)的接口

    DN94- 與V.35網(wǎng)絡(luò)的接口
    發(fā)表于 08-08 11:07

    IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)互連技術(shù)對(duì)比分析哪個(gè)好?

    NAT-PT實(shí)現(xiàn)互連原理是什么?NAT-PT的工作機(jī)制是怎樣的?IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)互連技術(shù)對(duì)比分析哪個(gè)好?
    發(fā)表于 05-26 07:07

    STM32網(wǎng)絡(luò)的三大件

    之前的推文已經(jīng)將STM32網(wǎng)絡(luò)的三大件講完了①PHY接口,《STM32網(wǎng)絡(luò)電路設(shè)計(jì)》②MAC控制器,《STM32網(wǎng)絡(luò)之MAC控制器》③DMA控制器,《STM32網(wǎng)絡(luò)之DMA控制器》本文
    發(fā)表于 08-02 09:54

    YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)解析

    1、YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)解析  YOLOv5針對(duì)不同大?。╪, s, m, l, x)的網(wǎng)絡(luò)整體架構(gòu)都是一樣的,只不過(guò)會(huì)在每個(gè)子模塊中采用
    發(fā)表于 10-31 16:30

    yolov7 onnx模型在NPU上太慢了怎么解決?

    ://github.com/WongKinYiu/yolov7/releases下載yolov7-tiny.pt ,并重命名yolov7tiny.pt2.將yolov7tiny.pt轉(zhuǎn)
    發(fā)表于 04-04 06:13

    無(wú)法使用MYRIAD在OpenVINO trade中運(yùn)行YOLOv7自定義模型怎么解決?

    無(wú)法確定如何將 YOLOv7 模型的重量(.pt 文件)轉(zhuǎn)換為OpenVINO?中間表示 (IR) 并推斷有 MYRIAD 的 IR。 分辨率 轉(zhuǎn)換使用此 GitHub* 存儲(chǔ)庫(kù)
    發(fā)表于 08-15 08:29

    基于網(wǎng)絡(luò)地址和協(xié)議轉(zhuǎn)換實(shí)現(xiàn)IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)互連

    IPv4 的缺陷和Internet的飛速發(fā)展導(dǎo)致IPv6的產(chǎn)生和發(fā)展,目前,IPv6網(wǎng)絡(luò)正從試驗(yàn)性網(wǎng)絡(luò)逐步走向?qū)嶋H應(yīng)用,但未來(lái)一段時(shí)間內(nèi),IPv4網(wǎng)絡(luò)仍然占據(jù)主導(dǎo)地位,IPv4網(wǎng)絡(luò)和I
    的頭像 發(fā)表于 06-19 17:12 ?3837次閱讀
    基于<b class='flag-5'>網(wǎng)絡(luò)</b>地址和協(xié)議轉(zhuǎn)換實(shí)現(xiàn)IPv4<b class='flag-5'>網(wǎng)絡(luò)</b>和IPv6<b class='flag-5'>網(wǎng)絡(luò)</b>互連

    深度解析YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)

    最近,Scaled-YOLOv4的作者(也是后來(lái)的YOLOR的作者)和YOLOv4的作者AB大佬再次聯(lián)手推出了YOLOv7,目前來(lái)看,這一版的YOLOv7是一個(gè)比較正統(tǒng)的YOLO續(xù)作,
    的頭像 發(fā)表于 09-14 11:16 ?7599次閱讀

    YOLOv7訓(xùn)練自己的數(shù)據(jù)集包括哪些

    ? YOLOv7訓(xùn)練自己的數(shù)據(jù)集整個(gè)過(guò)程主要包括:環(huán)境安裝—制作數(shù)據(jù)集—模型訓(xùn)練—模型測(cè)試—模型推理 一、準(zhǔn)備深度學(xué)習(xí)環(huán)境 本人的筆記本電腦系統(tǒng)是:Windows10 首先下載YOLOv7的代碼
    的頭像 發(fā)表于 05-29 15:18 ?1086次閱讀
    <b class='flag-5'>YOLOv7</b>訓(xùn)練自己的數(shù)據(jù)集包括哪些

    一文徹底搞懂YOLOv8【網(wǎng)絡(luò)結(jié)構(gòu)+代碼+實(shí)操】

    從上面可以看出,YOLOv8 主要參考了最近提出的諸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相關(guān)設(shè)計(jì),本身的創(chuàng)新點(diǎn)不多,偏向工程實(shí)踐,主推的還是 ultralytics 這個(gè)框架本身。
    的頭像 發(fā)表于 06-15 17:15 ?1.2w次閱讀
    一文徹底搞懂<b class='flag-5'>YOLOv</b>8【<b class='flag-5'>網(wǎng)絡(luò)</b>結(jié)構(gòu)+代碼+實(shí)操】

    yolov5和YOLOX正負(fù)樣本分配策略

    整體上在正負(fù)樣本分配中,yolov7的策略算是yolov5和YOLOX的結(jié)合。因此本文先從yolov5和YOLOX正負(fù)樣本分配策略分析入手,后引入到YOLOv7的解析中。
    發(fā)表于 08-14 11:45 ?2285次閱讀
    <b class='flag-5'>yolov</b>5和YOLOX正負(fù)樣本分配策略

    使用OpenVINO優(yōu)化并部署訓(xùn)練好的YOLOv7模型

    在《英特爾銳炫 顯卡+ oneAPI 和 OpenVINO 實(shí)現(xiàn)英特爾 視頻 AI 計(jì)算盒訓(xùn)推一體-上篇》一文中,我們?cè)敿?xì)介紹基于英特爾 獨(dú)立顯卡搭建 YOLOv7 模型的訓(xùn)練環(huán)境,并完成了 YOLOv7 模型訓(xùn)練,獲得了最佳精度的模型權(quán)重。
    的頭像 發(fā)表于 08-25 11:08 ?1524次閱讀
    使用OpenVINO優(yōu)化并部署訓(xùn)練好的<b class='flag-5'>YOLOv7</b>模型

    詳細(xì)解讀YOLOV7網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

    YOLOV7提出了輔助頭的一個(gè)訓(xùn)練方法,主要目的是通過(guò)增加訓(xùn)練成本,提升精度,同時(shí)不影響推理的時(shí)間,因?yàn)檩o助頭只會(huì)出現(xiàn)在訓(xùn)練過(guò)程中。
    發(fā)表于 11-27 10:45 ?752次閱讀
    詳細(xì)<b class='flag-5'>解讀</b><b class='flag-5'>YOLOV7</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>架構(gòu)</b>設(shè)計(jì)