将Keras / Retinanet模型转换为Tensorflow之后的结果很奇怪

时间:2019-12-16 14:27:11

标签: tensorflow keras retinanet

应用一些工具将Keras / Retinanet模型(.h5)转换为Tensorflow模型(.pb)之后,我遇到了一些问题。当我对图像运行Keras / Retinanet模型时:     盒子,分数,标签= model.predict_on_batch(np.expand_dims(image,axis = 0)) 框,分数和标签将填充预期的结果。仅作为参考,该模型还给了我9个检测到的对象。

对于Tensorflow / Retinanet模型,情况完全不同。
    回归,分类= sess.run([tf_classification,tf_regression],feed_dict = {tf_input:image})

filter_detections_layer = keras_retinanet.layers.FilterDetections(nms=True)
boxes, scores, labels = filter_detections_layer.call([regression, classification])

“回归”和“分类”的格式均正确:

Tensor("classification/concat:0", shape=(?, ?, 3), dtype=float32)
Tensor("regression/concat:0", shape=(?, ?, 4), dtype=float32)

但是,在应用“ FilterDetections”之后,框,分数和标签将填充约240个对象,并且边框具有奇怪的格式

[[ 0.00330357 -0.50109524 -0.46569705  0.5642642 ]
 [ 0.00824136 -1.2870306  -0.4677258  -0.2555487 ]
 [ 0.5877216  -1.5296552   0.06298425 -0.5602327 ]
 ...

对于与Keras / Retinanet模型相同的图像,边界框为:

[[827.52124 229.86569 880.2724  363.2836 ]
 [ 19.23209 294.3282  102.16435 346.58243]
 [550.0928  279.2105  586.58453 318.4497 ]
 ...

好像我已经错过了一些东西。我已经研究了keras-retinanet代码几天了,但是到目前为止,我仍然受困。知道我的逻辑或代码有什么问题吗?

0 个答案:

没有答案