Create an API Key

進行状況を確認

/ 30

Upload image to a bucket

進行状況を確認

/ 30

Analyzing the image's text with the Natural Language API

進行状況を確認

/ 40

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GSP075

Google Cloud セルフペース ラボ

概要

このラボでは、複数の ML API を組み合わせて使用し、ML によってできることを体験します。最初に Cloud Vision API のテキスト検出メソッドを使用し、光学式文字認識(OCR)を利用して画像からテキストを抽出します。次に、そのテキストを Translation API で翻訳する方法と、Natural Language API で分析する方法を学びます。

目標

このラボでは、次の作業を行います。

  • Vision API リクエストを作成し、curl で API を呼び出す
  • Vision API のテキスト検出(OCR)メソッドを使用する
  • Translation API を使用して画像から抽出したテキストを翻訳する
  • Natural Language API を使用してテキストを分析する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する一時的な認証情報(ユーザー名とパスワード)
    • このラボを行うために必要なその他の情報(ある場合)

    ラボのタイマーはページの上部に表示され、残り時間が示されます。

  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示された場合は、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの設定とアクセス] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの設定とアクセス] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで指定された認証情報を使用する必要があります。ご自身の Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後のページはクリックして先に進みます。

    • 利用規約に同意します。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニューのアイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. API キーを作成する

curl を使用して Vision API にリクエストを送信するため、リクエスト URL に渡す API キーを生成する必要があります。

  1. API キーを作成するには、ナビゲーション メニュー > [API とサービス] > [認証情報] の順に移動します。

  2. [+ 認証情報を作成] をクリックします。

  3. プルダウン メニューで [API キー] を選択します。

  4. [API キーを作成] ページが開きます。

  5. [API の制限を選択] で、プルダウン メニューをクリックして API を選択します。

  6. 利用可能な API のリストから、それぞれのチェック ボックスをオンにして、次の API を選択します。

  • Cloud Vision API
  • Cloud Translation API
  • Cloud Natural Language API
  1. [OK] をクリックして、選択した API を確定します。

  2. [作成] をクリックして、指定した制限付きの API キーを生成します。

  3. 次に、生成したキーをコピーして [閉じる] をクリックします。

  4. 各リクエストに API キーの値を挿入する必要がないように、環境変数に API キーを保存します。

  5. Cloud Shell で次のコマンドを実行します。<your_api_key> は先ほどコピーしたキーに置き換えます。

export API_KEY=<YOUR_API_KEY>

[進行状況を確認] をクリックして、実行したタスクを確認します。

API キーを作成する

タスク 2. Cloud Storage バケットに画像をアップロードする

Cloud Storage バケットを作成する

画像検出のために Vision API に画像を送信する方法は 2 つあります。base64 でエンコードされた画像文字列を API に送信する方法と、Cloud Storage に保存されたファイルの URL を渡す方法です。このラボでは、Cloud Storage バケットを作成して画像を保存します。

  1. コンソールでナビゲーション メニュー > [Cloud Storage] ブラウザの順に移動し、[バケットを作成] をクリックします。

  2. バケットに -bucket という一意の名前を付けます。

  3. バケットに名前を付けたら、[オブジェクトへのアクセスを制御する方法を選択する] をクリックします。

  4. [このバケットに対する公開アクセス禁止を適用する] チェックボックスをオフにします。

  5. [アクセス制御] で [きめ細かい管理] を選択して [作成] をクリックします。

バケットに画像をアップロードする

  1. 下のフランス語の看板の画像を右クリックし、[名前を付けて画像を保存] をクリックして、sign.jpg という名前でパソコンに保存します。

Le Bien Public というフランス語の看板

  1. [Cloud Storage] ブラウザで先ほど作成したバケットに移動し、[アップロード] > [ファイルをアップロード] をクリックして sign.jpg を選択します。

次に、バケットへのアクセスを非公開にしたままで、ファイルを公開して表示できるようにします。

  1. 画像ファイルのその他アイコンをクリックします。

[オブジェクト] タブに看板の画像ファイルがアップロードされ、その他アイコンがハイライト表示されている

  1. [アクセス権の編集] を選択します。

  2. [エントリを追加] をクリックして、次のように設定します。

  • [エンティティ] には [Public] を選択します。
  • 名前の値が [allUsers] であることを確認します。
  • [アクセス] には [Reader] を選択します。

新しく追加されたエントリのエンティティ、名前、アクセスの各項目がハイライト表示されている

  1. [保存] をクリックします。

ファイルに公開アクセス権が設定されます。

これで、ファイルをバケットに保存できました。次は Vision API リクエストを作成し、この画像の URL を渡します。

