我即将开始为训练YOLOv3模型标注我的图像。在开始之前,我想确认是否可以在原始图像上创建标注。如果我在训练前调整图像大小,标注会相应改变吗?还是应该先调整所有图像的大小然后再开始标注?
回答:
没问题!你不必担心图像大小。你可以用任何尺寸标注你的数据集,当你开始训练时,Yolo会根据网络尺寸调整训练图像,例如416×416,608×608。
另外请注意,在原始仓库中,如果你在cfg文件中设置random = 1
,网络尺寸会在每10次迭代后改变。random = 1
意味着Yolo每10次迭代会改变一次网络尺寸,这有助于通过在不同分辨率下训练网络来提高精度。
根据Yolo论文:
然而,由于我们的模型仅使用卷积和池化层,它可以即时调整大小。我们希望YOLOv2能够适应不同尺寸的图像运行,因此我们将这种能力训练进了模型中。我们不是固定输入图像尺寸,而是每隔几次迭代就改变网络。每10批次我们的网络随机选择一个新的图像尺寸。由于我们的模型按32的因子降采样,我们从以下32的倍数中选择:{320, 352, …, 608}。因此,最小的选项是320 × 320,最大的选项是608 × 608。我们将网络调整到该尺寸并继续训练。
然而,如果你使用的是AlexeyAB的仓库,调整大小的过程不会保持长宽比 https://github.com/AlexeyAB/darknet/issues/232#issuecomment-336955485