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 api 从图像中进行文本检测?