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

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

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

Yolov5理論學(xué)習(xí)筆記

新機(jī)器視覺 ? 來源:馬少爺 ? 2023-09-12 17:08 ? 次閱讀

算法創(chuàng)新分為三種方式

第一種:面目一新的創(chuàng)新,比如Yolov1、Faster-RCNN、Centernet等,開創(chuàng)出新的算法領(lǐng)域,不過這種也是最難的。

第二種:守正出奇的創(chuàng)新,比如將圖像金字塔改進(jìn)為特征金字塔。

第三種:各種先進(jìn)算法集成的創(chuàng)新,比如不同領(lǐng)域發(fā)表的最新論文的tricks,集成到自己的算法中,卻發(fā)現(xiàn)有出乎意料的改進(jìn)。

對象檢測網(wǎng)絡(luò)的通用架構(gòu):

1cee00a0-514a-11ee-a25d-92fbcf53809c.png

1)Backbone -形成圖像特征。

2)Neck:對圖像特征進(jìn)行混合和組合,生成特征金字塔

3)Head:對圖像特征進(jìn)行預(yù)測,應(yīng)用錨定框,生成帶有類概率、對象得分和邊界框的最終輸出向量。

【Yolov5網(wǎng)絡(luò)結(jié)構(gòu)圖】

可視化結(jié)構(gòu)圖:

1d2c3cda-514a-11ee-a25d-92fbcf53809c.png

不同網(wǎng)絡(luò)的寬度:

V5x: 367MB,V5l: 192MB,V5m: 84MB,V5s: 27MB,YOLOV4: 245 MB

1d5bd71a-514a-11ee-a25d-92fbcf53809c.png

四種Yolov5結(jié)構(gòu)在不同階段的卷積核的數(shù)量都是不一樣的,因此直接影響卷積后特征圖的第三維度

Yolov5s第一個Focus結(jié)構(gòu)中:最后卷積操作時,卷積核的數(shù)量是32個,特征圖的大小變成304×304×32。

而Yolov5m:卷積操作使用了48個卷積核,特征圖變成304×304×48。

…后面卷積下采樣操作也是同樣的原理

不同網(wǎng)絡(luò)的深度:

1d7897e2-514a-11ee-a25d-92fbcf53809c.png

四種網(wǎng)絡(luò)結(jié)構(gòu)中每個CSP結(jié)構(gòu)的深度都是不同的

CSP1結(jié)構(gòu)主要應(yīng)用于Backbone中:

Yolov5s的CSP1:使用了1個殘差組件,CSP1_1。

Yolov5m:使用了2個殘差組件,CSP1_2。

Yolov5l,使用了3個殘差組件,

Yolov5x,使用了4個殘差組件。

主要的不同點(diǎn):

(1)輸入端:Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、自適應(yīng)圖片縮放

(2)Backbone:Focus結(jié)構(gòu),CSP結(jié)構(gòu)

(3)Neck:FPN+PAN結(jié)構(gòu)

(4)Prediction:GIOU_Loss

【輸入端】

①數(shù)據(jù)增強(qiáng):

Mosaic數(shù)據(jù)增強(qiáng)

②自適應(yīng)錨定框Auto Learning Bounding Box Anchors

網(wǎng)絡(luò)在初始錨框的基礎(chǔ)上 基于訓(xùn)練數(shù)據(jù) 輸出預(yù)測框,因此初始錨框也是比較重要的一部分。見配置文件*.yaml, yolov5預(yù)設(shè)了COCO數(shù)據(jù)集640×640圖像大小的錨定框的尺寸:

1da77846-514a-11ee-a25d-92fbcf53809c.png

每次訓(xùn)練時,自適應(yīng)的計(jì)算不同訓(xùn)練集中的最佳錨框值。如果覺得計(jì)算的錨框效果不是很好,也可以在代碼中將自動計(jì)算錨框功能關(guān)閉。具體操作為train.py中下面一行代碼,設(shè)置成False

1dba16c2-514a-11ee-a25d-92fbcf53809c.png

③自適應(yīng)圖片縮放

在常用的目標(biāo)檢測算法中,一般將原始圖片統(tǒng)一縮放到一個標(biāo)準(zhǔn)尺寸,再送入檢測網(wǎng)絡(luò)中。Yolo算法中常用416416,608608等尺寸。因?yàn)樘畛涞谋容^多,會存在信息冗余,所以yolov5對原始圖像自適應(yīng)的添加最少的黑邊。

【Backbone】

①Focus結(jié)構(gòu)

1dce048e-514a-11ee-a25d-92fbcf53809c.png

