您好我是tensorflow对象检测的新手api我试图在我的图像中找到对象的边界框坐标。我编写了以下代码,但它无法正常工作。
def find_bounding_boxes(image, graph):
with graph.as_default():
with tf.Session() as sess:
width, height = image.size
boxes = graph.get_tensor_by_name('detection_boxes:0')
np.squeeze(boxes)
ymin = boxes[0][1][0]*height
xmin = boxes[0][1][1]*width
ymax = boxes[0][1][2]*height
xmax = boxes[0][1][3]*width
print ('Top left')
print (xmin,ymin,)
print ('Bottom right')
print (xmax,ymax)
我得到以下输出:
Top left
Tensor("mul_3:0", dtype=float32) Tensor("mul_2:0", dtype=float32)
Bottom right
Tensor("mul_5:0", dtype=float32) Tensor("mul_4:0", dtype=float32)
Top left
Tensor("mul_7:0", dtype=float32) Tensor("mul_6:0", dtype=float32)
Bottom right
Tensor("mul_9:0", dtype=float32) Tensor("mul_8:0", dtype=float32)
Top left
Tensor("mul_11:0", dtype=float32) Tensor("mul_10:0", dtype=float32)
Bottom right
Tensor("mul_13:0", dtype=float32) Tensor("mul_12:0", dtype=float32)
答案 0 :(得分:1)
我也在寻找如何在tensorflow对象检测API中找到坐标,我找到了这个答案。它对我有用:
width = image.size
height = image.size
i = 1
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)
我不知道如何找到width, height = image.size
,这样做会出错。
编辑:我想通了,我改变了:
来自
width, height = image.size
到
width = image.shape[1]
height = image.shape[0]
它给了我图像的真实宽度和高度。如果有人想找到多个边界框的坐标,请按照我在link上的回答进行操作。
答案 1 :(得分:-2)
将all转换为int:
pom.xml