Meh*_*med 4 image classification machine-learning neural-network conv-neural-network
我是机器学习的新手。我正在尝试从一组图像(120个品种的斯坦福狗组)创建输入矩阵(X),以训练卷积神经网络。我的目标是调整图像大小,并通过将每个像素作为单独的一列将每个图像变成一行。
如果我直接将图像调整为固定大小,则图像会因挤压或拉伸而失去原始性,因此不好(第一种解决方案)。
我可以通过固定宽度或高度来调整大小,然后进行裁切(所有最终图像的大小都将与100x100相同),但是可以裁切图像的关键部分(第二种解决方法)。
我正在考虑另一种方法,但是我相信。假设我要每个图像10000列。而不是将图像调整为100x100,我将调整图像的大小,以使总像素数约为10000像素。因此,尺寸为50x200、100x100和250x40的图片将全部转换为10000列。对于其他尺寸(如52x198),将考虑10296中的前10000个像素(第三个解决方案)。
我上面提到的第三个解决方案似乎保留了图像的原始形状,但是,由于并非所有图像都具有相同的大小,因此在转换为一行时可能会失去所有这种独创性。我想知道您对这个问题的评论。如果您可以直接引导我了解该主题的资源,那也将很棒。
解决方案1(仅调整输入图像的大小)是一种常见方法。除非您的宽高比与预期的输入形状有很大不同(或者您的目标类具有严格的几何约束),否则通常仍然可以获得良好的性能。
如您所述,解决方案2(裁剪图像)的缺点是可能会排除图像的关键部分。您可以通过在原始图像的多个子窗口上运行分类来解决该问题(即,通过以适当的步幅在水平和/或垂直方向上移过输入图像,对多个100 x 100子图像进行分类)。然后,您需要决定如何合并多个分类结果。
解决方案3将不起作用,因为卷积网络需要知道图像尺寸(否则,它将不知道哪些像素在水平和垂直方向上相邻)。因此,除非网络需要从假定尺寸展平的阵列,否则您需要传递具有明确尺寸(例如100 x 100)的图像。但是,如果您仅传递10000个像素值的数组,而网络不知道(或无法假设)图像是100 x 100、50 x 200还是250 x 40,则网络无法应用卷积滤波器正确。
解决方案1显然是最容易实现的,但是您需要在更改图像纵横比的可能效果与运行和组合每个图像的多个分类所需的工作量之间取得平衡。
归档时间: |
|
查看次数: |
4360 次 |
最近记录: |