Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 返回边界框的坐标Google';s对象检测API_Tensorflow_Object Detection_Object Detection Api - Fatal编程技术网

Tensorflow 返回边界框的坐标Google';s对象检测API

Tensorflow 返回边界框的坐标Google';s对象检测API,tensorflow,object-detection,object-detection-api,Tensorflow,Object Detection,Object Detection Api,如何使用Google的对象检测API的推理脚本获取生成的边界框的坐标?我知道打印框[0][I]返回图像中第I次检测的预测,但这些返回的数字的确切含义是什么?有没有办法让我得到xmin,ymin,xmax,ymax?提前感谢。您提到的框数组包含此信息,格式为[N,4]数组,其中每行的格式如下: [ymin,xmin,ymax,xmax]在相对于输入图像大小的标准化坐标中。Google对象检测API以[ymin,xmin,ymax,xmax]格式和标准化形式返回边界框(完整解释)。要找到(x,y)像

如何使用Google的对象检测API的推理脚本获取生成的边界框的坐标?我知道打印框[0][I]返回图像中第I次检测的预测,但这些返回的数字的确切含义是什么?有没有办法让我得到xmin,ymin,xmax,ymax?提前感谢。

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

Google对象检测API以[ymin,xmin,ymax,xmax]格式和标准化形式返回边界框(完整解释)。要找到(x,y)像素坐标,我们需要将结果乘以图像的宽度和高度。首先获取图像的宽度和高度:

width, height = image.size
然后,从
对象中提取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)

有没有解释为什么会这样做?你的链接已断开。是因为输入图像的大小被调整为标准大小吗?归一化坐标对于处理任何大小的输入都很有用吗?
image
numpy数组吗?如果是这样,
image.size
给出数组中元素的数量,
image.shape
给出图像的尺寸。但我认为它给出了矩阵的行数,然后是列数,即高度,宽度=image.shape@cmcdragokai,是的,这是有意义的。在神经网络中进行了大量的大小调整。@KolaB希望文档在未来一段时间内继续移动@谢谢更新的链接。我的评论是关于你回答中的一行,上面写着
宽度,高度=image.size
。我想这应该是高度,宽度=image.shape[:2]。在阅读了更新的链接后,我仍然这么认为。第一节“编码和解码”说“编码图像由标量字符串张量表示,解码图像由形状的3-D uint8张量表示<代码>[高度、宽度、通道]。如果您能澄清为什么使用
宽度,高度=图像。大小
,那就太好了。如果您对我的答案满意,请随意将其标记为已接受的答案。