如何在Tensorflow中检测图像中的对象位置

时间:2018-09-27 23:39:04

标签: python tensorflow object-detection

我是Tensorflow中的新手,正在寻找示例对象检测代码。其中之一是that

我只是不知道如何为该示例代码获取图像中检测到的数组的精确坐标(位置)。

谢谢

2 个答案:

答案 0 :(得分:1)

# Run the model
    out = sess.run([sess.graph.get_tensor_by_name('num_detections:0'),
                    sess.graph.get_tensor_by_name('detection_scores:0'),
                    sess.graph.get_tensor_by_name('detection_boxes:0'),
                    sess.graph.get_tensor_by_name('detection_classes:0')],
                   feed_dict={'image_tensor:0': inp.reshape(1, inp.shape[0], inp.shape[1], 3)})

     # Visualize detected bounding boxes.
    num_detections = int(out[0][0])
    for i in range(num_detections):
        classId = int(out[3][0][i])
        score = float(out[1][0][i])
        bbox = [float(v) for v in out[2][0][i]]

答案 1 :(得分:0)

确切答案: Get the bounding box coordinates in the TensorFlow object detection API tutorial

之后:

out = vis_util.visualize_boxes_and_labels_on_image_array(
image,
np.squeeze(boxes),
np.squeeze(classes).astype(np.int32),
np.squeeze(scores),
category_index,
use_normalized_coordinates=True,
line_thickness=1,
min_score_thresh=0.80)

位置是:

im_height, im_width = image.shape[:2]

position = boxes[0][0]

(xmin, xmax, ymin, ymax) = (position[1]*im_width, position[3]*im_width, position[0]*im_height, position[2]*im_height)

roi = image2[int(ymin):int(ymax), int(xmin):int(xmax)]

感谢rootkitchao