【问题标题】:Google Cloud Vision API 'Request Admission Denied'谷歌云视觉 API“请求准入被拒绝”
【发布时间】:2016-10-14 07:04:50
【问题描述】:

我是 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);
}

【问题讨论】:

  • 在对特定图像进行 OCR 时是否收到此错误?您能否继续对同一图像进行多次 OCR 以查看问题是否与图像规范或 API 本身有关?

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


【解决方案1】:

也遇到了这个问题。这是一个图像大小问题。我不知道硬限制是什么。 4MB 有效,但 9MB 无效,介于两者之间。

【讨论】:

【解决方案2】:

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

from PIL import Image
bad_image = Image.open(open('failure.jpg', 'rb'))
bad_image.save(open('success.png', 'wb'))

【讨论】:

  • 我正在使用 JS 。您的工作是否还涉及从原始文本中提取信息?
  • 这就是我试图更广泛地做的事情,尽管我认为它与遇到此错误的特定图像无关。与成功的图像相比,遇到此错误的图像在视觉上没有什么独特之处。
【解决方案3】:

Best Practices 文档说图像文件大小不应超过 4 MB。根据上述回复,这可能是问题所在。

【讨论】:

    【解决方案4】:

    有趣。我今天使用 Google 的 Java 客户端遇到了同样的问题。我阅读詹姆斯回答的方式是,他有一个失败的 JPEG 文件,但可以作为 PNG 文件使用。就我而言,我有一个失败的 PNG 文件,但可以作为 JPEG 文件使用。

    我认为这是大小限制,因为我希望 JPEG 通常比 PNG 小;然而,詹姆斯的经验表明并非如此。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      相关资源
      最近更新 更多