我正在训练一个用于TensorFlow的对象检测模型。检测的对象是一堆不同的卡片,每张卡片上面都有不同的图案。
由于它们都是普通卡片,用户可以将其以任何角度(360度)放在桌子上,这意味着我需要标记用户可能放置在桌子上的各个角度的图像并进行训练。
这看起来是一项繁重的工作。我想知道是否有任何工具可以帮我完成?例如,我提供一个特定角度的标记图像,它可以自动旋转并为所有其他角度标记?
另一方面,有没有OpenCV的方法可以预处理图像以校正图片中卡片的方向?这样我只需要训练特定方向的图像即可。
回答:
我假设您使用的是TensorFlow对象检测API,它们在训练时的配置文件中提供了数据增强选项。
data_augmentation_options { random_rotation90 { probability: 0.5 } }
旋转限制在90度,但还有缩放和翻转选项(以及更多)。您可以在这里查看选项列表 这里
如果您正在寻找离线选项,在训练前处理图像,我推荐aleju/imgaug包。它会处理您的图像并生成新的边界框坐标。