【问题标题】:Google Vision API JSON Response in English only仅英文版 Google Vision API JSON 响应
【发布时间】:2018-07-31 10:16:00
【问题描述】:

探索 Google vision API 已经花费了很多时间,我正在尝试仅获得英语语言的 Vision API 响应,下面是我对 API 的请求对象,其中包含语言提示:

 {
    "requests": [
        {
            "features": [
                {
                    "type": "IMAGE_PROPERTIES"
                },
                {
                    "type": "LANDMARK_DETECTION"
                },
                {
                    "type": "LABEL_DETECTION"
                },
                {
                    "type": "WEB_DETECTION"
                },
                {
                    "type": "FACE_DETECTION"
                },
                {
                    "type": "SAFE_SEARCH_DETECTION"
                },
                {
                    "type": "TEXT_DETECTION"
                },
                {
                    "type": "LOGO_DETECTION"
                }
            ],
            "image": {
                "source": {
                    "imageUri": "https://images.dreamstream.com/prodds/prddsimg/OM_pasteIt22_12_2017_2_34_7806303.jpeg"
                }
            },
      "imageContext": {
        "languageHints": [
          "en"
        ]
      }
        }
    ]
}

即使这个请求对象也没有从 Vision API 获得正确的响应(多种语言)..

如果有任何步骤可以仅以英语获得回复,请告诉我,截至目前,回复包含多种语言,如下所示:

{
            "url": "https://www.tummyummi.com/food/menu-aryaas-restaurant",
            "pageTitle": "Aryaas India Restaurant - مطعم ارياس لبهند - TummYummi Restaurants",
            "fullMatchingImages": [
              {
                "url": "https://www.tummyummi.com/food/upload/1509868727-Curd-Vada.jpg"
              }
            ]
          },

【问题讨论】:

    标签: java json response google-vision non-english


    【解决方案1】:

    如果我理解正确,Vision Api 正在查看您的图片,并确定它在https://www.tummyummi.com/food/menu-aryaas-restaurant 看到了类似的图片。

    这个网站的标题是Aryaas India Restaurant - مطعم ارياس لبهند - TummYummi Restaurants

    这个非英文文本被发送给你并不是一个错误,因为你要求 Api 使用WEB_DETECTION。 它找到了一个包含该图片的网站,并为您提供了该图片的链接及其标题。

    docsImageContext 参数languageHints 允许您为图像中的文本设置预期语言,如果检测到任何其他语言,将返回错误:

    如果一种或多种指定语言不是受支持的语言之一,则文本检测会返回错误。

    请务必注意,此语言设置仅影响文本检测

    如果您希望文本检测仅返回英文元素,但在检测到其他任何内容时不出错,则该文档建议如下:

    对于基于拉丁字母的语言,不需要设置 languageHints。在极少数情况下,当图像中文本的语言已知时,设置提示将有助于获得更好的结果(尽管如果提示错误将是一个很大的障碍)

    相反,要过滤掉任何非英文文本,您应该查看TextAnnotationlocale 字段,并在客户端过滤掉任何不是en 的内容。

    WEB_DETECTION期间检测网站标题的语言而言,我认为这超出了Google vision api的范围,但您可以尝试使用cloud translation apidetecting lanuages feature

    【讨论】:

      【解决方案2】:

      感谢@dustinroepsch 的有用答案,我们可以使用正则表达式,而不是依赖cloud translation api,因为唯一具有非英文文本的功能是WEB_DETECTION,有时可能会有所不同。

      WEB_DETECTION 中,像 pagesWithMatchingImages 和 webEntities 这样的对象可能有非英文文本。解析 JSON 后,我们可以使用以下正则表达式模式来删除非英文文本。

      String regex = "[a-z,A-Z,0-9,($&+,:;=?@#|'<>.^*()%!-)\\s]";
      

      【讨论】:

        猜你喜欢
        • 2018-07-15
        • 1970-01-01
        • 1970-01-01
        • 2016-09-27
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        • 2019-04-03
        • 1970-01-01
        相关资源
        最近更新 更多