Vision API は、Cloud Storage に保存されている PDF や TIFF ファイルから、あらゆる Vision API の機能を検出できます。
PDF と TIFF からの機能検出は、files:asyncBatchAnnotate
関数を使用してリクエストする必要があります。これにより、オフライン(非同期)リクエストが実行され、operations
リソースでそのステータスを確認できるようになります。
PDF / TIFF リクエストからの出力は、指定した Cloud Storage バケットに作成された JSON ファイルに書き込まれます。
制限事項
Vision API は、2,000 ページまでの PDF/TIFF ファイルを受け入れます。これよりファイルが大きくなるとエラーが返されます。
認証
API キーは、files:asyncBatchAnnotate
リクエストではサポートされていません。サービス アカウントによる認証の手順については、サービス アカウントの使用をご覧ください。
認証に使用するアカウントは、出力のために指定する Cloud Storage バケットへのアクセス権(roles/editor
または roles/storage.objectCreator
以上の役割)が付与されている必要があります。
API キーを使用してオペレーションのステータスをクエリできます。手順については、API キーの使用をご覧ください。
機能検出リクエスト
現在のところ、PDF や TIFF ドキュメントの検出は Cloud Storage バケットに保存されているファイルに対してのみ実行できます。レスポンスの JSON ファイルも Cloud Storage バケットに保存されます。
コマンドライン
PDF / TIFF ドキュメント テキスト検出を行うには、POST リクエストを作成し、適切なリクエスト本文を指定します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://vision.googleapis.com/v1/files:asyncBatchAnnotate -d "{ 'requests':[ { 'inputConfig': { 'gcsSource': { 'uri': 'gs://your-source-bucket-name/folder/multi-page-file.pdf' }, 'mimeType': 'application/pdf' }, 'features': [ { 'type': 'DOCUMENT_TEXT_DETECTION' } ], 'outputConfig': { 'gcsDestination': { 'uri': 'gs://your-bucket-name/folder/' }, 'batchSize': 1 } } ] }"
ここで
inputConfig
は、他の Vision API リクエストで使用されるimage
フィールドの代わりです。これには、次の 2 つの子フィールドが含まれます。gcsSource.uri
- PDF または TIFF ファイルの Cloud Storage URI(リクエストするユーザーまたはサービス アカウントがアクセス可能な URI)mimeType
- 使用可能なファイルタイプ(application/pdf
またはimage/tiff
)。
outputConfig
は、出力の詳細を指定します。これには、次の 2 つの子フィールドが含まれます。gcsDestination.uri
- 有効な Cloud Storage URI。バケットは、リクエストを行うユーザーまたはサービス アカウントによって書き込み可能である必要があります。ファイル名はoutput-x-to-y
です。ここで、x
とy
は出力ファイルに含まれる PDF / TIFF のページ番号です。ファイルが存在する場合、その内容は上書きされます。batchSize
- それぞれの JSON 出力ファイルに含める出力ページ数を指定します。
レスポンス:
asyncBatchAnnotate
リクエストに成功すると、次のような name フィールドのみを含むレスポンスが返されます。
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
この name は関連 ID(例: 1efec2285bd442df
)を持つ長時間実行オペレーションの名前です。この名前は、v1.operations
API を使用してクエリできます。
Vision のアノテーション レスポンスを取得するには、v1.operations
エンドポイントに GET リクエストを送信し、URL でオペレーション ID を渡します。
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/operations/1efec2285bd442df
オペレーションが進行中の場合:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
オペレーションが完了すると、state
は DONE
として表示され、指定した Cloud Storage ファイルに結果が書き込まれます。
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
出力ファイル内の JSON は、画像のドキュメント テキスト検出リクエストの JSON と似ていますが、指定された PDF または TIFF の場所とファイルのページ数を示す context
フィールドが追加されています。
output-1-to-1.json
Go
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Go の設定手順を完了してください。詳細については、Vision Go API のリファレンス ドキュメントをご覧ください。
Vision に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。 詳細については、Vision Java API のリファレンス ドキュメントをご覧ください。
Vision に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。 詳細については、Vision Node.js API のリファレンス ドキュメントをご覧ください。
Vision に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。 詳細については、Vision Python API のリファレンス ドキュメントをご覧ください。
Vision に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
gcloud
使用する gcloud
コマンドは、ファイル形式によって異なります。
PDF テキスト検出を行う場合は、次の例のように
gcloud ml vision detect-text-pdf
コマンドを実行します。gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
TIFF テキスト検出を行うには、次の例のように
gcloud ml vision detect-text-tiff
コマンドを実行します。gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の Vision リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Vision リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Vision リファレンス ドキュメントをご覧ください。