VoVnet, It means Variety of View Network。
论文An Energy and GPU-Computation Efficient Backbone Network for Real-Time Object Detection
近年来出现的高效网络,如MobileNet,ShuffleNet等主要关注于处理FLOPs和模型大小(通过深度可分离卷积的方式),但是这些却不能保证GPU inference的时间和存储空间占用情况也是较优的,所以除了模型参数和FLOPs之外,仍需考虑每张图片的计算资源和FPS这样两个指标。
1、高效网络的设计指标考虑
1.1 MAC(Memory Access Cost)
M
A
C
=
h
w
(
c
i
+
c
o
)
+
k
2
c
i
c
o
MAC=hw(c_i+c_o)+k^2c_ic_o
MAC=hw(ci+co)+k2cico
其中
h
,
w
h,w
h,w为输入/输出的feature map尺寸,
c
i
,
c
o
c_i,c_o
ci,co为输入/输出的channel,
k
k
k为卷积核的尺寸。
1.2 FLOP/s(GPU-Computation Efficiency)
FLOPs : per Second (FLOP/s)
High FLOP/s implies the architecture utilize GPU power efficiently.
2、VoVnet
-
M
A
C
≥
2
h
w
B
k
2
+
B
h
w
MAC \ge2\sqrt{\frac{hwB}{k^2}}+\frac{B}{hw}
MAC≥2k2hwB+hwB
当 B = k 2 h w c i c o B=k^2hwc_ic_o B=k2hwcico取最小值。 - DenseNet的通道可分离卷积降低了推理速度。
2.1 OSA module(One-Shot Aggregation)
- OSA module,如下图所示的b,将所有的feature map一次性聚合到最后一层( one-shot aggregation (OSA) module which ag- gregates its feature in the last layer at once.)
- 每一个stage的输出有两路:一路是接下一个stage的卷积,另一路是输出到最后一层。
作者做了多个实验证明VoVnet的确比DenseNet在GPU的效率上要好。
2.2 Configuration of VoVNet
- VoVnet有两种结构:lightweight 比如VoVNet-27-slim,和large-scale 比如VoVNet-39/57
- VoVnet包括3个卷积层和4个OSA modules。
- 每个OSA module,有5个卷积层,且每个卷积层的输入输出通道都一样(最小化MAC)
- 每个stage后面接一个 3 × 3 , s t r i d e = 2 3\times3,stride=2 3×3,stride=2的max pooling.
- VoVNet-39/57在stage4和stage5有更多的OSA module,但是只在最后一个module用downsample。