【问题标题】:Is it possible for either Microsoft Computer Vision API or Google's Cloud Vision API to get a location for objects?Microsoft Computer Vision API 或 Google 的 Cloud Vision API 是否可以获取对象的位置?
【发布时间】:2017-05-09 12:46:14
【问题描述】:

我正在尝试开发一个需要知道图像中标记对象的位置的应用程序。仅知道图像中有“钢琴”是不够的,我需要知道该钢琴在图像中的位置。

Microsoft 的 Computer Vision API 和 Google 的 Cloud Vision API 都提供某种形式的裁剪建议/智能缩略图生成服务,这让我认为某些对象的位置正在被检测到 - 但是有没有办法获取该信息(例如来自 Microsoft 的计算机视觉 API 或 Google 的 Cloud Vision API 的每个检测到的对象周围的边界框?


编辑:我知道这两个 API 都可以返回在图像中检测到的人脸的位置,但是我正在寻找图像中每个对象的位置和大小:汽车、钢琴、树木、人...任何东西。

【问题讨论】:

标签: api computer-vision microsoft-cognitive google-cloud-vision


【解决方案1】:

Microsoft Vision API 不为检测到的对象提供像素坐标(请参阅返回功能:https://dev.projectoxford.ai/docs/services/56f91f2d778daf23d8ec6739/operations/56f91f2e778daf14a499e1fa)。

但是,如果您想检测人,Microsoft API 可以返回面部矩形的坐标。

【讨论】:

  • 查看我的编辑 - 我寻找的不仅仅是面部位置,但我知道这些 API 可能不是我想要的。
  • 在这种情况下微软 API 不适合
  • 对 Google API 或任何其他 API 有任何想法吗?
  • 您是否尝试过在 python 中使用 OpenCV 包(教程:intorobotics.com/how-to-detect-and-track-object-with-opencv)。不幸的是,我对谷歌 API 一无所知。祝你好运。
  • 我认为 OpenCV 必须经过训练才能对大量对象进行分类。我正在寻找一些已经可以识别每天成千上万的物体和物品的解决方案。
【解决方案2】:

目前我不知道有任何 API 可以为您提供对象坐标。我推荐使用YOLO,它为您提供对象的坐标。您可以使用预先训练的模型或训练自己的模型。

但是,它不是 API,您必须编写一些后端代码才能远程运行。

【讨论】:

    【解决方案3】:

    希望对你有帮助 https://azure.microsoft.com/en-in/services/cognitive-services/computer-vision/

    API:

    url:- (In POST) https://{yourvisionapp}.cognitiveservices.azure.com/vision/v2.0/detect
    headers:- Content-Type: application/json
    Ocp-Apim-Subscription-Key : {yourSubscriptionKey}
    body:- {"url":"yoururl"}
    

    示例响应:-

    {
        "objects": [
            {
                "rectangle": {
                    "x": 460,
                    "y": 79,
                    "w": 141,
                    "h": 258
                },
                "object": "window",
                "confidence": 0.508
            },
            {
                "rectangle": {
                    "x": 180,
                    "y": 240,
                    "w": 299,
                    "h": 182
                },
                "object": "Billiard table",
                "confidence": 0.635,
                "parent": {
                    "object": "table",
                    "confidence": 0.676
                }
            },
            {
                "rectangle": {
                    "x": 8,
                    "y": 11,
                    "w": 497,
                    "h": 416
                },
                "object": "room",
                "confidence": 0.547
            }
        ],
        "requestId": "f8aafd95-d17d-4088-a34b-ad616f9cde4a",
        "metadata": {
            "width": 640,
            "height": 427,
            "format": "Jpeg"
        }
    }
    

    【讨论】:

      【解决方案4】:

      2020 年更新:

      这个问题已经有几年的历史了,但是Microsoft Azure 计算机视觉 API 现在能够在图像中检测到的对象周围绘制边界框。 Here is a sample in Python。也可以使用其他语言。

      计算机视觉文档:https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/

      计算机视觉 SDK:https://docs.microsoft.com/en-us/python/api/azure-cognitiveservices-vision-computervision/?view=azure-python

      计算机视觉 API:https://westus.dev.cognitive.microsoft.com/docs/services/5cd27ec07268f6c679a3e641/operations/56f91f2e778daf14a499f21b

      【讨论】:

        【解决方案5】:

        Azure Custom Vision 将是 Azure 系列中的产品,可以进行对象检测并返回对象的坐标。

        https://azure.microsoft.com/en-us/services/cognitive-services/custom-vision-service/#overview

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-11-21
          • 2017-07-07
          • 1970-01-01
          • 2016-08-05
          • 2018-06-10
          • 2019-04-08
          • 1970-01-01
          相关资源
          最近更新 更多