为 YOLO 和 SSD 模型创建数据集时为什么要进行标注

Why should I make annotations when creating a dataset for YOLO and SSD models

我目前正在准备我的数据集,以便在其上训练 SSD 模型。

我想知道我是否必须为我的每个 classes 在我的每张图像上做注释, 或者如果我可以裁剪我的图像以隔离我的每个 class 并将它们放在它们所属的 class 文件夹中。

用第一种方法我会得到类似的东西

dataset
    |
    |_annotations
    |   |
    |   |_001.xml
    |   |_002.xml
    |   |_...
    |
    |_images
        |
        |_001.jpg
        |_002.jpg
        |_...

使用第二种方法:

dataset
    |
    |_class1
    |   |
    |   |_crop01.jpg
    |   |_crop02.jpg
    |   |_...
    |
    |_class2
        |
        |_crop01.jpg
        |_crop02.jpg
        |_...

使用一种或另一种方法在训练过程中会有不同吗? 我注意到对于 classification 模型,使用第二种方法,而对于检测器(例如 YOLO 或 SSD),使用第一种方法?

这只是一种习惯还是必须的,还是两者都可以用于class识别和检测? 使用裁剪方法训练检测模型会有什么影响?

在此先感谢您的帮助

SSD 模型得到整个图像以及对象的边界框。这是您无法使用第二种方法重新创建的东西(正如您所说,用于 classification)。检测模型学习输出边界框偏移量以及 class,因此它需要原始图像以及注释。