1. 程式人生 > 實用技巧 >單階段目標檢測演算法YOLOv3

單階段目標檢測演算法YOLOv3

YOLOv3從v1和v2的基礎上進行改進,主要如下:

(1)更大的骨幹網路DarkNet-53,可以進行多尺度預測,跨尺度特徵融合

(2)多尺度預測,最終是3個尺度的特徵圖上目標檢測

Darknet-53骨幹網路進行特徵提取,網路分為5個階段,經過每個綠色的res是一個2倍的下采樣,最多是32倍

32倍的下采樣再經過特徵提取後輸出為y1的特徵圖 32倍到輸出中間的特徵圖拿出來和上一次的16倍下采樣進行拼接,拼接之前對32倍的下采樣進行上取樣使其和16倍下采樣的特徵圖變成一樣大小,2者進行concat再進行特徵提取輸出第二張特徵圖y2 第三張特徵圖的輸出類似 3張特徵圖y1,y2,y3分別對應32,16,8倍的下采樣

網路輸入[N,3,416,416],N為輸入的圖片batch_size的數目,3是RGB通道 輸出的每個點的特徵圖資訊C=B*(5+class_num),其中5為4+1,即4個座標資訊和1個目標置信度,class_num為80,B為該點對應的anchor的數目,每個特徵圖的總輸出為n*n*255

針對3種不同的下采樣,會得到3*3種不同的anchor,例如對於32倍下采樣得到的特徵圖(13*13),特徵圖上的每個點相當於原圖中32*32的區域性區域,每個點都會有3種尺度的anchor,最終得到的特徵圖為h*w,相當於將原圖分為h*w個網格,每個網格對應特徵圖上的一個點

中心點偏移使用了sigmoid函式,在計算特徵圖時,特徵點的取值範圍可能負無窮到正無窮並且期望中心點偏移的範圍還是在0到1之內,不管tx,ty取多少,取sigmoid函式後偏移小 寬高拉伸使用了指數函式,因為希望得到的寬、高都是正數