YOLOv5改進(jìn)系列之增加小目標(biāo)檢測(cè)層
小目標(biāo)檢測(cè)一直以來(lái)是CV領(lǐng)域的難點(diǎn)之一,那么,YOLOv5該如何增加小目標(biāo)檢測(cè)層呢?
YOLOv5代碼修改————針對(duì)微小目標(biāo)檢測(cè)
1.YOLOv5算法簡(jiǎn)介
YOLOv5主要由輸入端、Backone、Neck以及Prediction四部分組成。其中:
(1) Backbone:在不同圖像細(xì)粒度上聚合并形成圖像特征的卷積神經(jīng)網(wǎng)絡(luò)。
(2) Neck:一系列混合和組合圖像特征的網(wǎng)絡(luò)層,并將圖像特征傳遞到預(yù)測(cè)層。
(3) Head: 對(duì)圖像特征進(jìn)行預(yù)測(cè),生成邊界框和并預(yù)測(cè)類(lèi)別。
檢測(cè)框架:

2.原始YOLOv5模型
# YOLOv5 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) [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5) ]
若輸入圖像尺寸=640X640,
# P3/8 對(duì)應(yīng)的檢測(cè)特征圖大小為80X80,用于檢測(cè)大小在8X8以上的目標(biāo)。
# P4/16對(duì)應(yīng)的檢測(cè)特征圖大小為40X40,用于檢測(cè)大小在16X16以上的目標(biāo)。
# P5/32對(duì)應(yīng)的檢測(cè)特征圖大小為20X20,用于檢測(cè)大小在32X32以上的目標(biāo)。
3.增加小目標(biāo)檢測(cè)層
# parameters nc: 1 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple # anchors anchors: - [5,6, 8,14, 15,11] #4 - [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 backbone backbone: # [from, number, module, args] [[-1, 1, Focus, [64, 3]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, BottleneckCSP, [128]], #160*160 [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, BottleneckCSP, [256]], #80*80 [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, BottleneckCSP, [512]], #40*40 [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 1, SPP, [1024, [5, 9, 13]]], [-1, 3, BottleneckCSP, [1024, False]], # 9 20*20 ] # YOLOv5 head head: [[-1, 1, Conv, [512, 1, 1]], #20*20 [-1, 1, nn.Upsample, [None, 2, 'nearest']], #40*40 [[-1, 6], 1, Concat, [1]], # cat backbone P4 40*40 [-1, 3, BottleneckCSP, [512, False]], # 13 40*40 [-1, 1, Conv, [512, 1, 1]], #40*40 [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 4], 1, Concat, [1]], # cat backbone P3 80*80 [-1, 3, BottleneckCSP, [512, False]], # 17 (P3/8-small) 80*80 [-1, 1, Conv, [256, 1, 1]], #18 80*80 [-1, 1, nn.Upsample, [None, 2, 'nearest']], #19 160*160 [[-1, 2], 1, Concat, [1]], #20 cat backbone p2 160*160 [-1, 3, BottleneckCSP, [256, False]], #21 160*160 [-1, 1, Conv, [256, 3, 2]], #22 80*80 [[-1, 18], 1, Concat, [1]], #23 80*80 [-1, 3, BottleneckCSP, [256, False]], #24 80*80 [-1, 1, Conv, [256, 3, 2]], #25 40*40 [[-1, 14], 1, Concat, [1]], # 26 cat head P4 40*40 [-1, 3, BottleneckCSP, [512, False]], # 27 (P4/16-medium) 40*40 [-1, 1, Conv, [512, 3, 2]], #28 20*20 [[-1, 10], 1, Concat, [1]], #29 cat head P5 #20*20 [-1, 3, BottleneckCSP, [1024, False]], # 30 (P5/32-large) 20*20 [[21, 24, 27, 30], 1, Detect, [nc, anchors]], # Detect(p2, P3, P4, P5) ]
# 新增加160X160的檢測(cè)特征圖,用于檢測(cè)4X4以上的目標(biāo)。
改進(jìn)后,雖然計(jì)算量和檢測(cè)速度有所增加,但對(duì)小目標(biāo)的檢測(cè)精度有明顯改善。
總結(jié)
到此這篇關(guān)于YOLOv5改進(jìn)系列之增加小目標(biāo)檢測(cè)層的文章就介紹到這了,更多相關(guān)YOLOv5增加小目標(biāo)檢測(cè)層內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 教你用YOLOv5實(shí)現(xiàn)多路攝像頭實(shí)時(shí)目標(biāo)檢測(cè)功能
- 如何使用yolov5輸出檢測(cè)到的目標(biāo)坐標(biāo)信息
- YOLOv5目標(biāo)檢測(cè)之a(chǎn)nchor設(shè)定
- Pytorch搭建YoloV5目標(biāo)檢測(cè)平臺(tái)實(shí)現(xiàn)過(guò)程
- 手把手教你YOLOv5如何進(jìn)行區(qū)域目標(biāo)檢測(cè)
- YOLOv5小目標(biāo)切圖檢測(cè)的思路與方法
- YOLOv5在圖片上顯示統(tǒng)計(jì)出單一檢測(cè)目標(biāo)的個(gè)數(shù)實(shí)例代碼
相關(guān)文章
python使用socket實(shí)現(xiàn)的傳輸demo示例【基于TCP協(xié)議】
這篇文章主要介紹了python使用socket實(shí)現(xiàn)的傳輸demo,結(jié)合實(shí)例形式分析了Python使用socket庫(kù)基于TCP協(xié)議實(shí)現(xiàn)的客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
python實(shí)現(xiàn)雙人版坦克大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)雙人版坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Python實(shí)現(xiàn)微信好友數(shù)據(jù)爬取及分析
這篇文章會(huì)基于Python對(duì)微信好友進(jìn)行數(shù)據(jù)分析,這里選擇的維度主要有:性別、頭像、簽名、位置,主要采用圖表和詞云兩種形式來(lái)呈現(xiàn)結(jié)果,其中,對(duì)文本類(lèi)信息會(huì)采用詞頻分析和情感分析兩種方法,感興趣的小伙伴可以了解一下2021-12-12
淺談python3打包與拆包在函數(shù)的應(yīng)用詳解
這篇文章主要介紹了淺談python3打包與拆包在函數(shù)的應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)
本文主要介紹了Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié),用戶發(fā)送請(qǐng)求時(shí)攜帶的參數(shù)后端需要使用,而不同的發(fā)送參數(shù)的方式對(duì)應(yīng)了不同的提取參數(shù)的方式,本文就詳細(xì)的介紹一下2021-08-08
python詞云庫(kù)wordCloud使用方法詳解(解決中文亂碼)
這篇文章主要介紹了python詞云庫(kù)wordCloud使用方法詳解(解決中文亂碼),需要的朋友可以參考下2020-02-02
Python中MySQLdb和torndb模塊對(duì)MySQL的斷連問(wèn)題處理
這篇文章主要介紹了Python中MySQLdb和torndb模塊對(duì)MySQL的斷連問(wèn)題處理,torndb使用起來(lái)相對(duì)更加簡(jiǎn)潔一些,需要的朋友可以參考下2015-11-11

