【问题标题】:Is there a C++ wrapper for the Tensorflow Object Detection API?Tensorflow 对象检测 API 是否有 C++ 包装器?
【发布时间】:2017-10-12 06:59:34
【问题描述】:

我们已经使用提供的 Python 脚本训练并成功测试了我们的模型。但是,我们现在想在我们的网站上部署它并为第二轮测试运行一个 Web 服务。

是否有一个 C++ 包装器,以便我们可以像使用 Python 脚本一样运行/执行我们的模型?

【问题讨论】:

  • 目标检测没有具体的api,但是一旦训练完成,可以将模型保存为tf.GraphDeftf.MetaGraphDef格式,然后用tensorflow服务部署。
  • @Jie.Zhou:谢谢,但我想tensorflow服务只能与谷歌云一起使用!我正在寻找依赖需求最少的东西。一堆 dll 和库,以便我可以在任何地方轻松使用它。像 Caffe 这样的东西,在这种情况下非常方便。
  • 所以基本上你只想在 c++ 中使用 tensorflow 吗?在那种情况下,当然是完全有可能的!您需要按照对象检测 API 中的说明导出图形,然后在 c++ 中运行它,例如 this(简而言之)
  • @gdelab:是的,就是这样。非常感谢您的帮助

标签: c++ tensorflow object-detection object-detection-api


【解决方案1】:

我认为最简单的方法是使用cppflow。它是 TensorFlow C API 的 C++ 包装器。它很简单但非常易于使用,您不需要安装它,也不需要使用 Bazel 编译。您只需下载 C API 并像这样使用它:

Model model("graph.pb");
model.restore("path/to/checkpoint");

auto input = new Tensor(model, "input");
auto output = new Tensor(model, "output");

model.run(input, output);

【讨论】:

    【解决方案2】:

    您将找到在 C++ here 上运行对象检测的代码。您需要一个导出的图表(.pb 格式),您可以使用the TF object detection API 获取该图表。

    过去编译很棘手(除非你将项目放在 tensorflow 目录中并使用 bazel 编译所有内容,但你可能不想这样做)。我认为现在应该更容易,但我不知道如何;或者您可以关注these instructions 自行编译 tensorflow 并在 cmake 项目中使用。您还有另一个在 c++ 中运行图形的示例here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-17
      • 2018-01-17
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      相关资源
      最近更新 更多