2016-11-29 200 views
3

这是在ai.stackexchange中询问的question的转贴。由于该论坛没有太多的牵引力,我想我可能会在这里尝试我的机会。深度学习:数据集包含不同尺寸和方向的图像

我有一个特定对象的不同维度的图像的数据集。该物体的几张图像也处于不同的方向。目标是学习对象的功能(使用自动编码器)。

是否有可能创建一个网络,该网络可以考虑输入图像的不同尺寸和方向,或者我应该严格考虑包含均匀尺寸图像的数据集?一般而言,用于培训深度网络的合格数据集的必要标准是什么?

这个想法是,我想避免预处理我的数据集,通过缩放规范化,重新定向操作等。我希望我的网络能够解释尺寸和方向的变化。请同样指出我的资源。

编辑:

作为一个示例,考虑由香蕉的图像的数据集。它们具有不同的尺寸,例如,265x525 px,1200x1200 px,165x520 px等等。90%的图像以一个正交方向显示香蕉(例如,正视图),其余的以不同的方向显示香蕉(例如,等距视图)。

+0

据我所知,没有超参数可以在训练过程中根据输入维度控制cnn模型的结构。 – Dale

+0

@Jugesh:你能否把第一段写在评论中? –

回答

2

几乎所有的人都会在将它们发送到CNN之前将其所有图像的大小调整为相同大小。除非你面临真正的挑战,否则这可能是你应该做的。

也就是说,它是可能建立一个单一的CNN,将图像输入作为不同的维度。有很多方法可以尝试做到这一点,我不知道任何已发表的科学分析这些不同的选择。关键是这组学习参数需要在不同输入大小之间共享。虽然卷积可以应用于不同的图像尺寸,但最终它们总是被转换为单个矢量来进行预测,而矢量的大小将取决于输入,卷积和合并图层的几何形状。您可能希望基于输入几何图形动态更改池图层,并使卷积保持不变,因为卷积图层具有参数,并且池通常不会。所以在更大的图像上,你更积极地融合。

实际上,您希望将类似(相同)大小的图像组合在一起放入小型贴片中进行高效处理。这对于LSTM型号模型很常见。这种技术通常被称为“bucketing”。有关如何有效执行此操作的说明,请参阅http://mxnet.io/how_to/bucketing.html

2

是否有可能创建具有考虑不同的尺寸和输入图像

通常的方式来处理不同的图像的定向层的网络是以下内容:

  • 您拍摄一张或多张作品的图像以制作width = height。如果您拍摄多个作物,则将所有作物通过网络并对结果进行平均。
  • 您可以将作物缩放到网络所需的大小。

但是,也有全球平均汇总(例如Keras docs)。

符合条件的数据集一般用于训练深度网络的必要条件是什么?

这是一个难以回答的问题,因为(1)深度学习有很多不同的方法,而且这个领域相当年轻(2)我很确定现在没有定量的答案。

这里有两条经验规则:每个类

  • 你应该至少有50例
  • 将多个参数用的机型,你需要

Learning curvesvalidation curves的数据越多有助于估计更多培训数据的影响。