使用TensorFlow进行训练时图像大小是否重要?

时间:2017-01-25 02:13:05

标签: image-processing machine-learning tensorflow computer-vision

我想知道高分辨率图像培训是否有任何好处,而不是低分辨率。我知道在较大的图像上训练需要更长的时间,并且尺寸必须是32的倍数。我当前的图像集是1440x1920。我可以更好地调整到480x640,还是更好?

2 个答案:

答案 0 :(得分:4)

当然,并不要求您的图像具有两种权力。在某些情况下,它会加速(例如GPU分配),但这并不重要。

较小的图像将更快地训练,甚至可能更快地收敛(所有其他因素保持不变),因为您将能够训练更大的批次(例如,一次通过100-1000张图像,您可能无法做到在具有高分辨率图像的单台机器上。)

至于是否要调整大小,您需要问问自己该图像中的每个像素是否对您的任务至关重要。通常情况并非如此 - 你可以调整一张公共汽车的照片,然后说出128x128并仍然认识到这是一辆公共汽车。

使用较小的图像也可以帮助您的网络更好地进行推广,因为过载的数据较少。

图像分类网络中经常使用的技术是对图像执行失真(例如,随机裁剪,缩放和亮度调整),以(a)将奇数大小的图像转换为恒定大小,(b)合成更多数据和( c)鼓励网络概括。

答案 1 :(得分:2)

这在很大程度上取决于应用程序。作为一个经验法则,我问自己一个问题:我可以在调整大小的图像上自己完成任务吗?如果是这样,我会缩小到最低分辨率,然后才能让你自己完成任务。如果不是......你将不得不使用图像1440 * 1920.我想你在更小的图像上试验更多变化的架构和超参数集几乎总是更好与全分辨率图像上较少的模型相比。

无论您选择何种尺寸,您都必须根据自己的图像尺寸设计网络。如果您正在使用卷积图层,则较大的图像将需要更大的步幅,滤镜尺寸和/或图层。每个卷积的参数数量将保持不变,但功能数量会增加(如果您正在使用它,还会有批量标准化参数)。