请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

SSD的网络结构能否详细讲一下,和VGG对比的差别具体在哪里?

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具体都是多少?

正在回答 回答被采纳积分+3

1回答

会写代码的好厨师 2019-10-09 12:17:52

首先,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函数

https://img1.sycdn.imooc.com/szimg/5d9d5ede09d3b24909380734.jpg





0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号