【问题标题】:Google Vision API text detection strange behaviour - JavascriptGoogle Vision API 文本检测奇怪行为 - Javascript
【发布时间】:2017-11-28 03:37:39
【问题描述】:

最近,Google Vision API 发生了一些变化。我用它来识别收据上的文字。到目前为止一切都很好。突然,API 开始对我的请求做出不同的响应。

我今天向 API 发送了同一张图片,但得到了不同的回复(与过去不同)。我确保我的代码没有任何改变,所以这不是罪魁祸首。

另一个奇怪的事情是,当我在响应中将图像上传到https://cloud.google.com/vision/ 时,在 textAnnotations 下,我得到了一个包含 183 个条目的数组。但是,当我从我的应用程序发布时,我得到一个包含 113 个条目的数组。下面你可以看到我的代码。

function googleScan(imageData) {
    var deferred = $q.defer();
    var url = "https://vision.googleapis.com/v1/images:annotate?key=<myAPIKey>";
    var payload = {
        requests: {
            image: {
                content: imageData.split(',')[1]
            },
            features: [{
                type: 'TEXT_DETECTION',
                maxResults:50
            }]
        }
    };
    $http.post(url, payload, { headers: { "NoAuthToken": true } }).then(function (response) {
        deferred.resolve(parseAnalyzedResult(response.data.responses[0].textAnnotations));
        console.log(response);
    }, function (error) {
        console.log(error);
    });
    return deferred.promise;

我想知道我的免费订阅是否以某种方式被更改,这就是我收到不同回复的原因。这甚至可能吗?有没有人偶然发现过这种问题?

【问题讨论】:

    标签: javascript ocr google-vision


    【解决方案1】:

    我遇到了同样的问题。对我来说,(我不知道为什么,但是......)从 TEXT_DETECTION 更改为 DOCUMENT_TEXT_DETECTION 解决了​​这个问题。现在从 API 收到的结果与我在 Google Vision 页面上上传图片时看到的结果相同。

    【讨论】:

    • 我试过了,但对我来说它们的结果不一样。 API 中一定发生了一些变化,否则我无法解释这种不一致。
    • 感谢 DOCUMENT_TEXT_DETECTION 非常适合我,因为我正在处理真实文件!这里明确提到了这一点:cloud.google.com/vision/docs/ocr
    • 对我不起作用,我从这个拖放页面复制了 JSON 请求,我的结果仍然与 API 及其演示页面不同,唯一的区别是我使用 imageUri 发送我的文件和谷歌使用他们的本地存储(内容参数)
    【解决方案2】:

    我遇到了类似的问题。

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

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

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

    结果应该是这样的:

    {
      "requests": [
        {
          "image": {
                content: imageData.split(',')[1]
          },
          "features": [{
                type: 'TEXT_DETECTION',
                maxResults:50
            }],
          "imageContext": {
            "languageHints": [
              "en"
            ]
          }
        }
      ]
    }
    

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

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

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

    【讨论】:

    • 不幸的是,这并不能解决我的问题。谷歌方面确实发生了一些变化,没有发出任何通知,谢谢您的意见!
    • 我在寻找语言提示的语法示例时找到了这个答案,非常感谢。顺便说一句,特别是在法语方面,Google 远不如 Microsoft OCR API,它不能识别像 l'eau 这样的撇号,当这些撇号出现在法语中时,这是一个主要缺点。
    猜你喜欢
    • 2019-04-24
    • 2017-10-20
    • 2016-10-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2017-02-16
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多