首页 > 解决方案 > 如何处理不同的图像尺寸进行分类

问题描述

我正在解决一个问题,我必须将图像分类为不同的组。我是一名初学者,使用简单的序列模型使用 Keras。我应该如何解决以下代码中具有不同尺寸的图像的问题,例如,有些图像的尺寸为 2101583,而有些图像的尺寸为 210603 等。请提出建议。

model.add(Dense(100,input_dim = ?,activation= "sigmoid"))
model.add(Dense(100,input_dim = ?,activation= "sigmoid"))

标签: pythondeep-learningimage-resizing

解决方案


对于 Keras 中的简单分类算法,输入的大小应始终相同。由于前馈神经网络由一个输入层、一对多的隐藏层和一个输出层组成,所有节点都连接在一起,因此每个输入节点都应该始终有一个输入。此外,神经网络的形状和其他超参数是静态的,因此您无法更改输入的数量,因此无法更改一个神经网络中每个图像的大小。

对于您的情况,最佳做法是将所有图像缩小到最小图像的大小,或者将所有图像放大到最大图像的大小。

缩小 尺寸 通过缩小尺寸,您会主动从图像中删除像素,包括像素中包含的信息。这可能会导致过度拟合,但也会减少计算时间。

升迁 通过升迁,您可以在图像中添加像素,而无需添加信息。这会增加计算时间,但您会保留每个图像的信息。

作为一个好的开始,我建议您尝试将图像缩小到最小的图像。这也是科学中的常见做法[1]。这样做的一个库是OpenCV,关于实现问题,请参考 Stackoverflow 上的多个问题:

Python - 调整图像大小

Opencv-Python-调整图像大小


推荐阅读