在本文中,將介紹YOLOv5實作中使用的以下最重要的技術細節和方向.
由於YoloV5共有4個版本,這邊將介紹“Yolov5s”版本。但是,如果您仔細地參考這一點,您會發現,在其他版本中,除了模型層/體系結構和一些參數之外,沒有什麼大的變化.
大纲
1.YOLO v5模型架构
由於yolo v5是一個单级物件偵測器,它與其他任何单级物件偵測器一樣,有三個重要部分。
1.1型号主干
模型主干主要用於從給定的輸入影像中選取重要特徵。在YOLO v5中,CSP-跨级部分网络用作主干,從輸入影像中選取豐富的資訊特徵CSP — Cross Stage Partial Networks
CSPnet在深度網路的處理時間上有了顯著的改進.參考下圖,有關CSPnet的更多資訊,請參閱Github回购。Github repo
1.2型号颈部
模型颈部主要用於生成特征棱锥体(特徵金字塔)。特徵金字塔有助於模型在物件縮放時更好地做一般泛化.它有助於識別具有不同大小和比例的同一物件.
特徵金字塔非常有用,可以幫助模型在從未看過的數據上表現良好.還有其他模型使用不同類型的特徵金字塔技術,如、BIFPN、PANET等.FPN BiFPN PANet
在yolo v5中,PANET用於作為Neck以獲取特徵金字塔.有關特徵金字塔的詳細資訊,請參閱以下連結.PANet
1.3模型机头
模特头像主要用於執行最終偵測部分。它在特徵上應用锚盒、並生成具有類別機率、Objectity分數和包围盒的最終輸出向量。
在Yolo v5模型中,Head與之前的Yolo V3和V4版本相同.
此外,我還附上了YoloV5的最終模型架構–一個小版本.你可以在這裡找到它.這裡
2.激活功能
在任何深度神經網路中,啟動函數的選擇都是最關鍵的.最近,許多啟動函數被引入,如leaky relu,mish,swiw等.Leaky ReLU mish swish
yolo v5的作者決定使用leaky relu和Sigmoid啟動函數.Sigmoid
在yolo v5中,中間層/隱藏層使用leaky relu啟動函數,最終檢測層使用Sigmoid啟動函數.你可以在這裡驗證.這裡
3.优化函数
對於yolo v5中的優化函數,我們在yolo v5中有兩個選項
在yolo v5中,Training的預設優化函數是SGD.
但是,您可以將其更改為adam使用“–adam”命令列參數.
4.成本函数或损失函数
在Yolo系列中,有一個复合损失是基於对象性得分、类概率得分和包围盒回歸得分計算的。
超分析使用了二元交叉熵与LOGITS损失和火炬的LOGITS損失函數來計算类概率和对象分数的損失。Binary Cross-Entropy with Logits Loss
我們還可以選擇Focus Lost來計算損失。您可以選擇使用fl_超參數進行焦损訓練。Focal Loss
5.权重、偏差、参数、渐变和最终模型汇总
要仔細查看YOLOv5-小型中各層的權重、偏差、形狀和參數,請參閱以下資訊。
此外,您還可以參考以下YOLO v5-小型机的簡要概述。
Model Summary: 191 layers, 7.46816e+06 parameters, 7.46816e+06 gradients
6.YOLO v5版本不同
6.1Yolov5四種網絡的深度
在上圖中,大白畫了兩種CSP結構、CSP 1和CSP 2、其中CSP 1結構主要應用於Backbone中、CSP 2結構主要應用於Neck中。
需要注意的是,四種網絡結構中每個Csp結構的深度都是不同的.
而Yolov5m中使用了2組,Yolov5l中使用了3組,Yolov5x中使用了4組。
其他的四個Csp2結構,也是同理.
Yolov5中,網絡的不斷加深,也在不斷增加網絡特徵提取和特徵融合的能力.
6.2Yolov5四種網絡的寬度
如上圖表格中所示,四種yolov5結構在不同階段的捲積核的數量都是不一樣的,因此也直接影響卷積後特徵圖的第三維度,即厚度,大白這裡表示為網絡的寬度.
四種不同結構的捲積核的數量不同,這也直接影響網絡中,比如Csp1、Csp2等結構,以及各個普通卷積,卷積操作時的捲積核數量也同步在調整,影響整體網絡的計算量.
大家最好可以將結構圖和前面第一部分四個網絡的特徵圖鏈接,對應查看,思路會更加清晰.
當然卷積核的數量越多,特徵圖的厚度,即寬度越寬,網絡提取特徵的學習能力也越強.
6.3Yolov5四種結構的參數
每個網絡結構的兩個參數:
(1)Yolov5s.yaml
(2)Yolov5m.yaml
(3)Yolov5l.yaml
(4)Yolov5x.yaml
四種結構就是通過上面的兩個參數,來進行控制網絡的
参考文献
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/10/12/%e8%a7%a3%e9%87%8a%e5%b9%b6%e6%8f%ad%e5%bc%80yolo-v5%e2%80%8a-%e2%80%8a%e7%9a%84%e7%a5%9e%e7%a7%98%e9%9d%a2%e7%ba%b1/