在机器学习和计算机视觉项目中,图像预处理是一个关键步骤。Roboflow团队投入了大量精力来展示图像尺寸调整的必要性。图像尺寸调整不仅仅是一个简单的拉伸填充决策,还需要考虑保持长宽比以及推理时的图像可能与训练时的图像不同。在模型部署时,所有图像应该被缩放和调整到相同的尺寸。
通常,许多神经网络的图像必须是正方形的,即使原始图像的长宽比不是这样。(这是因为全连接层需要正方形数组。)接近正方形的图像很容易变成正方形。在一个方向上过于细长的图像(太高或太宽)会引起注意:也许可以丢弃数据集中的一次性示例。通常,希望看到如果将图像调整为正方形,大多数图像会有多扭曲。
通过Roboflow的“尺寸洞察”工具帮助做出明智的调整决策。以“硬帽数据集”为例,该数据集包含各种大小的图像和围绕戴硬帽(或不戴)的工人的边界框。
Roboflow的“数据集健康检查”中的尺寸洞察。虽然有很多信息需要消化,但也可以立即学到很多东西。让从描述可视化基础开始。y轴描述了图像的高度维度。x轴描述了图像宽度。每个点是数据集中给定图像的尺寸。如果一个图像是完美的正方形,它将从图表原点延伸45度(并且正好落在从原点突出的浅灰色线上)。如果一个点在这条线上方,图像比它宽。如果一个点在这条线下方,图像比它高。
在轴上的阴影区域,注意到可能落入“危险”领域的图像,这些图像太高或太宽——其中较长的维度是较短维度的2倍。这个可视化中的最后一个定位组件是紫色区域,表示数据集中的“中位数”图像大小。鉴于中位数比平均数更不容易受到异常值的影响,它提供了一个中心点来考虑任何给定图像与期望的调整(再次,可能是正方形)有多远。此外,显示中位数图像尺寸可以告诉超过一半的图像通常太宽还是太高。
让考虑硬帽对象检测数据集中的情况。大多数图像(7,035中的6,541)是“中等大小”,并且彼此接近。这些图像确实在“正方形的宽端”,但并不显著。中位数图像宽500像素,高333像素——离正方形并不太远。尽管数据集中形状多样,但并不过于失衡。
话虽如此,有一些图像需要考虑丢弃或调查。图像比中位数小得多(7,035中的32)尤其令人关注,因为拉伸像素使其变大通常比拉伸像素使其变小更糟糕:这种扭曲比缩小大图像更不“现实世界”。此外,有一张图像“非常宽”,其宽度是其高度的2.5倍以上。应该考虑从数据集中移除这张图像,或者至少考虑这张图像的捕获来源,以了解模型在生产中是否会面临更多类似这些尺寸的示例。