[進行状況を確認] をクリックして、実行したタスクを確認します。

画像をバケットにアップロードする

タスク 3. Cloud Vision API リクエストを作成する

  1. Cloud Shell 環境で ocr-request.json ファイルを作成した後、以下のコードをそのファイルに追加します。my-bucket-name は、作成したバケットの名前に置き換えます。ファイルを作成するには、任意のコマンドライン エディタ(nanovimemacs)を使用するか、または Cloud Shell で鉛筆アイコンをクリックしてコードエディタを開きます。

鉛筆アイコンが表示されている [エディタを開く] ボタン

  1. ocr-request.json ファイルに次の行を追加します。
{ "requests": [ { "image": { "source": { "gcsImageUri": "gs://my-bucket-name/sign.jpg" } }, "features": [ { "type": "TEXT_DETECTION", "maxResults": 10 } ] } ] }

この後、Cloud Vision API の TEXT_DETECTION 機能を使用します。この機能は、画像に対して光学式文字認識(OCR)を実行してテキストを抽出します。

タスク 4. テキスト検出メソッドを呼び出す

  1. Cloud Shell で、curl を使用して Cloud Vision API を呼び出します。
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}

レスポンスの最初の部分は次のようになります。

{ "responses": [ { "textAnnotations": [ { "locale": "fr", "description": "LE BIEN PUBLIC\nles dépêches\nPour Obama,\nla moutarde\nest\nde Dijon\n", "boundingPoly": { "vertices": [ { "x": 138, "y": 40 }, { "x": 622, "y": 40 }, { "x": 622, "y": 795 }, { "x": 138, "y": 795 } ] } }, { "description": "LE", "boundingPoly": { "vertices": [ { "x": 138, "y": 99 }, { "x": 274, "y": 82 }, { "x": 283, "y": 157 }, { "x": 147, "y": 173 } ] } }, { "description": "BIEN", "boundingPoly": { "vertices": [ { "x": 291, "y": 79 }, { "x": 413, "y": 64 }, { "x": 422, "y": 139 }, { "x": 300, "y": 154 } ] } ... ] }] }

OCR メソッドにより、画像から多くのテキストを抽出できます。

textAnnotations で取り出された最初のデータは、API が画像内で見つけたテキストのブロック全体です。これには次のものが含まれます。

  • 言語コード(この場合はフランス語を示す "fr")
  • テキストの文字列
  • 画像内でテキストが見つかった場所を示す境界ボックス

その下には、テキスト内で見つかった単語それぞれについてのオブジェクトが、該当の単語の境界ボックスも含めて示されます。

注: Cloud Vision API は、より多くのテキストを含む画像向けの DOCUMENT_TEXT_DETECTION 機能も備えています。このレスポンスにはさらに細かい情報が含まれ、テキストはページ、ブロック、段落、単語に分けられます。

フランス語を知らなければ、このテキストの意味はおそらくわかりません。次のステップは翻訳です。

  1. 次の curl コマンドを実行してレスポンスを ocr-response.json ファイルに保存し、後で参照できるようにします。
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY} -o ocr-response.json

タスク 5. 画像から抽出したテキストを Translation API に送信する

Translation API では、テキストを 100 以上の言語に翻訳できます。入力テキストの言語を検出することもできます。フランス語のテキストを英語に翻訳するには、テキストとターゲット言語の言語コード(en-US)を Translation API に渡します。

  1. まず、translation-request.json ファイルを作成して、次の行を追加します。
{ "q": "your_text_here", "target": "en" }

q は翻訳する文字列を渡す場所です。

  1. ファイルを保存します。

  2. Cloud Shell で次の Bash コマンドを実行し、前の手順で説明した画像テキストを抽出して、新しい translation-request.json にコピーします(これらはすべて 1 つのコマンドで行われます)。

