Google Cloud Vision API'请求拒绝被拒绝'

时间:2016-06-13 18:38:25

标签: ocr gcloud google-cloud-vision google-vision

我是Google Cloud Vision API的新手。我正在对图像进行OCR,主要是为了账单和收据。

对于一些图像,它工作正常,但是当我尝试其他一些图像时,它给了我这个错误:

Error:  { [Error: Request Admission Denied.]
  code: 400,
  errors:
   [ { message: 'Request Admission Denied.',
       domain: 'global',
       reason: 'badRequest' } ] }

这是我的代码:

// construct parameters
const req = new vision.Request({
image: new vision.Image('./uploads/reciept.png'),
features: [
new vision.Feature('TEXT_DETECTION', 1)
]
})

vision.annotate(req).then((res) => {
// handling response
//console.log(res.responses[0].textAnnotations);
var desc=res.responses[0].textAnnotations;
var descarr=[];
for (i = 0; i < desc.length; i++) { 
descarr.push(desc[i].description);
}

3 个答案:

答案 0 :(得分:6)

也遇到了这个问题。这是图像尺寸问题。我不知道硬限制是什么。 4MB工作,但9MB没有,它介于两者之间。

答案 1 :(得分:1)

我能够通过将图像保存为另一种格式并提交它来解决这个问题;图像文件本身存在“错误”(或至少是谷歌意外)。不确定你正在使用的语言中的图像处理(js?),但在Python中它很简单:

channel

答案 2 :(得分:0)

有趣。我今天遇到了同样的问题,使用谷歌的Java客户端。我读詹姆斯答案的方式,他有一个失败的JPEG文件,但作为PNG文件工作。在我的情况下,我有一个失败的PNG文件,但作为JPEG工作。

我已经得出结论,这是一个尺寸限制,因为我希望JPEG通常小于PNG;然而,詹姆斯的经验表明不然。

我在Google的Javadocs中找不到任何相关文档。由于响应是400错误,因此Java库可能无法正确编码图像缓冲区。