Google Vision API 文本检测奇怪行为 - Javascript

Posted

技术标签:

【中文标题】Google Vision API 文本检测奇怪行为 - Javascript【英文标题】:Google Vision API text detection strange behaviour - 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;

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

【问题讨论】:

【参考方案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 这样的撇号,当这些撇号出现在法语中时,这是一个主要缺点。

以上是关于Google Vision API 文本检测奇怪行为 - Javascript的主要内容,如果未能解决你的问题,请参考以下文章

来自边界框的 Google Vision Api 文本检测布局信息

Google Vision Api 支持 PDF 和 TIFF 文本检测,但它也可以与包含图像的 PDf 一起使用吗?

Google Vision 文本检测返回过多不必要的数据

如何使用 google vision api 从图像中进行文本检测?

Google Vision API:图片上包含英文和阿拉伯文

Mobile Vision API (TEXT) 未检测到单个数字?