图像大小使用预训练模型的Tensorflow对象检测

时间:2017-09-11 20:48:42

标签: tensorflow object-detection imagenet

我看到tensorflow对象检测API允许自定义输入的图像大小。我的问题是如何使用预训练的权重,这些权重通常在224 * 224图像或有时300 * 300图像上训练。

在我使用的其他框架中,例如caffe rfcn,yolo和keras ssd,图像缩小以适应预训练重量的标准尺寸。

300 * 300输入尺寸的tf使用的预训练重量是多少?如果是这样,我们如何使用这些权重来对自定义图像大小进行分类?是否缩小到相应的权重大小?

1 个答案:

答案 0 :(得分:1)

根据我的理解,输入大小只会影响网络的输入层。但如果这是错误的,请纠正我,我对整个深度学习范式仍然很陌生。

我使用了三种Tensorflow Object Detection API模型。更快的R-CNN和R-FCN,都带有Resnet101功能提取器和带有Inception V2的SSD模型。 SSD模型将图像重新整形为固定的M x M大小。在Huang等人的论文“现代卷积物体探测器的速度/精度折衷”中也提到了这一点,而n速度较快的R-CNN和R-FCN,模型是在缩短为M像素的图像上训练的。边缘。此调整大小位于模型的预处理阶段。

另一种方法是保持纵横比并在图像上裁剪固定尺寸,然后可以从不同位置(中心,左上角,右上角,左下角,右下角等)裁剪到使模型健壮。更复杂的方法包括将图像调整为多个尺度并进行裁剪,并在卷积层中使用不同的宽高比,稍后使用自适应池大小来制作与SPP相同的特征尺寸(有关详细信息,请参阅He等人的Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)。 。)这是由配置原型中的keep_aspect_ratio_resizer完成的。

这使我的理解架构能够适应不同的图像大小。因此,隐藏图层的内部权重不受图像输入大小的影响。