深度學習 二 理解yolov3模型

2021-10-08 19:39:27 字數 2351 閱讀 5419

模型框架處理解析:

整個模型框架分為三個部分:

darknet + fpn + region proposal

第一部分:darknet-53 作為乙個backbone。主要完成了特徵提取的任務。它的組成為兩個部分。分別為卷積層和殘差網路層。(2+12+22+82+82+42+1)=53,最後的connected是全連線層也算卷積層,總共53層卷積層。從yolov2中的darknet-19進化而來,仿resnet,加深了網路層數,引入了resnet中的跨層加和操作。使用了殘差網路residual,殘差卷積就是進行一次33、步長為2的卷積,然後儲存layer,再進行一次11的卷積和一次33的卷積,並把這個結果加上layer作為最後的結果, 殘差網路的特點是容易優化,並且能夠通過增加相當的深度來提高準確率。其內部的殘差塊使用了跳躍連線,緩解了在深度神經網路中增加深度帶來的梯度消失問題。相比於同精度的resnet,速度更快。

卷積層的作用:

乙個特徵提取,特徵壓縮的過程。計算方法就是卷積核與畫素對應點乘再相加。

一般有三個固定命名的引數:

kernel_size,stride,padding+兩個不固定命名的輸入輸出通道數ni, nc,inplanes等

kernel_size=3:卷積核的大小為3*3

stride=1:步長為1,每次卷積橫豎都只走一格。

過程一般分為三步:convolution, batch_normalization, activate

殘差網路層

殘差網路可以分為乙個乙個的block。每個block都如上圖所示的結構,乙個通道經過正常的卷積層,另乙個通道不進行任何的處理與主通道結果相加得到block結果。

如yolov3框圖所示,輸入進來的進行乙個卷積層後,進入五層的殘差網路。每層網路定義不同個數的block。進行堆疊傳遞。我們需要殘差網路最後的三個輸出作為下一次特徵金字塔的輸入。out3為5252通道數為256的特徵圖。out4為2626通道數為512的特徵圖。out5為13*13通道數為1024的特徵圖。

第二部分:進行特徵金字塔fpn處理,yolov3借鑑了金字塔特徵圖思想,小尺寸特徵圖用於檢測大尺寸物體,而大尺寸特徵圖檢測小尺寸物體。1維**框置信度,二維物體類別數。yolov3總共輸出3個特徵圖,第乙個特徵圖下取樣32倍,第二個特徵圖下取樣16倍,第三個下取樣8倍。輸入影象經過darknet-53(無全連線層),再經過yoloblock生成的特徵圖被當作兩用,第一用為經過33卷積層、11卷積之後生成特徵圖一,第二用為經過11卷積層加上取樣層,與darnet-53網路的中間層輸出結果進行拼接,產生特徵圖二。同樣的迴圈之後產生特徵圖三。

concat操作與加和操作的區別:加和操作**於resnet思想,將輸入的特徵圖,與輸出特徵圖對應維度進行相加。而concat操作源於densenet網路的設計思路,將特徵圖按照通道維度直接進行拼接,例如8816的特徵圖與8816的特徵圖拼接後生成8832的特徵圖。

過程如下:

一、首先將out5輸出的特徵圖再進行五次卷積,然後第一通道將生成的特徵圖再進行兩次卷積生成13 13通道數為75的特徵圖進行**和分類。75個特徵通道分別對應為3*(4+1+20)三個先驗框anchors,四個anchors.(x,y,w,h)先驗框中心座標和寬高+乙個判定內部是否包含物體+20個類(voc資料集)。

二、另乙個通道將out5五次卷積後進行一次上取樣得到26*26通道數為256的特徵圖與out4進行堆疊再送入七次卷積進行**和分類。

三、以此類推一共生成了三個回歸**和分類**的結果。

第三部分:region proposal區域建議網路,在faster rcnn中用到了rpn網路。但是需要不斷訓練rpn網路,進行候選框的提取。yolov3中在每個特徵點生成三個候選框。進行物體的檢測。再使用iou,置信度等方法提取出最合適的檢測框。

每個特徵點生成三個先驗框anchors。就是再每個特徵點上,生成三個不同寬高的anchor,檢測目標時,如果某個特徵點附近的anchors內存在目標物體。經過調整anchor的寬高和中心位置,得到**框,在包含物體的**框中再進行anchor的置信度調整,選擇最合適的框,就是說選取目標物體佔整個框的區域最大的框輸出**。

三個anchor中心的那個點就是這三個anchors的特徵點。每個特徵點都生成對應的三個anchors。

yolov3模型轉換為OM模型

2.將yolov3.weights放到 test yolov3 tensorflow master data darknet weights資料夾中,voc names.txt裡寫入訓練的類別 3.修改test yolov3 tensorflow master中convert weight.py裡的...

深度學習理論 yolov3計算map

1.生成檢測檔案 darknet detector valid cfg voc.data cfg yolov3 voc.cfg backup yolov3 voc final.weights out 其中,類名要寫自己的類名,會生成乙個txt檔案在result裡。2.然後在python2的環境下執行...

深度學習目標檢測系列之YOLOV3

作者說yolov3相當於是一篇技術報告,因為他還有很多別的煩心事要去幹。所以yolov3相當於是在原始yolo版本的基礎上,整合現有的先進技術進行改良。不過從業界反映來講,還是很不錯的。這就是說有的人隨隨便便就做出了其它人一輩子也做不出來的事。但是這篇 更大的意義在於,讓我們停一停 想一想,what...