获取对象检测中每个bbox的所有置信度得分

时间:2018-12-20 15:08:17

标签: python tensorflow

我正在使用tensorflow对象检测API。我处于阶段,我需要获取单个bbox的所有置信度分数。使用典型代码:

detection_scores = detection_graph.get_tensor_by_name('detection_scores:0')
image = Image.open(image_path)
image_np = load_image_into_numpy_array(image, inverse_image)
image_np_expanded = np.expand_dims(image_np, axis=0)
(boxes, scores, classes, num) = sess.run([detection_boxes, detection_scores, detection_classes, num_detections], feed_dict={image_tensor: image_np_expanded})

我可以获得每个bbox中每个对象所属的bbox,分数和标签(classes)。因此,换句话说,对于每个bbox,我希望得到所有分数和所有标签,而我得到1分和1个标签。我需要获取每个bbox沿相应标签的所有置信度得分。

我尝试通过使用类似以下内容的层名称来解密要获得的正确层来实现此目的: layer_names = [tf.get_default_graph()。as_graph_def()。node中n的n.name]

for i, name in enumerate(layer_names):
    if 'detection_scores' in name:
        print('({}/{}) Layer name: {}'.format(i, len(layer_names), name))
  

(3062/4148)图层名称:detection_scores

并通过使用类似方法(通过使用具有相应名称的3061)来选择上一层(在本例中为索引为.get_tensor_by_name()的层),以尝试获得这些置信度得分,但是徒劳无功。顺便说一下,我得到激活的前一个张量是SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_1/TensorArrayGatherV3:0

编辑:

为了更加清楚我检查的前一个张量包含与张量detection_scores(下一个张量)相同的信息,显然这不是我想要的。我使用的方法本身没有任何问题。

编辑结束。

有人知道我应该居住在哪个张量中来获取此信息吗?另外,如果我对整个想法有误解,不妨通知我。

顺便说一下,我正在使用Ubuntu 16.04,tensorflow 1.8.0和Faster RCNN以及Resnet 101。

0 个答案:

没有答案