本文來自公眾號“AI大道理”
在YOLOv3中繼續改進,提出了一個更深的、借鑒了ResNet和的FPN的網絡Darknet-53。
YOLO作者自己寫的一個深度學習框架叫darknet,后來在YOLO9000中又提出了一個19層卷積網絡作為YOLO9000的主干,稱為Darknet-19。
這兩者都是用於提取特征的主干網絡。
網絡使用了較多的3 * 3卷積核,在每一次池化操作后把通道數翻倍。
借鑒了network in network的思想,網絡使用了全局平均池化(global average pooling)做預測,把1 * 1的卷積核置於3 * 3的卷積核之間,用來壓縮特征。
使用batch normalization穩定模型訓練,加速收斂,正則化模型。
最終得出的基礎模型就是Darknet-19,包含19個卷積層、5個最大值池化層(max pooling layers )。
Darknet-19處理一張照片需要55.8億次運算。
可以看到, Darknet-19 的 stride 為32, 沒有 fc 層,而是用了 Avgpool。
-
主干網絡修改為darknet53,其重要特點是使用了殘差網絡Residual,darknet53中的殘差卷積就是進行一次3X3、步長為2的卷積,然后保存該卷積layer,再進行一次1X1的卷積和一次3X3的卷積,並把這個結果加上layer作為最后的結果, 殘差網絡的特點是容易優化,並且能夠通過增加相當的深度來提高准確率。其內部的殘差塊使用了跳躍連接,緩解了在深度神經網絡中增加深度帶來的梯度消失問題。
-
darknet53的每一個卷積部分使用了特有的DarknetConv2D結構,每一次卷積的時候進行l2正則化,完成卷積后進行BatchNormalization標准化與LeakyReLU。普通的ReLU是將所有的負值都設為零,Leaky ReLU則是給所有負值賦予一個非零斜率。
-
主干特征提取網絡進行特征提取,輸入一個416*416*3的圖片,進行5次下采樣,下采樣過程中高和寬不斷被壓縮,通道數不斷增加。上采樣再進行堆疊的過程就是構建特征金字塔的過程,特征金字塔可以進行多尺度特征融合,提取出更有效的特征。
-
yolo v3的檢測過程就是將輸入的圖片划分成不同的網格,每個網格有3個先驗框,判斷先驗框里面是否有物體,判斷物體的種類,然后調整先驗框變成預測框。
在特征利用部分,yolo3提取多特征層進行目標檢測,一共提取三個特征層,三個特征層位於主干部分darknet53的不同位置,分別位於中間層,中下層,底層,三個特征層的shape分別為(52,52,256)、(26,26,512)、(13,13,1024)。
三個特征層進行5次卷積處理,處理完后一部分用於輸出該特征層對應的預測結果,一部分用於進行反卷積UmSampling2d后與其它特征層進行結合。
輸出層的shape分別為(13,13,75),(26,26,75),(52,52,75),最后一個維度為75是因為該圖是基於voc數據集的,它的類為20種,yolo3只有針對每一個特征層存在3個先驗框,所以最后維度為3x25;
如果使用的是coco訓練集,類則為80種,最后的維度應該為255 = 3x85,三個特征層的shape為(13,13,255),(26,26,255),(52,52,255)
backbone:特征提取
Residual:殘差網絡
FPN:特征金字塔
——————
淺談則止,細致入微AI大道理
掃描下方“AI大道理”,選擇“關注”公眾號
—————————————————————
—————————————————————