【问题标题】:Google Cloud Vision API giving inaccurate text detection resultGoogle Cloud Vision API 提供不准确的文本检测结果
【发布时间】:2017-09-27 00:43:34
【问题描述】:

我将 Google Cloud Vision API 用于 OCR。我能够连接到 API 并按预期返回 JSON 结果。让我感到困惑的是,虽然https://cloud.google.com/vision/ url 可以正确检测到图像中的文本,但 API 调用通常会为同一图像返回不准确的文本数据。 PL。让我知道可能是什么情况。附上示例代码。

        String url = "https://vision.googleapis.com/v1/images:annotate?key=mykey";
        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
        BufferedImage img = ImageIO.read(new File("F://image.jpg"));
        ByteArrayOutputStream baos=new ByteArrayOutputStream();
        String fileext = "jpg";
        ImageIO.write(img, fileext, baos );
        baos.flush();
        byte[] imageInByte=baos.toByteArray();
        baos.close();
        String imgstr =  java.util.Base64.getEncoder().encodeToString(imageInByte);
        //add reuqest header
        con.setRequestMethod("POST");
        con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

【问题讨论】:

标签: google-cloud-vision


【解决方案1】:

我也有类似的问题。

Google Cloud Vision API 表示“OCR 会自动检测拉丁字符,但有时会失败”或出现奇怪的行为。 API 还说您可以添加一个参数来帮助 ocr 更好地检测文本,为图像提供上下文。

您必须将以下代码添加到请求中。

"imageContext": {
        "languageHints": [
          "en"
        ]
 }

json 结果应该是这样的:

{
  "requests": [
    {
      "image": {
            ...
      },
      "features": [{
            type: 'TEXT_DETECTION',
            maxResults:1
        }],
      "imageContext": {
        "languageHints": [
          "en"
        ]
      }
    }
  ]
}

请注意,语言提示它是一个数组,因此您可以添加更多语言,以准确地为 OCR 提供提示。

您可以阅读更多:https://cloud.google.com/vision/docs/reference/rest/v1/images/annotate#imagecontext

这帮助我不会得到奇怪的字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 2017-10-20
    • 2018-06-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多