STR=$(jq .responses[0].textAnnotations[0].description ocr-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" translation-request.json
  1. これで、Translation API を呼び出す準備が整いました。次のコマンドを実行すると、レスポンスが translation-response.json ファイルにコピーされます。
curl -s -X POST -H "Content-Type: application/json" --data-binary @translation-request.json https://translation.googleapis.com/language/translate/v2?key=${API_KEY} -o translation-response.json
  1. このファイルで Translation API のレスポンスを確認するには、次のコマンドを実行します。
cat translation-response.json

看板の内容が理解しやすくなりました。

{ "data": { "translations": [ { "translatedText": "TO THE PUBLIC GOOD the dispatches For Obama, the mustard is from Dijon", "detectedSourceLanguage": "fr" } ] } }

レスポンスの説明:

  • translatedText には翻訳結果が含まれます。
  • detectedSourceLanguagefr、つまりフランス語の ISO 言語コードです。

Translation API は 100 以上の言語をサポートし、言語サポートのリファレンスでその一覧が示されています。

画像に含まれるテキストを翻訳するだけでなく、詳細に分析したい場合があります。そのような場合は、Natural Language API が役に立ちます。次のステップに進みましょう。

タスク 6. Natural Language API を使用して画像のテキストを分析する

Natural Language API は、エンティティを抽出して感情と構文を分析し、テキストをカテゴリ別に分類することによって、テキストの理解を助けます。analyzeEntities メソッドを使用して、Natural Language API がこの画像のテキストにどのようなエンティティを見つけられるかを見てみましょう。

  1. API リクエストを設定するため、次のような nl-request.json ファイルを作成します。
{ "document":{ "type":"PLAIN_TEXT", "content":"your_text_here" }, "encodingType":"UTF8" }

リクエストでは、送信するテキストについて次の情報を Natural Language API に知らせます。

  • type: サポートされている値は PLAIN_TEXT または HTML です。

  • content: 分析のために Natural Language API に送信するテキストを渡します。Natural Language API では、Cloud Storage に保存されているファイルをテキスト処理用に送信することもできます。Cloud Storage からファイルを送信するには、contentgcsContentUri に置き換えて、Cloud Storage に保存されているテキスト ファイルの URI の値を使用します。

  • encodingType: テキストを処理するときに使用するテキスト エンコードの種類を API に指示します。API はこの情報により、特定のエンティティがテキストのどこに出現するかを調べます。

  1. Cloud Shell で次の Bash コマンドを実行し、翻訳されたテキストを Natural Language API リクエストの コンテンツ ブロックにコピーします。
STR=$(jq .data.translations[0].translatedText translation-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" nl-request.json

nl-request.json ファイルに、元の画像から翻訳された英語のテキストが含まれるようになりました。いよいよこのテキストを分析します。

  1. 次の curl リクエストを使用して、Natural Language API の analyzeEntities エンドポイントを呼び出します。
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @nl-request.json

レスポンス全体をスクロールすると、Natural Language API によって発見されたエンティティを参照できます。

{ "entities": [ { "name": "dispatches", "type": "OTHER", "metadata": {}, "salience": 0.3560996, "mentions": [ { "text": { "content": "dispatches", "beginOffset": 23 }, "type": "COMMON" } ] }, { "name": "mustard", "type": "OTHER", "metadata": {}, "salience": 0.2878307, "mentions": [ { "text": { "content": "mustard", "beginOffset": 38 }, "type": "COMMON" } ] }, { "name": "Obama", "type": "PERSON", "metadata": { "mid": "/m/02mjmr", "wikipedia_url": "https://en.wikipedia.org/wiki/Barack_Obama" }, "salience": 0.16260329, "mentions": [ { "text": { "content": "Obama", "beginOffset": 31 }, "type": "PROPER" } ] }, { "name": "Dijon", "type": "LOCATION", "metadata": { "mid": "/m/0pbhz", "wikipedia_url": "https://en.wikipedia.org/wiki/Dijon" }, "salience": 0.08129317, "mentions": [ { "text": { "content": "Dijon", "beginOffset": 54 }, "type": "PROPER" } ] } ], "language": "en" }

Wikipedia のページを含むエンティティの場合、API はそのページの URL を含むメタデータとエンティティの mid を提供します。mid とは、Google のナレッジグラフでこのエンティティにマッピングされる ID です。詳細情報を取得するには、Knowledge Graph API を呼び出してこの ID を渡します。Natural Language API はすべてのエンティティについて、mentions(テキスト内の出現箇所)、type(タイプ)、および salience(テキスト全体におけるエンティティの重要性を示す [0,1] の範囲)の情報を提供します。Natural Language API では英語以外に言語サポート リファレンスの一覧にある言語もサポートされています。

この画像に限れば、目視で重要なエンティティを見つけ出すのは比較的簡単ですが、数千に及ぶ画像のライブラリがある場合、その作業は非常に困難になります。OCR、翻訳、および自然言語処理は、大量の画像データセットから意味を抽出するのに役立ちます。

[進行状況を確認] をクリックして、実行したタスクを確認します。

Natural Language API を使用して画像のテキストを分析する

お疲れさまでした

ここでは、3 つの異なる ML API を組み合わせる方法を学びました。すなわち、Vision API の OCR メソッドで画像からテキストを抽出し、Translation API でそのテキストを英語に翻訳し、Natural Language API でそのテキスト内のエンティティを検出しました。これらの API を併用することで、大量の画像データセットから意味を抽出できます。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2026 年 4 月 8 日

ラボの最終テスト日: 2026 年 4 月 8 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。