【知识星球】为什么图像分类任务要从256*256中裁剪出224*224

作者&编辑 | 言有三

1 图像分类任务输入尺寸相关的问题

有关于经典的图像分类任务中的输入图像尺寸问题,很多同学都有疑问,我们之前已经回答过为什么图像分类网络输入大小是224*224,可以查看往期解答,【AI-1000问】为什么深度学习图像分类的输入多是224*224

今天再来回答一个与之相关的,为什么很多模型将输入缩放到256*256然后裁剪成224*224呢?

有三AI1000问-模型篇

为什么要从256*256中裁剪出224*224

大家都知道,很多模型的训练是先将图像resize到256*256,然后再随机裁剪成224*224大小,为什么是这么做呢?

作者/编辑 言有三

首先要回顾一下为什么分类任务的输入图像大小常常是224*224。

分类任务输出特征图如果尺寸太小,那么信息就丢失太严重,如果尺寸太大,信息的抽象层次不够高,计算量也更大,7*7的大小是一个很好的平衡。图像从大分辨率降低到小分辨率,降低倍数通常是2的指数次方,所以图像的输入一定是7*2的指数次方。以ImageNet为代表的大多数分类数据集,图像的长宽在300分辨率左右。

所以要找一个7*2的指数次方,并且在300左右的分辨率作为输入,其中7*2的4次方=7*16=112,7*2的5次方等于7*32=224,7*2的6次方=448,与300最接近的就是224了。

接下来我们再思考为什么通常是将图像resize到256*256。

首先我们要知道crop的目标是用于做数据增强。

当我们描述一个数据集的大小,通常是以数量级来衡量,而数据增强也比例外,我们的目标是将数据集增长为原来的几个数量级以上,即扩充10,100,1000倍等。

输入为N*N的大图,crop输出为M*M的小图,可以实现(N-M)*(N-M)的数据集扩充倍数。对应扩充10,100,1000,10000倍,N-M约为3,10,32,100,因为最终结果图是224*224,所以原图就应该是227*227,234*234,256*256,324*324,很明显从256*256这个尺度进行裁剪,能够保证主体不至于太小或者太大,如前面图中红色框。

那不使用256*256使用其他的尺寸如何呢?在比赛刷榜中,经常使用多尺度模型测试,即使用不同尺度的输入图进行裁剪然后进行结果融合,笔者曾经在Place365数据集上训练过ResNet和DPN模型,下面是不同尺度的测试结果。

不同尺度的结果会有差异,但是通常都不大,因此除非模型特殊,不必太纠结与这个问题,毕竟256等于2^8,2的指数次幂,多么经典又快意。

2 更多AI1000问

更多的问题,可以移步知识星球阅读,也可以主动提出需求,合适的问题会被添加进本系列!

有三AI知识星球的内容非常多,大家可以预览一些内容如下。

(0)

相关推荐