
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create an API Key
/ 25
Upload an Image to a Cloud Storage bucket
/ 25
Upload an image for Face Detection to your bucket
/ 25
Upload an image for Landmark Annotation to your bucket
/ 25
Cloud Vision API は、画像を分析し情報を抽出できるクラウドベースのサービスです。画像内の物体、顔、テキストの検出に利用できます。Cloud Vision API を使用すると、高度な ML モデルをシンプルな REST API にカプセル化し、画像の内容を把握できます。
このラボでは、Cloud Vision API に画像を送り、物体、顔、ランドマークを検出します。
curl
で API を呼び出すこちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [ユーザー名] を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [パスワード] を確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
[承認] をクリックします。
出力は次のようになります。
出力:
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
curl
を使用して Vision API にリクエストを送信するため、リクエスト URL に含める API キーを生成する必要があります。
API キーを作成するには、Cloud コンソールのナビゲーション メニューで、[API とサービス] > [認証情報] を選択します。
[認証情報を作成] をクリックし、[API キー] を選択します。
下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。
次に、リクエストごとに API キーの値を挿入しなくて済むようにするために、環境変数にキーを保存します。
画像検出のために Cloud Vision API に画像を送信する方法は 2 つあります。base64 でエンコードされた画像文字列を API に送信する方法と、Cloud Storage に保存されたファイルの URL を渡す方法です。
ここでは Cloud Storage の URL を使用します。最初のステップは、画像を保存するための Cloud Storage バケットを作成することです。
ナビゲーション メニューから、[Cloud Storage] > [バケット] を選択します。[バケット] の隣にある [作成] をクリックします。
バケットに
バケットに名前を付けたら、[オブジェクトへのアクセスを制御する方法を選択する] をクリックします。
[このバケットに対する公開アクセス禁止を適用する] をオフにして、[きめ細かい管理] を選択します。
バケットに関するその他の設定は、デフォルトのままで問題ありません。
バケットにこのファイルが表示されます。
次に、この画像を公開する必要があります。
[エントリを追加] をクリックし、以下を入力します。
[保存] をクリックします。
これで、ファイルをバケットに保存できました。次は Cloud Vision API リクエストを作成し、このドーナツの画像の URL を渡します。
下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。
Cloud Shell で request.json
ファイルを作成します。
または、コマンドライン エディタ(nano
、vim
、emacs
)を使用して、request.json
ファイルを作成します。
my-bucket-name
の部分は、先ほど作成したストレージ バケットの名前に置き換えてください。
最初に使用する Cloud Vision API の機能は、ラベル検出です。このメソッドは、画像に含まれるラベル(単語)のリストを返します。
curl
を使用して Cloud Vision API を呼び出します。次のようなレスポンスが表示されます。
API は、ドーナツの種類をシュガー ドーナツと特定することができました。分析がうまくいったようです。Vision API で検出されたラベルごとに、次のような結果が返されます。
description
: アイテムの名前と説明。score
: 説明と画像の内容がどの程度一致しているかの信頼度を示す 0~1 の数字。mid
: Google のナレッジグラフのアイテムの mid
に対応する値。Knowledge Graph API を呼び出すときに mid
を使用すると、アイテムに関する詳細情報を取得できます。Cloud Vision API を使うと、画像の内容に関するラベルを取得できます。また、特定の画像の詳細情報をインターネットで検索することもできます。API の WebDetection メソッドを使用することで、以下のようなさまざまな興味深いデータを取得できます。
ウェブ検出を試してみましょう。同じベニエの画像を使用して request.json
ファイルの 1 行を変更します(まったく異なる画像を使用することもできます)。
request.json
ファイルを編集します。features リストの type を LABEL_DETECTION
から WEB_DETECTION
に変更します。request.json
は次のようになります。ファイルを保存します。
これを Cloud Vision API に送信するには、先ほどと同じように curl
コマンドを使用します(Cloud Shell で上矢印を押すだけです)。
webEntities
で始まるレスポンスを見てみましょう。以下は、この画像が返したエンティティの一部です。この画像は Cloud ML API の多くのプレゼンテーションで使用されているため、API は「Machine learning」や「Google Cloud Platform」といったエンティティを検出しました。
fullMatchingImages
、partialMatchingImages
、pagesWithMatchingImages
の下の URL を調べると、多くの URL がこのラボサイトを参照していることがわかります。
ベニエの他の画像で、まったく同じではないものを探しているとします。その場合は、API レスポンスの visuallySimilarImages
部分が役に立ちます。次のような視覚的に類似した画像が検出されます。
これらの URL にアクセスすれば、類似の画像を確認できます。
ベニエが食べたくなりますね。これは、Google 画像検索の画像による検索と似ています。
Cloud Vision を使用すると、使いやすい REST API で画像検索機能にアクセスし、それをアプリケーションに統合できます。
次に、Vision API の顔の検出メソッドについて説明します。
顔の検出メソッドは、画像内で検出された顔に関するデータを返します。返されるデータには、顔の感情や画像内での位置などが含まれます。
このメソッドを使用するには、顔を含む新しい画像を Cloud Storage バケットにアップロードします。
下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。
request.json
ファイルを以下のように更新します。新しい画像の URL が追加され、ラベル検出ではなく顔検出とランドマーク検出が使用されています。my-bucket-name の部分は、Cloud Storage バケットの名前に置き換えてください。curl
コマンドを使用して Vision API を呼び出す準備ができました。faceAnnotations
オブジェクトを確認すると、画像内に見つかったそれぞれの顔(この場合は 3 つ)に関して、API がオブジェクトを 1 つ返していることがわかります。以下は、レスポンスの一部を抜粋したものです。boundingPoly
は、画像内の顔の周囲の x 座標と y 座標を示します。fdBoundingPoly
は顔の肌部分にフォーカスした、boundingPoly
よりも小さなボックスです。landmarks
は、それぞれの顔の特徴を表すオブジェクトの配列です(聞き慣れないものも含まれているかもしれません)。この値から、ランドマークの種類と、その特徴の 3 次元の位置(x, y, z 座標)がわかります。z 座標は奥行きを示しています。残りの値からは、喜びや悲しみ、怒り、驚きの感情の尤度など、顔に関する詳細情報がわかります。上記のレスポンスは、画像で最も奥に立っている人物についてのものです。彼はおどけた表情をしていますが、それが joyLikelihood
の LIKELY
という値に表れています。
ランドマークの検出メソッドを使うと、一般的および不明瞭なランドマークを識別できます。ランドマークの名前、その緯度と経度の座標、ランドマークが識別された画像内の位置が返されます。
このメソッドを使用するには、Cloud Storage バケットに新しい画像をアップロードします。
引用: 聖ワシリイ大聖堂、モスクワ、ロシア(2017 年 12 月 15 日)、撮影 Nikolay Vorobyev、無料メディア リポジトリ Unsplash より。https://unsplash.com/photos/jaH3QF46gAY から取得。このファイルは、Unsplash ライセンスの下で使用を許諾されています。
下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。
request.json
ファイルを以下のように更新します。新しい画像の URL が追加され、ランドマーク検出が使用されています。my-bucket-name の部分は、Cloud Storage バケットの名前に置き換えてください。curl
コマンドを使用して Vision API を呼び出す準備ができました。landmarkAnnotations
の部分を見てみましょう。Cloud Vision API は、写真が撮影された場所を特定し、その場所の座標(ロシア、モスクワの赤の広場にある聖ワシリイ大聖堂)を示すことができました。
このレスポンスに含まれる値は、上記の labelAnnotations
のレスポンスに似ています。
mid
: ランドマークの値。description
: ランドマークの名前。score
: 信頼度。boundingPoly
: ランドマークが特定された画像内の領域。locations
キー: 画像の緯度と経度の座標。Vision API は、オブジェクト ローカライズを使用して、画像内の複数のオブジェクトを検出および抽出できます。オブジェクト ローカライズにより、画像内のオブジェクトが識別され、オブジェクトごとに LocalizedObjectAnnotation が指定されます。LocalizedObjectAnnotation
ごとに、オブジェクトに関する情報、オブジェクトの位置、画像内でオブジェクトがある領域の四角い境界線が識別されます。
オブジェクト ローカライズでは、画像内で目立っているオブジェクトと、それほど目立たないオブジェクトの両方が識別されます。
オブジェクト情報は英語でのみ返されます。Cloud Translation を使うと、英語のラベルをさまざまな言語に翻訳できます。
このメソッドを使用するには、インターネット上の既存の画像を使い、request.json
ファイルを更新します。
request.json
ファイルを以下のように更新します。新しい画像の URL が追加され、オブジェクト ローカライズが使用されています。curl
コマンドを使用して Vision API を呼び出す準備ができました。localizedObjectAnnotations
の部分を見てみましょう。ご覧のように、Vision API はこの写真に自転車と自転車の車輪が写っていることを認識できました。このレスポンスに含まれる値は、上記の labelAnnotations
のレスポンスに似ています。オブジェクトの mid
、name
(名前)、score
(信頼度)のほか、boundingPoly
はオブジェクトが識別された画像の領域を示しています。
さらに、boundingPoly
には normalizedVertices
キーがあり、画像内のオブジェクトの座標を示しています。これらの座標は 0 から 1 の範囲で正規化され、0 は画像の左上、1 は画像の右下を表します。
これで、Vision API を使って画像を分析し、画像内のオブジェクトに関する情報を抽出することができました。
Vision API のラベル、顔、ランドマークの検出とオブジェクト ローカライズのメソッドを見てきましたが、他にもまだ取り上げていないメソッドが 3 つあります。それらについて詳しくは、メソッド: images.annotate のドキュメントをご確認ください。
このラボでは、Vision API を使って画像を分析する方法について学びました。API にさまざまな画像の Cloud Storage の URL を渡すことで、API によって画像内で見つかったラベル、顔、ランドマーク、オブジェクトが返されました。この他に、API に base64 でエンコードされた画像文字列を渡すことも可能です。これは、データベースやメモリに保存されている画像を分析する場合に便利です。
このセルフペース ラボは、「Integrate with Machine Learning APIs」クエストと「Intro to ML: Image Processing」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、修了するとその成果が認められてバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、このラボが含まれるクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なすべてのクエストについては、Google Cloud Skills Boost カタログをご覧ください。
以下の Machine Learning API のラボもお試しください。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2023 年 10 月 6 日
ラボの最終テスト日: 2023 年 10 月 13 日
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。