我正在使用 TensorFlow 对象检测 API 来训练我自己的自定义数据集,并为此准备注释。我从我预训练的 SSD 初始网络的配置文件中看到,图像的大小在训练期间减小到 300 x 300。我的疑问是调整大小现在是否会根据注释改变我的对象的位置?我的意思是现在边界框的xmin, yminwidth 和 height 会因为它调整大小而有所不同。我应该在调整大小的图像上注释(在训练之前自己调整大小?)还是我给训练的原始图像?
在训练期间调整图像大小会影响边界框注释吗?
数据挖掘
深度学习
张量流
物体检测
物体识别
2021-10-05 14:10:26
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
其它你可能感兴趣的问题