Tensorflow对象检测模块中的边界框数量

时间:2019-03-27 03:28:27

标签: tensorflow object-detection object-detection-api pre-trained-model

我正在使用预训练的模型之一进行张量流对象检测。但是,模型的训练配置将检测次数限制为5个盒。关于如何在推理期间更改此参数的任何想法?

我正在使用的模型是经过link训练的模型。它的配置是herehere。此处将max_total_detection设置为5。我不确定如何更新它以获取更多更新。

任何帮助将不胜感激!

我尝试加载图形并查看预训练模型中的变量。我找到了一个变量“ num_detections”,但是我不确定如何用任何有助于推理的代码重新分配它。

在推断过程中,我使用代码here

我添加以下行:

num_detections = tf.get_default_graph().get_tensor_by_name('num_detections:0')
sess.run(tf.assign(num_detections, num_detections+10),feed_dict={image_tensor: np.expand_dims(image,0)})

但这给我一个错误,说该变量没有任何assign属性。我假设这是因为我无法更改。

还有其他更新方式吗?还是需要重新培训?

编辑:第一个答案有效!使用配置文件中更改的数字框将其重新训练1 num_steps。

1 个答案:

答案 0 :(得分:0)

首先,如果要使用更大的num_detections:0,可以向其添加一个正整数。但是我认为您可能无法做到这一点,因为您加载了一个冻结的图,该图不应更改权重和参数的值。

第二,即使更改num_detections:0的值,也不能更改框数。因为num_detection操作之前在NMS步骤上确定保留了多少个框。因此,您只需更改错误的变量。我无法帮助您找到正确的变量。抱歉

最后,您可以在模型的配置文件中更改max_total_detections的数量,以保留更多的边界框。如果您不想训练模型,则可以更改配置文件,训练0个步骤并保存模型。

有人有更好的解决方案吗?

相关问题