【问题标题】:Number of bounding boxes in Tensorflow Object detection moduleTensorflow 对象检测模块中的边界框数量
【发布时间】:2019-03-27 03:28:27
【问题描述】:

我正在使用其中一种预训练模型进行推理,即 tensorflow 对象检测。但是,模型的训练配置将检测数量限制为仅 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)})

但是它给了我一个错误,说变量没有任何分配属性。我假设这是因为我无法改变它。

还有其他方法可以更新吗?还是需要重新训练?

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

【问题讨论】:

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


    【解决方案1】:

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

    其次,您无法更改框的数量,即使您更改了num_detections:0 的值。因为在num_detection 操作之前,NMS 步骤会确定保留多少个框。所以你只是改变了错误的变量。我无法帮助您找到正确的变量。对此感到抱歉。

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

    谁有更好的解决方案?

    【讨论】:

    • 我尝试找到类似于max_total_detections 的内容,但变量中没有。所以我假设这是我无法再次设置的东西。非常感谢您提出 0 步想法的再培训想法。我不知道有人能做到这一点!我一定会试一试,然后告诉你。
    • 发布更新!该方法效果很好。除非您必须至少提供 1 个训练步骤!因此,这实质上是从检查点重新训练模型,再增加一个训练步骤。
    猜你喜欢
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2021-02-09
    • 2018-08-01
    • 1970-01-01
    • 2020-07-20
    • 2019-09-30
    相关资源
    最近更新 更多