采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
SSD的结构在VGG16网络的基础上进行修改,训练时同样为conv1_1,conv1_2,conv2_1,conv2_2,conv3_1,conv3_2,conv3_3,conv4_1,conv4_2,conv4_3,conv5_1,conv5_2,conv5_3(512),是不是继承了Vgg16 fc之前的所有的结构,然后后面做具体的修改? 具体修改的每一层的输入是啥,padding和stride具体都是多少?
首先,SSD是一种目标检测框架结构,VGG是一种分类网络的结构。这两者存在很大的区别。
在SSD的框架结构中,可以简单的理解为它包括了特征提取的模块和检测的模块(Anchor和bbox回归和分类的部分),SSD中使用了VGG的部分是指特征提取的模块使用了VGG结构来进行特征提取。拿到不同的尺度的featuremap来作为检测模块的输入。
这里的重点是拿到不同尺度的feature map。拿到不同尺度的feature map可以使用VGG,也可以使用resnet等,任意的卷积神经网都可以。
再来看SSD用了VGG的哪些层?在最原始的SSD中,使用了前5个block提取特征,对应feature map的大小分别是
300(输入图片)->300->150->75->38->19->10->5->3->1,后面几个卷积层是通过:https://github.com/lzx1413/CAFFE_SSD/blob/master/python/caffe/model_libs.py
中的def AddExtraLayers(net, use_batchnorm=True, lr_mult=1)添加的。
具体抽取那一层的Feature map作为检测层的输入,则是在配置文件中指定。
再来看上面尺度的变化,检测层使用的是38-->1这6个尺度。
具体如何pad和设置stride,可以直接看这个文件
https://github.com/weiliu89/caffe/tree/ssd/python/caffe/model_libs.py
中的VGGNetBody函数
登录后可查看更多问答,登录/注册
从原理到场景实战,掌握目标检测核心技术
2.6k 9
1.2k 7
916 5
2.7k 4
2.2k 4
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号