Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Vision API文本检测奇怪行为-Javascript_Javascript_Ocr_Google Vision - Fatal编程技术网

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

Google Vision API文本检测奇怪行为-Javascript,javascript,ocr,google-vision,Javascript,Ocr,Google Vision,最近Google Vision API发生了一些变化。我用它来识别收据上的文字。直到现在一切都很好。突然,API开始以不同的方式响应我的请求 今天我把同样的图片发给了API,得到了不同的回复(来自过去)。我确保代码中没有任何更改,所以这不是罪魁祸首 另一件奇怪的事情是,当我将图像上传到响应中的textAnnotations下时,我得到一个包含183个条目的数组。然而,当我从我的应用程序发布时,我得到了113个条目的数组。下面你可以看到我的代码 function googleScan(imageD

最近Google Vision API发生了一些变化。我用它来识别收据上的文字。直到现在一切都很好。突然,API开始以不同的方式响应我的请求

今天我把同样的图片发给了API,得到了不同的回复(来自过去)。我确保代码中没有任何更改,所以这不是罪魁祸首

另一件奇怪的事情是,当我将图像上传到响应中的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;
功能谷歌扫描(imageData){
var deferred=$q.deferred();
变量url=”https://vision.googleapis.com/v1/images:annotate?key=";
var有效载荷={
要求:{
图片:{
内容:imageData.split(',')[1]
},
特点:[{
键入:“文本检测”,
最大结果:50
}]
}
};
$http.post(url,有效负载,{headers:{“NoAuthToken”:true}}){
deferred.resolve(parseAnalyzedResult(response.data.responses[0].textAnnotations));
控制台日志(响应);
},函数(错误){
console.log(错误);
});
回报。承诺;

我想知道我的免费订阅是否被更改了,这就是为什么我收到了不同的回复。这有可能吗?以前有人遇到过这种问题吗?

我也遇到过类似的问题

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

您必须向请求中添加以下代码

"imageContext": {
        "languageHints": [
          "en"
        ]
 }
结果应该如下所示:

{
  "requests": [
    {
      "image": {
            content: imageData.split(',')[1]
      },
      "features": [{
            type: 'TEXT_DETECTION',
            maxResults:50
        }],
      "imageContext": {
        "languageHints": [
          "en"
        ]
      }
    }
  ]
}
请注意,语言提示是一个数组,因此您可以添加更多的语言,准确地说,给OCR一个提示

你可以阅读更多:


这有助于我不产生奇怪的字符。

我也有同样的问题。对我来说,(我不知道为什么,但是…)从文本检测更改为文档文本检测解决了这个问题。现在,从API收到的结果与我在Google Vision页面上传图像时看到的结果相同。

不幸的是,这并不能解决我的问题。谷歌方面确实发生了一些变化,但没有发出任何通知,感谢您的输入!我在举一个LanguageHipts语法的例子,非常感谢。顺便说一句,特别是在法语方面,谷歌远远不如微软的OCR API,它不能识别像l'eau这样的撇号,这是法语中到处都出现的一个主要缺点。我试过了,但对我来说,结果不一样。有点奇怪g必须在API中更改,否则我无法解释这种不一致性。感谢man DOCUMENT_TEXT_DETECTION,因为我处理的是真实的文档!这里清楚地提到:这不适用于我,我从这个拖放页面复制了JSON请求,我的结果仍然与API及其演示页面不同,t他唯一的区别是我使用imageUri发送文件,谷歌使用本地存储(content param)