形状必须为2级,但NonMaxSuppressionV3为3级:ERROR

时间:2018-09-14 09:13:12

标签: tensorflow non-maximum-suppression

我在尝试检测视频对象时尝试使用tf.image.non_max_suppression时遇到此错误。 Tensorflow版本是1.10.0

  

ValueError:形状必须为2级,但形状为3级   'non_max_suppression / NonMaxSuppressionV3'(操作:'NonMaxSuppressionV3')   输入形状:[1,500,4],[1,500],[],[],[]。

1 个答案:

答案 0 :(得分:0)

我在tensorflow2.1中遇到了同样的错误,原因是(如错误所言)批处理尺寸不存在。

tf.image.non_max_suppression( 方块,分数,max_output_size,iou_threshold = 0.5, score_threshold = float('-inf'),name = None)

boxes形状为[num_boxes,4]的二维浮点张量。

示例:

selected_indices = tf.image.non_max_suppression(
    boxes=boxes,
    scores=scores,
    max_output_size=7,
    iou_threshold=0.5)

您应该删除张量的第一个(批量)维(上面示例中的框和得分) 如果您的批次尺寸为1,则可以使用

boxes = tf.squeeze(boxes)
scores = tf.squeeze(scores)

看来您可以在此野兽中拥有批处理尺寸: https://www.tensorflow.org/api_docs/python/tf/image/combined_non_max_suppression