基础网络

使用VGG16作为基础网络进行特征提取。关于VGG16实现细节参考用于大尺度图像分类的极深卷积网络

使用VGG16-D作为基础网络

论文内容

  • 3. Experimental Results
  • 3.1 PASCAL VOC2007

网络调整

5个卷积模块保持不变

[64, 64, 'M', 128, 128, 'M', 256, 256, 256, 'C', 512, 512, 512, 'M', 512, 512, 512],

后续修改如下:

  • 将最后一个池化层(pool5)从2\times 2-s2修改为3\times 3-s1
  • 将第一个和第二个全连接层(fc6fc7)修改为卷积操作
    • Conv63\times 3\times 1024, S=2
    • Conv71\times 1\times 1024
  • 取消最后一个全连接层(fc8)和所有的随机失活操作
  • Conv7之后添加4个卷积模块
    • Conv8:先执行1\times 1\times 256,再执行3\times 3\times 512 - s2
    • Conv9:先执行1\times 1\times 128,再执行3\times 3\times 256-s2
    • Conv10:先执行1\times 1\times 128,再执行3\times 3\times 256-s1
    • Conv11:先执行1\times 1\times 128,再执行3\times 3\times 256-s1

特征层

分别取以下网络层作为特征层:

  • conv4_338\times 38\times 512
  • conv7(fc7)19\times 19\times 1024
  • conv8_210\times 10\times 512
  • conv9_25\times 5\times 256
  • conv10_23\times 3\times 256
  • conv11_21\times 1\times 256

具体实现

  • py/ssd/models/backbone/vgg.py

添加了以下实现

  1. Conv4_3特征层,额外进行了L2 Norm操作
  2. Conv6,使用了空洞卷积