我对计算机视觉和深度学习都很陌生。我一直在想为什么在CNN模型(或其他模型)中馈送的图像的尺寸通常在某些数字中,如28 * 28,512 * 512,256 * 256。有什么理由吗?如果我调整任意大小的图像会发生什么?性能会受到影响吗?
答案 0 :(得分:1)
大多数CNN架构使用包含多个因子2的图像大小。这样,您可以使用MaxPooling对图像进行多次下采样,而无需将分辨率舍入到最接近的整数。
512 -maxpool-> 256 -maxpool-> 128 -maxpool-> 64 -maxpool-> 32 ...
有时您会遇到无法解决的问题。例如,U-Net使用572 * 572的分辨率,您可以将MaxPooling应用两次,直到您必须舍入分辨率。这是因为在应用MaxPooling之前,U-Net使用未填充的卷积,其中一些图像在卷积层期间被裁剪。
572 -conv-> 570 -conv-> 568 -maxpool-> 284 -conv-> 282 -conv-> 280 -maxpool-> 140 ...
我不知道有任何评估MaxPooling期间舍入解决方案影响的论文,但我的论点是它可能无法改进。就个人而言,我在给出输入分辨率的情况下使用了几次舍入,并且与最初的图像部分相比没有发现差异。
答案 1 :(得分:0)
它是在网络设计期间定义的输入节点大小。培训也使用该尺寸的图像完成。因此,如果您想要一致的结果,您应该将输入图像的大小调整为相同的大小,并遵循培训中考虑的相同规范化规则。
如果使用不同尺寸的图像,则根据网络中使用的图层,可能会引发不匹配的尺寸异常,或者输出尺寸不同。