我正在尝试创建自己的数据集以用于YOLO(仅查看一次)。最初,我从一个大型的geotiff文件开始,其中包含风景和动物的图片。我能够编写脚本将动物的图像提取到单独的文件中。
我现在要把那些动物图像用作YOLO数据集的一部分。但是,我在网上看到的所有示例都使用注释文件,这些文件表示在较大图像中要检测的对象的位置。
就我而言,每张动物图片的全部内容都将包含在边界框中。在这种情况下我该怎么办?
编辑:我要问的是:我是否仍然可以使用这些已裁剪的图像,然后在注释文件中注意边界框应覆盖整个图像?
答案 0 :(得分:0)
简单答案:否。在像Yolo这样的物体检测情况下,我们希望Yolo识别出哪个是物体,哪个是非物体。创建边界框时,Yolo会将边界框识别为属于1类的正对象,并且将边界框之外的零件识别为非对象。
该模型将尝试学习如何区分对象与不区分对象,以及如何根据训练数据注释在精确坐标(x,y,w,h)上绘制边界框。在这种情况下,Yolo使用锚定框概念,Yolo会将最近的锚定框的大小调整为预测对象的大小。
创建自定义训练数据集时,您需要:带有边界框+边界框坐标的带注释的图像,该文本保存在文本文件中,例如:
<object-class> <x_center> <y_center> <width> <height>
因此,您将需要这些信息来训练Yolo模型。
通常,当您已经裁剪了数据集时,我认为它更适合于图像分类任务。或者,如果您能够创建将动物与大图像区分开的脚本,为什么不为相关图像自动创建边界框注释和yolo坐标训练文本文件?
答案 1 :(得分:0)
由于YOLO是对象检测工具,而不是对象分类工具,因此需要未裁剪的图像才能了解对象以及背景。
为了了解YOLO如何看待数据集,请查看此image
在此图像中,假设我们需要注释一辆汽车(id-1类),然后注释将以-
的形式进行。<class id> <Xo/X> <Yo/Y> <W/X> <H/Y>
在哪里,
类ID,要注释的类的标签索引
Xo,边界框中心的X坐标
边界框中心的Yo,Y坐标
W,边框的宽度
H,边框的高度
X,图像宽度
Y,图片高度
有关YOLO注释的更多详细信息,请查看此medium post