SSD算法介紹
SSD屬於one-stage檢測方法,主要通過了直接回歸目標類別和位置的方式。在進行預測時也正是由於通過不同尺度的特征層上進行預測,所以在圖像低分辨率時也能很好的對目標進行檢測,保證其精度。在訓練的過程中采用了端到端的方式進行訓練。
SSD網絡結構

基礎網絡使用了VGG16的網絡結構,然后通過對基礎網絡的改進,並增加了幾個不同大小的卷積層來進行不同尺度特征圖的提取(改進:去掉了VGG16網絡中的兩個FC層,並增加了4個卷積層)。(圖中的6條線就代表了6個不同大小的特征圖,這6個不同的特征圖講用於后期的預測網絡中進行分類預測)。在提取不同特征圖的方法上主要通過下采樣的方式進行尺寸的變化。
基礎網絡中除了可以使用VGG16的網絡結構外,還可以通過ResNet(更優秀)、MobileNets(更加的輕量級,可以壓縮訓練中的時間和計算量)等網絡進行代替。
因此,SSD的網絡結構可以簡化為:image→CNN→預測網絡→NMS。
上述的是CNN網絡中所做的變化,而在后面的預測網絡中還包含了prior box層的提取過程(這里所說的prior box層相當於R-CNN中所說的anchor box)。提取過程為以feature map的每個cell為中心,通過等比的方法找到它在原圖像中的位置,並以這個點為中心來提取不同尺度的bounding box。每一個prior box都會分別預測相應的類別概率和坐標值。每個feature map中的點都會對應不同的prior box。
假設共有C個類別,則每個prior box就會有C+4個參數,如果當前的Feature map的尺寸為N*M,則就會存在N*M個cell,每個cell可以提取K個prior box,因此當前的Feature map的輸出就是(C+4)*K*N*M。(具體的計算公式可以參考文章https://www.cnblogs.com/sddai/p/10206929.html)
6種default box就是5+1,5種不同的長寬比和增加的一種scale