以Yolov5s的結(jié)構(gòu)為例,原始608x608x3的圖像輸入Focus結(jié)構(gòu),采用切片操作,先變成304x304x12的特征圖,再經(jīng)過一次32個卷積核的卷積操作,最終變成304x304x32的特征圖。

②CSP結(jié)構(gòu)

作者認(rèn)為推理計(jì)算過高的問題是由于網(wǎng)絡(luò)優(yōu)化中的梯度信息重復(fù)致,CSPNet(Cross Stage Paritial Network, 跨階段局部網(wǎng)絡(luò)),主要從網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的角度解決推理中計(jì)算量很大的問題。

Yolov5中設(shè)計(jì)了兩種CSP結(jié)構(gòu),以Yolov5s網(wǎng)絡(luò)為例,CSP1_X結(jié)構(gòu)應(yīng)用于Backbone主干網(wǎng)絡(luò),另一種CSP2_X結(jié)構(gòu)則應(yīng)用于Neck中。

1df8516c-514a-11ee-a25d-92fbcf53809c.png

【Neck】

FPN+PAN,網(wǎng)絡(luò)特征融合的能力更強(qiáng)

1e219fae-514a-11ee-a25d-92fbcf53809c.png

PAN(路徑聚合網(wǎng)絡(luò))借鑒了圖像分割領(lǐng)域PANet的創(chuàng)新點(diǎn)

該作者認(rèn)為在對象檢測中,特征融合層的性能非常重要,根據(jù)谷歌大腦的研究,[BiFPN]才是特征融合層的最佳選擇。誰能整合這項(xiàng)技術(shù),很有可能取得性能大幅超越。

【輸出端】

①Activation Function

在 YOLO V5中,中間/隱藏層使用了 Leaky ReLU 激活函數(shù),最后的檢測層使用了 Sigmoid 形激活函數(shù)

②nms非極大值抑制

在同樣的參數(shù)情況下,將nms中IOU修改成DIOU_nms。對于一些遮擋重疊的目標(biāo),會有一些改進(jìn)。

③Optimization Function

YOLO V5的作者為我們提供了兩個優(yōu)化函數(shù)Adam和SGD,并都預(yù)設(shè)了與之匹配的訓(xùn)練超參數(shù)。默認(rèn)為SGD。

④Cost Function

loss = objectness score+class probability score+ bounding box regression score

YOLO V5使用 GIOU Loss作為bounding box的損失。

YOLO V5使用二進(jìn)制交叉熵和 Logits 損失函數(shù)計(jì)算類概率和目標(biāo)得分的損失。同時我們也可以使用fl _ gamma參數(shù)來激活Focal loss計(jì)算損失函數(shù)。

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

    關(guān)注

    23

    文章

    4592

    瀏覽量

    92520
  • 圖像分割
    +關(guān)注

    關(guān)注

    4

    文章

    182

    瀏覽量

    17962
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4286

    瀏覽量

    62335

原文標(biāo)題:Yolov5理論學(xué)習(xí)筆記

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    YOLOv5】LabVIEW+YOLOv5快速實(shí)現(xiàn)實(shí)時物體識別(Object Detection)含源碼

    前面我們給大家介紹了基于LabVIEW+YOLOv3/YOLOv4的物體識別(對象檢測),今天接著上次的內(nèi)容再來看看YOLOv5。本次主要是和大家分享使用LabVIEW快速實(shí)現(xiàn)yolov5
    的頭像 發(fā)表于 03-13 16:01 ?2064次閱讀

    Yolov5算法解讀

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不斷進(jìn)行升級迭代。 Yolov5YOLOv5s、YOLOv5
    的頭像 發(fā)表于 05-17 16:38 ?8440次閱讀
    <b class='flag-5'>Yolov5</b>算法解讀

    YOLOv5】LabVIEW+TensorRT的yolov5部署實(shí)戰(zhàn)(含源碼)

    今天主要和大家分享在LabVIEW中使用純TensoRT工具包快速部署并實(shí)現(xiàn)yolov5的物體識別
    的頭像 發(fā)表于 08-21 22:20 ?1267次閱讀
    【<b class='flag-5'>YOLOv5</b>】LabVIEW+TensorRT的<b class='flag-5'>yolov5</b>部署實(shí)戰(zhàn)(含源碼)

    龍哥手把手教你學(xué)視覺-深度學(xué)習(xí)YOLOV5

    可以實(shí)現(xiàn)理想的檢測效果。在本套視頻,有別于常見的深度學(xué)習(xí)教程以理論為主進(jìn)行全面講解,以沒有任何深度學(xué)習(xí)理論基礎(chǔ)的學(xué)員學(xué)習(xí)角度,以實(shí)際應(yīng)用為目標(biāo),講解如何設(shè)計(jì)一個完整的
    發(fā)表于 09-03 09:39

    怎樣使用PyTorch Hub去加載YOLOv5模型

    在Python>=3.7.0環(huán)境中安裝requirements.txt,包括PyTorch>=1.7。模型和數(shù)據(jù)集從最新的 YOLOv5版本自動下載。簡單示例此示例從
    發(fā)表于 07-22 16:02

    如何YOLOv5測試代碼?

    使用文檔“使用 YOLOv5 進(jìn)行對象檢測”我試圖從文檔第 10 頁訪問以下鏈接(在 i.MX8MP 上部署 yolov5s 的步驟 - NXP 社區(qū)) ...但是這樣做時會被拒絕訪問。該文檔沒有說明需要特殊許可才能下載 test.zip 文件。NXP 的人可以提供有關(guān)如
    發(fā)表于 05-18 06:08

    yolov5模型onnx轉(zhuǎn)bmodel無法識別出結(jié)果如何解決?

    問題描述: 1. yolov5模型pt轉(zhuǎn)bmodel可以識別出結(jié)果。(轉(zhuǎn)化成功,結(jié)果正確) 2. yolov5模型pt轉(zhuǎn)onnx轉(zhuǎn)bmodel可以無法識別出結(jié)果。(轉(zhuǎn)化成功,結(jié)果沒有) 配置: 1.
    發(fā)表于 09-15 07:30

    基于YOLOv5的目標(biāo)檢測文檔進(jìn)行的時候出錯如何解決?

    你好: 按Milk-V Duo開發(fā)板實(shí)戰(zhàn)——基于YOLOv5的目標(biāo)檢測 安裝好yolov5環(huán)境,在執(zhí)行main.py的時候會出錯,能否幫忙看下 main.py: import torch
    發(fā)表于 09-18 07:47

    現(xiàn)代控制理論學(xué)習(xí)心得

    現(xiàn)代控制理論學(xué)習(xí)心得
    發(fā)表于 12-20 22:18 ?0次下載

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下載并轉(zhuǎn)換YOLOv5預(yù)訓(xùn)練模型的詳細(xì)步驟,請參考:《基于OpenVINO?2022.2和蝰蛇峽谷優(yōu)化并部署YOLOv5模型》,本文所使用的OpenVINO是2022.3 LTS版。
    的頭像 發(fā)表于 02-15 16:53 ?4466次閱讀

    使用旭日X3派的BPU部署Yolov5

    本次主要介紹在旭日x3的BPU中部署yolov5。首先在ubuntu20.04安裝yolov5,并運(yùn)行yolov5并使用pytoch的pt模型文件轉(zhuǎn)ONNX。
    的頭像 發(fā)表于 04-26 14:20 ?826次閱讀
    使用旭日X3派的BPU部署<b class='flag-5'>Yolov5</b>

    淺析基于改進(jìn)YOLOv5的輸電線路走廊滑坡災(zāi)害識別

    本文以YOLOv5網(wǎng)絡(luò)模型為基礎(chǔ),提出一種改進(jìn)YOLOv5YOLOv5-BC)深度學(xué)習(xí)滑坡災(zāi)害識別方法,將原有的PANet層替換為BiFPN結(jié)構(gòu),提高網(wǎng)絡(luò)多層特征融合能力
    的頭像 發(fā)表于 05-17 17:50 ?1230次閱讀
    淺析基于改進(jìn)<b class='flag-5'>YOLOv5</b>的輸電線路走廊滑坡災(zāi)害識別

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

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

    YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練策略詳解

    前面已經(jīng)講過了Yolov5模型目標(biāo)檢測和分類模型訓(xùn)練流程,這一篇講解一下yolov5模型結(jié)構(gòu),數(shù)據(jù)增強(qiáng),以及訓(xùn)練策略。
    的頭像 發(fā)表于 09-11 11:15 ?2080次閱讀
    <b class='flag-5'>YOLOv5</b>網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練策略詳解

    YOLOv5的原理、結(jié)構(gòu)、特點(diǎn)和應(yīng)用

    YOLOv5(You Only Look Once version 5)是一種基于深度學(xué)習(xí)的實(shí)時目標(biāo)檢測算法,它屬于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的范疇。下面我將詳細(xì)介紹YOLOv5的原理、結(jié)
    的頭像 發(fā)表于 07-03 09:23 ?4585次閱讀