参考文献
Very Deep Convolutional Networks for Large-Scale Image Recognition
本文的目的
目标检测/语义分割等领域都会涉及到预训练模型,一般是在ImageNet上训练出来的一个分类模型,但是ImageNet和cifar/mnist不同,
- 一个图可能包含多个目标
- 目标的尺寸不固定
- 图像尺寸不固定
- 图像长宽比不固定
这种集合如何用来训练分类模型?
VGG的方法
-
图片的短边缩小到固定大小S
文中称S为scale,S的变换认为属于样本增广的一种:scale jittering。 后续实验证明scale jittering是有利于泛化。把S推广到一个区域间 [ S m i n , S m a x ] [S_{min},S_{max}] [Smin,Smax]就是multi-scale,否则是single-scale,实验证明multi-scale更好。需要注意的是此处scale不是图像内容的尺度,即使S只有一个值,整个数据集中目标也包含多个尺度 -
缩小后的图片中,随机裁剪出224x224的子图,作为网络输入
理论上S可以取任意不小于224的值,如果S很大,则crop后224x224子图可能包括很小的目标,只覆盖一部分图像内容;如果S很小,则crop后的224x224子图可以覆盖大目标,包括了大部分图像内容。
论文中尝试了256和384两个值,推广到区间,论文中尝试的是[256,512], 每次随机从区间内取一个值,作为当前的S值。
training阶段可以有多个尺度,testing阶段也可以有多个尺度,最后的输出是多个尺度的结果的平均值,实验也证明,testing阶段多个尺度效果较好
附图