首页 > 解决方案 > 如何添加零填充以使数据集中的图像大小相等?

问题描述

我正在使用大小超过 30Gb 的数据集,问题是数据集中的图像(RGB)的维度不同。当我实现自定义 CNN 时,我需要为第一个卷积层提供input_size 。有什么方法可以一般添加零填充。我最初实现了一个预训练模型(ResNet-50)并使用了以下方法

from tensorflow.keras.applications.resnet50 import preprocess_input 
ImageDataGenerator(preprocess_input ,validation_split=0.2)

这使我的数据集与模型兼容,是否有任何类似的方法可以在数据集上添加零填充,但对于自定义 CNN 模型。

标签: machine-learningimage-processingkerasdeep-learningconv-neural-network

解决方案


尽管零填充可能不是处理各种尺寸图像的理想解决方案,但您可以通过以下方法在 python 中对图像进行零填充。

  1. Numpy 方法参考
padded_image = np.zeros(result_shape)
padded_image[:image.shape[0],:image.shape[1]] = image
  1. TensorFlow 方法文档
padded_image = tf.image.pad_to_bounding_box(image, top_padding, left_padding, target_height, target_width)

推荐阅读