Yolo 训练:一张图像中的多个对象

Yolo Training: multiple objects in one image

我有一组包含许多小对象 (10-20) 的训练图像。图像分辨率高 (9000x6000)。

在运行 yolo 训练之前,将图像分割成特定的对象会更好吗?或者保持原样。

yolo 是调整整个图像的大小,还是在调整大小之前先“提取”带注释的对象?

如果是前者,我担心分辨率不好。想象一下 416x416 图像中有 20 个对象。

Does yolo resize an entire image, or does it ‘extract’ the annotated object first before resizing?

是的,Yolo 会调整整个图像的大小,并且在调整大小之前不会提取带注释的对象。

由于您的输入图像具有非常高的分辨率,您可以做的是:

  • Yolo 可以使用网络输入层大小 608 x 608 有效地处理 25 x 25 的对象大小。因此,如果原始输入图像中的对象大小大于 250 x 250,您可以按原样训练图像(使用 608 x 608 网络大小)。在这种情况下,即使将图像调整为网络大小,对象的大小也会大于 25x25。这应该会给你很好的准确性。 (6000/600) * 25 = 250

  • 如果原始图像中的对象尺寸小于 200 x 200,将输入图像分成 8 个更小的 units/blocks,说 blocks/tiles 共 2250 x 1500。将这些块训练为单独的图像。每个更大的图像 (9000 x 6000) 对应 8 个训练图像。每个图像可能包含零到多个对象。可以滑动window方式操作

  • 您选择的训练方法也应该用于推理。

要对各种大小的对象进行训练,请使用以下模型:[如果您使用原始图像进行训练,请使用它]

如果您要检测的所有对象的尺寸都较小,则为了有效检测,请使用 Yolov4 并进行以下更改:[如果将原始图像拆分为 8 个块,请使用此选项]

参考文献: