训练 Yolo 使用已裁剪的图像检测我的自定义对象

Training Yolo to detect my custom object with already cropped images

我有一大组 "apple" 不同形状、大小、光线、颜色等的图像。这些 "apple" 图像是不同角度的较大图像的一部分。

现在我想训练 Darknet 检测图像中的 "apple"s。我不想完成注释过程,因为我已经裁剪出现成的苹果 jpg 图像。

我可以使用这些现成的和裁剪过的 "apple" 图像来训练 Darknet 还是我仍然需要完成注释过程?

在对象检测模型中,您对图像中的对象进行注释,因为它会了解对象在特定图像中的位置。如果您的整个数据集仅包含苹果图像,则该模型将以一种方式进行学习,使您提供的每张图像都将包含唯一的苹果。因此,即使您提供 "orange" 作为测试图像,它可能仍会给出 apple,因为它不知道除 apple.class 之外的另一个 class。

所以有两点需要考虑:

  1. 拥有苹果、苹果和其他水果或其他物体的数据集。这将有助于模型清楚地了解苹果是什么。
  2. 由于bounding box的坐标是检测的输入,虽然你可以给定图像的常规尺寸作为bounding box,但它不会像上面提到的那样有效地学习。所以,图像中有多个物体,然后好好标注,这样模型才能学好

您的回答与我们称为 "Data Augmentation" 的过程有关。你可以 google 别人怎么做。

因为你的苹果图片都是 cropped-ready,你可以假设所有的苹果图片都已经用完整尺寸标记了。然后收集一些背景图像,其尺寸都比您的任何苹果图像都大。现在您可以编写一个工具来随机 select 一张苹果图像并将其与您的 randomly-selected 背景组合以生成 'new' 带背景的苹果图像。既然你必须知道每个苹果图片的大小,那么你肯定可以计算出边界框的大小和位置,然后生成它的标签文件。