1.論文閱讀:
摘要:
- VOC 2007:76.4%;MS coco:22.4%
- 速度:iPhone8的速度為23.6 fps,Nvidia TX2的速度為125 fps。
引言:
【MobileNet、ShuffleNet、MobileNet v2等相繼被提出,這些模型都過度依賴于depthwise卷積,而深度可分離卷積缺乏高效實作】
本文主要工作:
1.提出了一種用于移動裝置端的網絡架構:PeleeNet——是Densenet的變體
【遵循了Desenet的連接配接模式和一些關鍵性的設計原則;能夠滿足對記憶體和計算預算的限制】
特點如下:
- Two-Way Dense Layer:
如下圖所示,受GoogLeNet啟發,使用2-way dense layer來獲得不同尺度的感受野。
One way 使用1個3X3的卷積 |
The other way使用兩個堆疊的3X3卷積層來學習大目标的visual patterns |
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP310drRlT4NGRPpHOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxkzNzIzN0ATM2IzNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
- Stem Block:
如下圖所示,受Inception-v4和DSOD的啟發,提出一種低成本的stem block。
用于第一個dense layer之前提取特征 |
能夠提升特征表達能力,且沒有增加太多的計算成本 |
- Dynamic Number of Channels in Bottleneck Layer:
bottleneck中的通道數量根據輸入feature map的形狀而變化,并不是像Densenet中直接擴大4倍 |
實驗結果表明,與原有的Densenet結構相比,該方法可以節省28.5%的計算成本,對計算精度影響較小。 |
- Transition Layer without Compression:在PeleeNet中,過渡層不會進行通道數量的壓縮。
- Composite Function:使用"Conv-BN-ReLU"(後激活),而不是想DenseNet那樣進行預激活。後激活的好處是,在做inference階段,可以将所有的BN層與卷積層合并,可以大幅提高計算速度。為了彌補後激活對精度降低的影響,PeleeNet在設計時盡可能“淺而寬”。并且在最後一個dense block之後添加了1*1卷積層以獲得更進階的特征。
2.結合PeleeNet對SSD進行改進,提出了Pelee:
- Feature Map Selection :檢測模型中有5組不同尺度的特征圖——19*19、10*10、5*5、3*3、1*1;為了降低計算成本不選擇38*38的尺度
- Residual Prediction Block :設計ResBlock産生用于預測的feature map
- Small Convolutional Kernel for Prediction:ResBlock 使得能夠應用1X1的卷積來進行預測分類得分和回歸偏移量;精度與使用3X3卷積模型幾乎一緻,但能夠降低21.5%的計算成本。
PELEENET:一種高效的特征提取網絡
1.結構:
如表1所示,首先通過stem block[快速提取特征],然後通過4個由dense layers和1個Transition layer組成的stage[除了stage4以外,其他3個stage最後部分都使用了stride=2的平均池化],最後通過1X1卷積層以及全局平均池化做分類檢測輸出。
之後用可視化工具看了pelee的網絡結構超級有規律
2.訓練:
有訓練SSD安裝的caffe,是以隻需要把pelee複制到caffe-ssd的examples檔案夾中,生成好lmdb檔案
sudo python train_voc.py
最後結果:
對比一下結果差了0.6%