gpt4 book ai didi

python - 如何理解开放图像数据集的边界框注释?

转载 作者:行者123 更新时间:2023-12-01 07:58:28 24 4
gpt4 key购买 nike

因此,我通过 TensorFlow 数据集下载了 Open Images 数据集 ( https://www.tensorflow.org/datasets )。我可以很好地查看图像和注释,但我无法理解它们用于对象边界框的奇怪格式。

例如:我有一张图像,显示一头大象,宽度为 682,高度为 1024。大象的边界框坐标为:[0.03875 , 0.188732, 0.954375, 0.979343]。根据文档,4 个数字分别代表 xMin、xMax、yMin、yMax。

如何使用 matplotlib 显示这个奇怪的小矩形?
我已经尝试将坐标分别乘以宽度和高度,但生成的矩形没有任何意义。我还更改了 x_1 和 x_2 等的值,但这也不起作用。

这是我的代码:

for e in train_data:

np_img = e["image"]

height = np.shape(np_img)[0]
width = np.shape(np_img)[1]

fig, ax = plt.subplots(1)

ax.imshow(np_img)

for bbox in e["bobjects"]["bbox"]:

x_1 = bbox[0]
x_2 = bbox[1]

y_1 = bbox[2]
y_2 = bbox[3]

rect = patches.Rectangle((x_1 * width, y_2 * height), (x_2 * width - x_1 * width), (y_1 * height - y_2 * height), linewidth=1, edgecolor='r', facecolor='none')

ax.add_patch(rect)

plt.show()

# Only one iteration for testing
break

最佳答案

我自己找到了解决方案:事实证明,当使用 TensorFlow 数据集 API 中的 Open Images 时,边界框的坐标顺序与数据集网站上记录的顺序不同。
在那里,他们描述了每个框的四个值的顺序,如下所示:
xMin、xMax、yMin、yMax
但是,TF 数据集 API 的顺序为 yMin、xMin、yMax、xMax。我通过将单个图像的图像 ID 与网站上的注释.csv 文件进行比较发现了这一点。获得框的绝对值的唯一步骤是将 x 值乘以图像的宽度,将 y 值乘以图像的高度。

关于python - 如何理解开放图像数据集的边界框注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55832578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com