我目前正在准备我的数据集,以便在其上训练 SSD 模型。
我想知道是否必须为每个班级的每张图像进行注释, 或者我是否可以裁剪图像以隔离每个班级并将它们放入它们所属的班级文件夹中。
使用第一种方法我会得到类似的东西
dataset
|
|_annotations
| |
| |_001.xml
| |_002.xml
| |_...
|
|_images
|
|_001.jpg
|_002.jpg
|_...
采用第二种方法:
dataset
|
|_class1
| |
| |_crop01.jpg
| |_crop02.jpg
| |_...
|
|_class2
|
|_crop01.jpg
|_crop02.jpg
|_...
使用其中一种方法或另一种方法在训练过程中会有差异吗? 我注意到对于分类模型,使用第二种方法,而对于检测器(例如YOLO或SSD)使用第一种方法?
这只是一种习惯还是必须,还是两者都可以用于分类和检测? 使用裁剪方法训练检测模型会有什么影响?
提前感谢您的帮助
SSD 模型获取整个图像以及对象的边界框。这是你无法使用第二种方法重新创建的东西(正如你所说,用于分类)。检测模型学习输出边界框偏移量以及类别,因此它需要原始图像以及注释。
对象检测模型架构的工作方式是预测特定网格中的类,因此需要坐标。如果您只想预测图像中的对象而不需要坐标,您可以应用多标签分类。