返回边界框的坐标Google的Object Detection API

时间:2017-11-04 12:03:53

标签: tensorflow object-detection object-detection-api

如何使用Google的Object Detection API的推理脚本获取生成的边界框的坐标?我知道打印框[0] [i]返回图像中第i个检测的预测但这些返回数字的含义究竟是什么?有没有办法可以得到xmin,ymin,xmax,ymax?提前谢谢。

2 个答案:

答案 0 :(得分:12)

Google Object Detection API以[ymin,xmin,ymax,xmax]格式和标准化格式(完整说明here)返回边界框。要找到(x,y)像素坐标,我们需要将结果乘以图像的宽度和高度。首先得到图像的宽度和高度:

width, height = image.size

然后,从boxes对象中提取ymin,xmin,ymax,xmax并乘以得到(x,y)坐标:

ymin = boxes[0][i][0]*height
xmin = boxes[0][i][1]*width
ymax = boxes[0][i][2]*height
xmax = boxes[0][i][3]*width

最后打印方框角的坐标:

print 'Top left'
print (xmin,ymin,)
print 'Bottom right'
print (xmax,ymax)

答案 1 :(得分:3)

您提到的box数组包含此信息,格式为[N,4]数组,其中每行的格式如下: 相对于输入图像大小的标准化坐标中的[ymin,xmin,ymax,xmax]。