在训练期间调整图像大小会影响边界框注释吗?

数据挖掘 深度学习 张量流 物体检测 物体识别
2021-10-05 14:10:26

我正在使用 TensorFlow 对象检测 API 来训练我自己的自定义数据集,并为此准备注释。我从我预训练的 SSD 初始网络的配置文件中看到,图像的大小在训练期间减小到 300 x 300。我的疑问是调整大小现在是否会根据注释改变我的对象的位置?我的意思是现在边界框的xmin, yminwidth 和 height 会因为它调整大小而有所不同。我应该在调整大小的图像上注释(在训练之前自己调整大小?)还是我给训练的原始图像?

2个回答

我的疑问是调整大小现在是否会根据注释改变我的对象的位置?

是的,它会的。

我应该在调整大小的图像上注释(在训练之前调整它们自己的大小吗?)

不,您应该以原始大小进行注释。

您也可以通过在边界框上应用相应的转换来解决此问题。因此,如果您调整图像大小,则重新调整边界框。这使您可以扩展到不同的图像增强,而无需为所有图像重做注释。

我建议您选择一个必须能够对图像及其边界框应用转换的库。我使用allementations,但还有其他的,例如imaug

另一种方法是使用CHITRA它可以根据新的图像大小自动重新缩放您的边界框。(chitra 内部使用 imgaug)

image = Chitra(img_path, box, label)

image.resize_image_with_bbox((224, 224))

print('rescaled bbox:', image.bounding_boxes)
plt.imshow(image.draw_boxes())

https://chitra.readthedocs.io/en/latest/

点安装chitra