Google Cloud Vision API给出不准确的文本检测结果



我正在将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 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/rest/v1/images/annotate#imagecontext

这帮助我没有奇怪的角色。

最新更新