旋转图像以减少训练图像数量

Rotate image to reduce training image count

我正在训练用于 tensorflow 的对象检测模型。检测到的对象是一堆不同的卡片,每张卡片上面都有不同的绘图。

因为它们都是普通卡片,所以用户可以将它以任何方向(360 度)放在 table 上,这意味着我需要标记用户可以将它放在桌子上的每个角度的图像和训练。

这看起来是一项繁重的工作。我想知道是否有任何工具可以为我做这件事?例如)我在一个角度提供了一个带标签的图像,它会自动旋转并为所有其他角度添加标签?

另一方面,有没有什么opencv方法可以预处理它来纠正图片中卡片的方向?这样我只需要在一个特定的方向上训练图像。

我假设您正在使用 Tensorflow 对象检测 API,并且他们在训练期间在其配置文件中提供了此数据增强选项。

data_augmentation_options {
 random_rotation90 {
      probability: 0.5
    }
  }

旋转限制为 90 度,但也有缩放和翻转选项(以及更多)。您可以看到选项列表 here

如果您正在寻找离线选项,以便在训练前处理图像,我推荐 aleju/imgaug 包。它会处理您的图像以及新的边界框坐标。