1

我成功地针对我自己的数据集重新训练了 Retinanet 网络 ( https://github.com/fizyr/keras-retinanet )。当我针对视频流运行它时,一切都按预期工作。检测到对象,但在 Jetson Xavier 上的性能很差,所以我试图将它移到 TensorRT 下,这就是我开始感到困惑的地方:-) 我将 .h5 转换为 .pb 并使用 TF/NVidia 工具来优化模型。使用 Keras,获取边界框并显示它们很简单:

boxes, scores, labels = model.predict_on_batch(np.expand_dims(image, axis=0))

对于 Tensorflow 模型,我使用如下构造:

input_names = ['input_1']
output_names = ['classification/concat','regression/concat']  
tf_input = tf_sess.graph.get_tensor_by_name(input_names[0] + ':0')
tf_input.shape.as_list()

tf_classification = tf_sess.graph.get_tensor_by_name(output_names[1] + ':0')
tf_regression = tf_sess.graph.get_tensor_by_name(output_names[0] + ':0')

regression, classification = tf_sess.run([tf_classification, tf_regression], feed_dict={
  tf_input: image[None, ...]})

“回归”和“分类”以正确的形状返回。现在的问题是:我如何将“回归”和“分类”映射到边界框、分数、标签?

4

0 回答 0