3.0 綜述
V3不像V2那樣眾多細節的改變,V3注重於整體網絡核心架構升級。如下圖,比較浮誇;x軸是單幀前向推理速度,y軸是主流網絡在COCO數據集上mAP
值。下圖浮誇之處在於:將V3曲線划到了第二象限!V3廣泛用於實時目標檢測、實時跟蹤項目中。
創新點:
- 網絡結構大改,使其更加是適應於小目標檢測;
- 特征提取、融合更加充分細致,融入多持續特征圖來預測不同規格物體
- 先驗框更加豐富了,3中scale,每種3個規格,一共9種(借鑒Faster RCNN)
- Softmax改進,預測單目標-多標簽任務(多分類改為多個二分類)
3.1 升級版Muti-Scale與特征融合
在V2中的2.7、2.8節講述了特征的融合、和訓練過程動態改變分辨率,一定程度上使得V2網絡模型能夠檢測到小目標,V2中的最終特征圖、中間特征圖的堆疊過於生硬,反而導致一些信息會被淹沒。
V3中,為了檢測不同大小物體,設計了3個scale。如下圖,圖中三個特征圖分別為:52×52、26×26、13×13,感受野依次變大,他們分別來自網絡中靠前、中間、靠后的特征圖,依次識別小目標、中等規格目標、大目標,而且是分開處理,不像V2中那樣直接堆疊在一起。每種特征圖都有3個Box,依次對應3中不同比例的先驗框(顯然52×52對應的目標小,候選框也小),這里的9種候選框是借鑒Faster R-CNN的。
如下圖,左圖是對不同的特征圖分別利用進行預測,右圖(V3做法,這是FPN,YOLOV4\5中用的是升級版,即:PANet),對不同特征圖融合后進行預測。例如:26×26的特征圖融合13×13特征圖的信息,(注:13×13可以通過上采樣、插值得到26×26的特征圖)。
3.2 殘差鏈接
深度殘差網絡自2016年起廣受歡迎,目標業界主流網絡基本基於ResNet改進而來。V3也引入了ResNet的思想,堆疊了更多的層進行特征提取。
ResNet由來:當年的VGG網絡堆疊了到了19層已經有不錯效果,但是隨着網絡加深,過擬合風險也加大(這么理解有點問題??),計算量也變大,卷積層再加多就沒有意義了。如下圖,VGG-56效果還不如VGG-20。如下圖,隨着迭代次數加大,訓練、測試的loss逐漸下降,VGG-19效果居然比VGG-56要好。
當時業界有人認為DL走到一個瓶頸期。后來何凱明大神發明了殘差連接算法,有效解決了以上問題。如上圖,VGG-56 相對於VGG-20多出了36層,這36層中,有的層可以為整體網絡提升性能,有的則是降低性能;那怎么從這36層中剔除“害群之馬”呢?如下圖,ResNet大概是這樣做的:例如從20層往下走有兩條路,一是經過21、22層,二是直接“拷貝”過去,接着驗證兩種方式的loss,哪一條路的loss小就保留哪一條路。以上做法可以有效避免“網絡加深導致過擬合網絡參數跑偏”問題。
其實,兩條路有權重參數,哪條路不行,那就降低他的權重,例如:上述H(x)應該寫成:
H(x) = a*F(x) + (1-a)*x
3.3 整體網絡架構模型分析
如下圖,是V3的網絡架構圖,稱為DarkNet-53(V2中稱為DarkNet-19),其實和ResNet差不多。
- 沒有池化(特征圖會壓縮,需要下采樣的地方,用卷積代替,例如:將特征圖縮小一半,可通過將卷積stride設為2來實現)。也沒有全連接層(FC層參數多,訓練慢,不易收斂),全部卷積。
- 3種scale,更多先驗框,前面說過。
- 當下主流算法全部融入。
下面這樣圖就是DarkNet-53,有關於Scale方便的特征圖融合,可以結合3.1節兩張圖看下,沒啥好說。
3.4 先驗框的改進
V1、2、3的網格分別為:7×7、13×13、(13×13、26×26、52×52),如下圖,是對3個最終層特征圖參數的解析。
V1中B=2,V2中B=5(KMeans得出),V3中B=9,這個9並非針對一張圖中的一個cell。如下圖,13*13感受野大,所以先驗框大。V3中9個先驗框寬高分別為:
實測圖片(可以看到不同感受野得到先驗框大小不同):
3.5 SoftMax多標簽改進
V2中SoftMax的作用是:預測一個目標例如是貓,后續計算交叉熵就只會計算是貓的概率,其他類別就不管了。
交叉熵曲線(loss-概率曲線圖):
例如:一只貓的label有:動物、波斯貓、貓科動物,哺乳動物等,V2的處理方式不能解決這個問題。V3版本中,使用多個logistic激活函數來預測一個物體的多標簽概率,這樣就能預測每個類別是與不是。例如:預測上述貓屬於上述類別(動物、波斯貓、貓科動物,哺乳動物)為:0.9、0.8、0.5、0.55;接着,V3的做法是取一個概率閾值,例如“0.7”,認為大於0.7的都是該類別,於是輸出為“1 1 0 0”。
reference: