在tensorflow中使用迁移学习是否需要预定义图像大小?

在tensorflow中使用迁移学习是否需要预定义图像大小?,tensorflow,tensorflow-datasets,image-size,transfer-learning,Tensorflow,Tensorflow Datasets,Image Size,Transfer Learning,我打算在Tensorflow环境中使用预先训练好的模型,如更快的\u rcnn\u resnet101\u pets,用于所述的目标检测 我已经收集了一些培训和测试集的图像。所有这些图像大小不一。我必须将它们调整为普通大小吗 更快\u rcnn\u resnet101\u pets使用输入大小为224x224x3的resnet。 这是否意味着在发送培训之前,我必须调整所有图像的大小?或者由TF自动处理 python train.py --logtostderr --train_dir=trai

我打算在Tensorflow环境中使用预先训练好的模型,如更快的\u rcnn\u resnet101\u pets,用于所述的目标检测

我已经收集了一些培训和测试集的图像。所有这些图像大小不一。我必须将它们调整为普通大小吗

更快\u rcnn\u resnet101\u pets使用输入大小为224x224x3的resnet。

这是否意味着在发送培训之前,我必须调整所有图像的大小?或者由TF自动处理

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_resnet101_pets.config

一般来说,具有相同大小的图像是一种好的做法吗?

不,您不需要自己将输入图像调整为固定形状Tensorflow对象检测api有一个预处理步骤,该步骤将调整所有输入图像的大小。以下是预处理步骤中定义的一个函数,其中有一个
image\u resizer\u fn
,它对应于配置中名为
image\u resizer
的字段

根据文件,您可以选择4种不同的图像大小调整器,即

  • 保持高宽比大小调整器
  • 固定形状大小调整器
  • 标识重定器
  • 条件形状大小调整器
  • 是模型
    faster\u rcnn\u resnet101\u pets
    的一个示例配置文件,所有图像都使用最小尺寸=600和最大尺寸=1024进行了重塑

    model {
      faster_rcnn {
        num_classes: 37
        image_resizer {
          keep_aspect_ratio_resizer {
            min_dimension: 600
            max_dimension: 1024
          }
        }
        feature_extractor {
          type: 'faster_rcnn_resnet101'
          first_stage_features_stride: 16
        }
    
    事实上,大小调整后的图像形状对检测速度和精度性能有很大影响。虽然对输入图像的大小没有具体要求,但为了使卷积运算正常工作,最好使所有最小尺寸的图像都大于合理值

    model {
      faster_rcnn {
        num_classes: 37
        image_resizer {
          keep_aspect_ratio_resizer {
            min_dimension: 600
            max_dimension: 1024
          }
        }
        feature_extractor {
          type: 'faster_rcnn_resnet101'
          first_stage_features_stride: 16
        }