【SSD修改输入尺寸】how to change SSD input size?SSD640/BRFSSD_640

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_36923418/article/details/85226306

再也不局限于SSD300 和SSD512这两个版本了!!!

BRFSSD_vgg实现修改input size!!!

1、首先准备好一份SSD代码

推荐使用:https://github.com/lzx1413/PytorchSSD

框架:pytorch0.4.0

运行遇到报错:关于Sample.py 下面什么说东西不能放在gpu之类的。进行如下修改

anaconda3/envs/pytorch0.4.0/lib/python3.6/site-packages/torch/utils/data/sampler.py打开之后,修改下面那样

2、首先需要理解,SSD产生预测bbox的机制!RFBSSD也是同样的道理!

打开项目路径下的/PytorchSSD/data/config.py在里面能够看到很多相关配置!

我们这里以512的输入为例子

‘feature maps’:代表了来自不同层的特征,上面有7个值,来表了7个来源!大小分别是64x64,32x32,16x16,8x8,4x4,2x2,1x1.

‘min_dim’:代表输入图像的大小size

‘steps’:代表了上面那些feature maps分别是原图 下采用倍率,都是一一对应的

‘min_sizes’:代表了在对应feature map上每一个cell(pixle)所采用的anchor的最小size,

‘max_sizes’:同上

‘aspect ratios’:代表了anchor将会使用的长宽比,每一个feature maps来源都会默认使用1,再加上手动设定的比如[2,3]!

其他的暂不讨论。

接下来以第一个64x64 的fearure maps为例子,根据上面的设置,这一层将会得到总共anchor数量为64*64*2(min/max size)*3(ratios)。其他层也一样

3、如何得到ssd 的input size=640

首先建立参数:

【注意】:feature maps的size必须写对,不然后面计算loss的时候网络产生的bbox数目和预先生成的label数目的mask会对不上

在网络模型中加入640这部分的内容,其他的话,记得在训练文件train.py头文件加上VOC_640,以及设定训练参数为VOC 640。

猜你喜欢

转载自blog.csdn.net/github_36923418/article/details/85226306
ssd
今日推荐