はじめに
Google Cloud Vision APIを試してみた』では、APIを使用するためのセットアップを行いました。本稿ではいよいよAPIを実行してみます。
いきなりプログラミング言語から実行すると、プログラミング上の問題とAPIの使い方の問題の2つを相手に悪戦苦闘することが予想されるので、まずはWebのUIとして用意されているAPI Explorerを使用してAPIを試してみたいと思います。
API Explorer の使用
参考にするのは以下のページです。
https://cloud.google.com/vision/docs/quickstart?hl=ja
作業の内容としては、以下の3つです。
- Cloud Storage のバケットを作成する
- 画像を Cloud Storage にアップロードして公開する
- その画像を Vision API にリクエストに指定して送信する
Cloud Storage のバケットを作成する
Google Clooud Platformコンソールの左上のメニューをクリックして中程のプロダクトを下にスクロールし、Storageをクリックしてください。
バケットを作成をクリックします。
バケット名を入力して、作成をクリックします。
今回は作って試してすぐ削除という前提なのでいきなり作成をクリックしましたが、お詳しい方、気になる方、こだわりの方、どうぞ続行をクリックしてお好みの設定でお願いします。
作成が完了すると、以下のように作成したバケットの画面になり、アップロードが可能になると思います。
画像を Cloud Storage にアップロードして公開する
この状態で一度マニュアルに戻ります。マニュアルの以下のリンクをクリックして画像をダウンロードします。
ダウンロードしたファイルをアップロードするため、再びGCPのコンソールに戻りファイルをアップロードをクリックします。
先ほどダウンロードしたファイルを選択してアップロードします。完了すると以下のように表示されていると思います。
アップロードファイルがリストされているはずなので、そのファイル名をクリックします。
URIをクリップボードにコピーします。
画像を Vision API にリクエストに指定して送信する
マニュアルの中程に、APIを送信する機能が埋め込まれています。必要な情報を埋めてEXECUTEボタンをクリックするとAPIが実行できるというものです。
ですが、ここでいきなりRequest body作れとか無茶だと思いますので、ちょっとカンニングをします。
https://cloud.google.com/vision/docs/quickstart-cli?hl=ja
このページの中程に、以下のようにリクエストのサンプルがあります。
実行手段が何であろうが、所詮は上記のテキストをHTTPで送りつけられると、素直に実行してしまうのがAPIの悲しい性というものです。
さて、元に戻ります。マニュアルページに戻り中程のRequest bodyの編集フィールドで+をクリックし、requestsをクリックします。
同じ要領で、[Add Item]、image、source、imageUriとクリックして追加していきます。
imageUriに先ほどコピーしたURIをペーストします。
featuresも同様の流れで追加し、最終的に以下の内容になるようにします。
{ "requests": [ { "features": [ { "type": "LABEL_DETECTION", "maxResults": 3 }, { "type": "OBJECT_LOCALIZATION", "maxResults": 1 }, { "type": "TEXT_DETECTION", "maxResults": 1 } ] }, { "image": { "source": { "imageUri": "gs://cloud-vision-api_test/demo-img.jpg" } } } ] }
準備はこれて完了です。Executeをクリックします。
アカウントを選択しまする画面が表示されます。もちろん先ほどプロジェクトを作ったユーザーを選択しますが、ご自分で他のユーザーに権限を与えているならそのユーザーでも結構です。
許可をクリックします。
以下のような感じで結果が戻ればOKです。
あとは好きなように試してみましょう。
【注意】
Cloud Storage上にデータを置いたので課金対象です。これを削除するのか、またはプロジェクト事態を削除するのか、それともお支払いするのか、適切な判断をお願いします。
元も子もないこと言いますとimageUriにhttps://cloud.google.com/vision/docs/images/demo-img.jpg?hl=jaを指定しすると、わざわざダウンロードしてアップロードする流れが不要です。
そうすれば削除を忘れて課金されることも無いと思います。
ま、Googleさんもご商売ですので、消し忘れからの課金というせこい意図はなくとも、Storageは便利で高速なのでCloudネイティブに意識高く?いけばこんな感じにスマートにイケますアピールってことで。
最後にもう一つだけ付け加えておきますと、次の『 クライアント・ライブラリの使用』へ進まれる場合、そのままにしておいた方が手間が省けて良いと思います。もちろんプロジェクトを綺麗に作り直す場合以外はそのように。
それでは続いては、いよいよ本題の『 クライアント・ライブラリの使用』です。