2016-06-13 42 views
5

Google Cloud Vision APIの新機能です。私は主に請求書と領収書のために画像上でOCRをやっています。Google Cloud Vision API 'リクエストの拒否'

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); 
} 
+0

特定の画像をOCRするときにこのエラーが発生していますか?問題が画像の仕様やAPI自体に関連しているかどうかを確認するために、OCRに同じ画像を複数回続けてもらえますか? – Kamran

答えて

6

この問題も同様です。画像サイズの問題でした。私は厳しい限界が何であるか分からない。 4MBが動作しましたが、9MBは動作しませんでしたが、それはその中間にあります。

+1

https://cloud.google.com/vision/docs/image-best-practices#file_sizesによると、最大ファイルサイズは4MBで、最大リクエストサイズは8MB – Sock

+1

です。これは私のために修正されました(画像のサイズ変更) 。彼らはより有益なエラーメッセージを追加した場合、それは良いだろう。 –

1

私が働くことができた、それが正常に動作しているが、私はそれが私にこのエラーを与えるいくつかの他の画像をしようとすると、いくつかの画像の場合

これを回避するには、画像を別の形式で保存して代わりに送信します。画像ファイル自体に「間違っている」(または少なくともGoogleが予期しない)何かがありました。あなたが使用している言語での画像操作がわからないが、Pythonで、それは同じくらい簡単だった(JSを?):

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

私はJSを使用しています。あなたの仕事は生のテキストから情報を抽出することも含んでいましたか? –

+0

これは、私がこのエラーに遭遇した特定のイメージには関係しないとは思うが、もっと広くしようとしている。このエラーが発生したイメージは、成功したイメージと比較して視覚的にユニークなものはありませんでした。 – James

0

興味深いです。私は今日、GoogleのJavaクライアントを使用して同じ問題に遭遇しました。私がジェームズの答えを読んだところ、彼は失敗したJPEGファイルを持っていましたが、PNGファイルとして働いていました。私の場合は、失敗したPNGファイルがありましたが、JPEGとして機能しました。

私はJPEGが通常PNGよりも小さいと予想していたので、サイズ制限だと結論付けました。しかし、ジェームズの経験は別のことを示唆している。

GoogleのJavadocで関連するドキュメントが見つかりませんでした。応答が400エラーであるため、おそらくJavaライブラリは画像バッファを正しくエンコードしていません。

1

doc Best Practices docは、画像ファイルのサイズが4 MBを超えないように指定しています。上記の回答に基づいて、これが問題になる可能性があります。

関連する問題