【问题标题】:how do I run two separate deep learning based model together?如何同时运行两个独立的基于深度学习的模型?
【发布时间】:2020-06-24 06:47:05
【问题描述】:

我训练了一个基于深度学习的检测网络来检测和定位一些物体。我还训练了一个基于深度学习的分类网络来对检测到的物体的颜色进行分类。现在我想结合这两个网络来检测物体并分类颜色。我在将这两个网络结合起来并将它们一起运行时遇到了一些问题。运行检测时如何调用分类?

它们在两个不同的框架中:分类器基于 Keras 和 TensorFlow 后端,检测基于 opencv DNN 模块。

【问题讨论】:

  • 您使用的是哪个框架,tensorflowpytorch(或其他?)。你能提供一些你已经尝试过的代码吗?
  • 分类器基于 Keras 和 TensorFlow 后端,检测基于 DNN 模块。

标签: python classification detection yolo


【解决方案1】:

我已阅读您的问题,从中可以推断出您的分类网络从您的第一个网络(对象定位器)的输出中获取输入。即来自您的第一个网络的定位对象被传递到第二个网络,第二个网络又将它们分类为不同的颜色。您正在使用的整个管道似乎是一个连续的。您最好的选择是首先向第一个网络提供输入,获取其输出,应用一些触发器来激活第二个网络,将第一个网络的输出馈送到第二个网络,最后获得第二个网络的输出。您可以在不同的 GPU 中运行这两个网络。

调用第二个函数的触发器可以很简单,比如在本地存储中裁剪定位的对象,并运行一个函数来检查文件结构中的任何变化(添加一个新文件)。如果此函数返回 true,您可以抓取该裁剪对象并使用此图像作为输入运行网络。

【讨论】:

  • 你是对的,但我的问题是如何触发第二个网络(分类器)?
  • @programmer 它可以像检查是否检测到对象一样简单,因此对您的第一个网络的输出进行 if else 测试,如果确实检测到了,则将输出输入到第二个网络
  • 您可以在本地存储中裁剪找到的对象,并让一个函数继续运行一个函数来检查文件结构中的任何变化(添加新文件)。如果此函数返回 true,您可以抓取该裁剪对象并使用此图像作为输入运行网络。
  • 如果您认为可以解决您的疑问,不妨接受答案。
猜你喜欢
  • 2019-08-15
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2021-07-13
相关资源
最近更新 更多