深度学习:包含不同维度和方向的图像的数据集

时间:2016-11-29 23:11:01

标签: dataset deep-learning

这是ai.stackexchange中询问的question的重新发布。由于该论坛没有多少牵引力,我想我可能会在这里尝试一下机会。

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

是否可以创建一个网络,其中的图层可以解释输入图像的不同尺寸和方向,或者我是否应该严格考虑包含统一尺寸图像的数据集?一般情况下,用于培训深层网络的合格数据集的必要标准是什么。

我的想法是,我想避免通过缩放,重新定位操作等来对数据集进行预处理。我希望我的网络能够解释尺寸和方向的可变性。请指出相同的资源。

修改

例如,考虑一个由香蕉图像组成的数据集。它们具有不同的大小,例如265x525 px,1200x1200 px,165x520 px等.90%的图像以一个正交方向(例如前视图)显示香蕉休息以不同的方向显示香蕉(比如等轴测视图)。

2 个答案:

答案 0 :(得分:2)

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

也就是说,可能构建单个CNN,将图像输入视为不同的维度。您可以通过多种方式尝试这样做,而且我不知道任何已发表的科学分析这些不同的选择。关键是需要在不同的输入大小之间共享学习参数集。虽然卷积可以应用于不同的图像大小,但最终它们总是被转换为单个向量以进行预测,并且该向量的大小将取决于输入,卷积和池化层的几何形状。您可能希望根据输入几何图形动态更改池化层并使卷积保持相同,因为卷积层具有参数并且池通常不会。所以在更大的图像上,你会更积极地聚集。

实际上,您希望将类似(相同)大小的图像组合在一起,形成微型计算机,以便进行有效处理。这对于LSTM型号来说很常见。这种技术通常被称为" bucketing"。有关如何有效执行此操作的说明,请参阅http://mxnet.io/how_to/bucketing.html

答案 1 :(得分:2)

  

是否可以创建一个网络,其中的图层可以解释输入图像的不同尺寸和方向

处理不同图像的常用方法如下:

  • 您可以拍摄一张或多张图片来制作width = height。如果您采取多种作物,则将所有作物通过网络并平均结果。
  • 您可以将裁剪缩放到网络所需的大小。

但是,还有全球平均合并(例如Keras docs)。

  

一般情况下,合格数据集用于培训深层网络的必要条件是什么。

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

以下是两条经验法则:

  • 每个班级至少应有50个例子
  • 您的模型拥有的参数越多,您需要的数据就越多

Learning curvesvalidation curves有助于估算更多培训数据的效果。