已裁剪图像的YOLO批注文件

时间:2019-03-19 19:14:42

标签: machine-learning computer-vision object-detection yolo

我正在尝试创建自己的数据集以用于YOLO(仅查看一次)。最初,我从一个大型的geotiff文件开始,其中包含风景和动物的图片。我能够编写脚本将动物的图像提取到单独的文件中。

我现在要把那些动物图像用作YOLO数据集的一部分。但是,我在网上看到的所有示例都使用注释文件,这些文件表示在较大图像中要检测的对象的位置。

就我而言,每张动物图片的全部内容都将包含在边界框中。在这种情况下我该怎么办?

编辑:我要问的是:我是否仍然可以使用这些已裁剪的图像,然后在注释文件中注意边界框应覆盖整个图像?

2 个答案:

答案 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