Tensorflow对象检测API边界框坐标

时间:2017-11-18 22:53:09

标签: numpy tensorflow object-detection

我正在使用Tensorflow对象检测API来识别背包和手提箱,并且在尝试隔离一个边界框时遇到了问题。我正在从Github运行基本的object_detection_app.py,我需要每个盒子的坐标/大小,我在名为boxes的数组中找到了它。这是numpy数组的相关代码

boxes = detection_graph.get_tensor_by_name('detection_boxes:0')
...
   # Actual detection.
(boxes, scores, classes, num_detections) = sess.run(
    [boxes, scores, classes, num_detections],
    feed_dict={image_tensor: image_np_expanded})

# Visualization of the results of a detection.
flattened_boxes = np.squeeze(boxes)
vis_util.visualize_boxes_and_labels_on_image_array(
    image_np,
    flattened_boxes,
    np.squeeze(classes).astype(np.int32),
    np.squeeze(scores),
    category_index,
    use_normalized_coordinates=True,
    line_thickness=8)
#print(flattened_boxes)
return image_np

我添加了flattened_boxes变量,以便在尝试引用box数组时不必挤压两次。当我打印数组时,当前已注释掉,我得到了一个基于visualize_boxes_and_labels_on_image_array函数(一个Nx4 numpy数组)的结果预期的大输出。

[[ 0.19599476  0.2981517   0.99717104  0.82842588]
 [ 0.41137621  0.64978909  0.50763148  0.69665825]
 [ 0.43020707  0.74842983  0.4897657   0.78688926]
 [ 0.42019451  0.6926229   0.50535047  0.7341491 ]
 [ 0.43565691  0.64267403  0.52299386  0.68705386]
 [ 0.66776097  0.75630403  0.76703691  0.79438317]
 [ 0.42019451  0.6926229   0.50535047  0.7341491 ]

我想引用数组的单行来获取单个框的坐标,但是当我尝试打印flattened_boxes [0,0]时,不打印任何输出。我试图打印阵列的形状,也不会打印。为什么我不能使用[0,0]来引用这个数组的单个元素?

0 个答案:

没有答案