0

我正在开发一个 Ruby on Rails 应用程序,我想在其中检测图像中物理对象(瓶子和食品包)的数量。

我刚刚探索了 Google Vision API ( https://cloud.google.com/vision/ ) 来检查这是否可行。我上传了一张照片,里面有一些冷饮瓶,得到了以下回复。

{
  "responses" : [
    {
      "labelAnnotations" : [
        {
          "mid" : "\/m\/01jwgf",
          "score" : 0.77698487,
          "description" : "product"
        },
        {
          "mid" : "\/m\/0271t",
          "score" : 0.72027034,
          "description" : "drink"
        },
        {
          "mid" : "\/m\/02jnhm",
          "score" : 0.51373237,
          "description" : "tin can"
        }
      ]
    }
  ]
}

我在这里担心的是,它没有给出图像中可用的冷饮瓶的数量,而是返回照片中可用的对象类型。

这在 Google Vision API 或任何其他可用的解决方案中是否可行?

任何帮助将非常感激。

4

2 回答 2

1

不幸的是,这个问题并不是一个完全解决的问题。您可以使用一些对象检测算法,例如Faster RCNNYOLO。如果它们包含在 ImageNet 数据集中,它们可以为您提供最多边界框的对象;但是,当然你可以用它们训练你自己的分类器。我推荐 YOLO,它真的很容易使用并且有很好的文档记录。

此外,您可以部署包含 Faster RCNN的DIGITS对象检测服务器。它为您提供了一个非常好的用户界面来使用这些模型。

于 2016-10-14T08:28:28.640 回答
1

我制作了一个简单的命令行程序,它通过 JRuby 使用 OpenCV 检测面部并用表情符号替换它们。设置起来绝对是一件痛苦的事,但是一旦完成,编写起来就是一种美。我还制作了一个小脚本来创建 OpenCV JRuby 项目,可以在 shell 脚本中使用所需的命令行参数来执行,这可以缓解大多数问题,如果不是全部,设置时的痛苦。

稍后当我在我的计算机上时,我会将项目和脚本都上传到 GitHub 并在此处链接它们,如果你想要我的话,但现在我可以将你引导到这个项目作为示例。

编辑

以下是 JRuby OpenCV 项目和脚本的链接:

JRuby OpenCV 项目

项目创建脚本

于 2016-10-14T08:16:05.550 回答