【问题标题】:How to tackle different Image dimensions for classification如何处理不同的图像尺寸进行分类
【发布时间】:2019-06-05 17:26:29
【问题描述】:

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

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

【问题讨论】:

  • 您必须选择如何将它们全部变成相同的形状/尺寸。
  • 如果答案符合您的要求,请采纳。否则,请更新您的问题。

标签: python deep-learning image-resizing


【解决方案1】:

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

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

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

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

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

Python - resize image

Opencv-Python-Resizing image

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 2016-12-19
    • 2021-09-09
    • 2023-01-29
    • 2016-01-20
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多