arrow_back

Cloud Vision API と AutoML を使用して構築済みの ML モデルでトレーニングを行う

ログイン 参加
700 以上のラボとコースにアクセス

Cloud Vision API と AutoML を使用して構築済みの ML モデルでトレーニングを行う

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

Vertex AI AutoML を使用すると、ML の専門知識が限られている開発者でも、高品質な画像認識モデルをトレーニングできます。AutoML UI に画像をアップロードすると、Google Cloud ですぐに利用できるモデルをトレーニングして、使いやすい REST API を介して予測を生成することが可能です。

このラボでは、Cloud Storage に画像をアップロードして、さまざまな種類の雲(積雲、積乱雲など)を見分けられるようにカスタムモデルをトレーニングします。

ラボの内容

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

  • ラベル付きデータセットを Cloud Storage にアップロードし、CSV ラベルファイルを使用して AutoML に接続する。
  • AutoML でモデルをトレーニングする。
  • トレーニング済みモデルで予測を生成する。

設定と要件

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

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

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

必要なもの

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

  • 標準的なインターネット ブラウザ(Chrome を推奨)
  • ラボを完了するために十分な時間
注: 個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。 注: Pixelbook を使用している場合は、このラボをシークレット ウィンドウで実施してください。

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

  1. このラボ セッションで使用しているブラウザタブまたはウィンドウで、[接続の詳細] パネルからユーザー名をコピーし、[Google Console を開く] ボタンをクリックします。
注: アカウントの選択を求められたら、[別のアカウントを使用] をクリックします。
  1. ユーザー名を貼り付け、プロンプトが表示されたらパスワードを入力します。
  2. [次へ] をクリックします。
  3. 利用規約に同意します。

これは、このラボの間だけ有効な一時的なアカウントです。以下の点に注意してください。

  • 復元オプションを追加しないでください。
  • 無料トライアルに登録しないでください。
  1. コンソールが開いたら、左上のナビゲーション メニューナビゲーション メニュー アイコン)をクリックしてサービスのリストを確認します。

ナビゲーション メニュー

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールが組み込まれた仮想マシンです。5 GB の永続ホーム ディレクトリを提供し、Google Cloud 上で実行されます。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。gcloud は Google Cloud のコマンドライン ツールで、Cloud Shell にプリインストールされており、Tab キーによる入力補完がサポートされています。

  1. Google Cloud Console のナビゲーション パネルで、「Cloud Shell をアクティブにする」アイコン(Cloud Shell アイコン)をクリックします。

  2. [次へ] をクリックします。
    環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続の際に認証も行われ、プロジェクトは現在のプロジェクト ID に設定されます。次に例を示します。

Cloud Shell ターミナル

サンプル コマンド

  • 有効なアカウント名前を一覧表示する:

gcloud auth list

(出力)

Credentialed accounts: - <myaccount>@<mydomain>.com (active)

(出力例)

Credentialed accounts: - google1623327_student@qwiklabs.net
  • プロジェクト ID を一覧表示する:

gcloud config list project

(出力)

[core] project = <プロジェクト ID>

(出力例)

[core] project = qwiklabs-gcp-44776a13dea667a6

タスク 1. AutoML を準備する

ストレージ バケットを作成する

  1. 次のコマンドを実行してストレージ バケットを作成します。
gcloud storage buckets create gs://$GOOGLE_CLOUD_PROJECT-vcm \ -c standard \ -l us-central1
  1. Google Cloud コンソールでナビゲーション メニューを開き、[Cloud Storage] をクリックして、作成したバケットを確認します。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。

Cloud Storage バケットを作成する

タスク 2. トレーニング画像を Cloud Storage にアップロードする

雲の画像を分類するようにモデルをトレーニングするには、さまざまな種類の雲に関連付けられた画像の特徴をモデルが理解できるように、ラベル付けしたトレーニング データを用意する必要があります。この例のモデルは、3 種類の雲(巻雲、積雲、積乱雲)を分類できるように学習します。 AutoML を使用するには、トレーニング画像を Cloud Storage に保存する必要があります。

  1. 雲の画像を追加する前に、使用するバケットの名前の環境変数を作成します。

Cloud Shell で次のコマンドを実行します。

export BUCKET=$GOOGLE_CLOUD_PROJECT-vcm

トレーニング画像は Cloud Storage バケットで一般公開されています。

  1. 次に、Cloud Storage の gcloud storage コマンドライン ユーティリティを使用して、バケットにトレーニング画像をコピーします。
gcloud storage cp -r gs://spls/gsp223/images/* gs://${BUCKET}
  1. 画像のコピーが完了したら、Storage ブラウザの上部にある [更新] ボタンをクリックした後、バケット名をクリックします。分類する 3 種類の雲ごとに 3 つの写真フォルダがあります。

各フォルダ内の個々の画像ファイルをクリックすると、雲の種類ごとにモデルをトレーニングするための写真を表示できます。

タスク 3. データセットを作成する

トレーニング データは Cloud Storage に格納されました。次は AutoML からそのデータにアクセスする方法が必要となります。そこで、トレーニング画像の URL と、その画像に対応するラベルが各行に含まれる CSV ファイルを作成します。 この CSV ファイルはすでに用意してありますので、先ほどのバケット名を使用して更新してください。

  1. 次のコマンドを実行して、ファイルを Cloud Shell インスタンスにコピーします。
gcloud storage cp gs://spls/gsp223/data.csv .
  1. 次に、コピーした CSV ファイルをプロジェクト内のファイルで更新します。
sed -i -e "s/placeholder/${BUCKET}/g" ./data.csv
  1. 次に、このファイルを Cloud Storage バケットにアップロードします。
gcloud storage cp ./data.csv gs://${BUCKET}
  1. コマンドが完了したら、Storage ブラウザの上部にある [更新] ボタンをクリックします。バケットに data.csv ファイルが表示されることを確認します。

  2. Vertex AI データセット タブを開きます。ページは以下のようになります。

Google Cloud コンソール、データセット ページ

  1. コンソールの上部で、[+ 作成] をクリックします。

  2. [データセット名] に「clouds」と入力します。

  3. [画像分類(単一ラベル)] を選択します。

注: ご自身のプロジェクトでは、マルチクラス分類を使用することもできます。
  1. [作成] をクリックします。

  2. [インポート ファイルを Cloud Storage から選択] を選択し、先ほどアップロードしたファイルの URL にファイル名を追加します(your-bucket-name/data.csv)。

Google Cloud コンソールに戻って data.csv ファイルをクリックし、URI フィールドに移動するとこのリンクを簡単に取得できます。

  1. [続行] をクリックします。

画像のインポートには、2~5 分ほどかかります。インポートが完了すると、データセット内のすべての画像を含むページが表示されます。

[進行状況を確認] をクリックして、目標に沿って進行していることを確認します。

データセットを作成する

タスク 4. 画像を調べる

インポートが完了すると、アップロードした画像を確認するための [参照] タブにリダイレクトされます。

画像タブページでの画像タイル

左側のメニューからさまざまなラベルでフィルタして(積雲をクリックするなど)、トレーニング画像を確認してみてください。

注: 本番環境モデルを作成する場合は、高い精度を確保するために、ラベルごとに少なくとも 100 枚の画像を用意する必要があります。今回はデモなので、モデルを短時間でトレーニングできるよう、各種類の雲の画像を 20 枚に絞っています。

ラベルが間違っている画像があった場合は、画像をクリックしてラベルを切り替えてください。

イメージ 12/50

注: 使用するデータセットにまだラベルが付いていない場合、AutoML では Google のヒューマン ラベリング サービスを利用できます。

タスク 5. モデルのトレーニング

モデルのトレーニングを開始する準備が整いました。AutoML ではモデルのトレーニングが自動的に行われるため、モデルコードを記述する必要はありません。

  1. モデルをトレーニングするには、[新しいモデルをトレーニング] をクリックします。

  2. [トレーニング方法] タブで、[続行] をクリックします。

  3. [モデルの詳細] タブで、[続行] をクリックします。

  4. [トレーニング オプション] タブで、[続行] をクリックします。

  5. [説明可能性] タブで、[続行] をクリックします。

  6. [コンピューティングと料金] タブで、ノード時間を 8 に設定します。

注: この時点で [トレーニングを開始] をクリックすることもできます。しかし、トレーニングの完了までに最大 120 分かかることもあるため、事前トレーニング済みモデルを使用する次のタスクに進んでください。
  1. [キャンセル] をクリックして、次のタスクに進みます。

タスク 6. 予測を生成する

予測を生成する方法はいくつかあります。 このラボでは、UI を使用して画像をアップロードします。 このモデルが 2 つの画像をどのように分類するかを確認できます(1 つ目の画像は巻雲、2 つ目の画像は積乱雲です)。

  1. Cloud Shell デバイスに戻ります。

  2. これらの画像をローカルマシンにダウンロードします。

gcloud storage cp gs://spls/gsp223/examples/* .
  1. サンプル ファイルには、Base64 でエンコードされた雲の画像が含まれています。以下に、変更後の CLOUD1-JSON ファイルを示します。
{ "instances": [{ "content": "/9j/4AAQSkZJRgABAQAAAQABAAD2wCEAAUDBA0PDQ0NDQ0NDQ0NDQ0NDQ0 Q0ODQ0NDRUNDhERExMTDQ0WGBYSGBASExIBBQUFCAcIDwkJDxUVDxUVFRUV RUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFf/AABEIAeACgAMB aAAwDAQACEQMRAD8A+bzIcyW{{{{CONTENT REMOVED}}}aQDRJlsFBNCVq TqyIrhaQDRJlsFBNCVqjTqyIrhaQDRJlsFBNCVqjTqyIrhaQDRdkslFDpL9 tUVQXCuAAAsJoKCiYkSp//9k=" }], "parameters": { "confidenceThreshold": 0.5, "maxPredictions": 5 } }
  1. 事前デプロイされた AutoML モデルの Endpoint の値を環境変数にコピーします。
ENDPOINT=$(gcloud run services describe automl-service --platform managed --region us-central1 --format 'value(status.url)')
  1. 予測を要求する場合は、以下のコマンドを入力します。
curl -X POST -H "Content-Type: application/json" $ENDPOINT/v1 -d "@${INPUT_DATA_FILE}" | jq 上記の呼び出しは、AutoML に予測をリクエストします。 しかし、入力データが指定されていないため、リクエストは失敗します。 HTTP エラーコード 400 は、想定されたデータが存在しないことを示します。

予想される出力:

{ "error": { "code": 400, "message": "Empty instances.", "status": "INVALID_ARGUMENT" } }

理解度テスト

このラボで扱うトピックに関する短いクイズに答えて、AutoML の理解度をテストしてください。

ラボで得た知識を使って、予測を立てます。

Cloud1-JSON Image

このモデルが画像中の雲の種類を予測できるかどうかを確認してください。

  1. CLOUD1-JSON を入力ファイルとして設定します。
INPUT_DATA_FILE=CLOUD1-JSON
  1. 予測を要求する場合は、以下のコマンドを入力します。
curl -X POST -H "Content-Type: application/json" $ENDPOINT/v1 -d "@${INPUT_DATA_FILE}" | jq
  1. 返されたメッセージから、雲の種類が巻雲であることが確認できます。
"displayNames": [ "cirrus" ]
  1. 別の予測をお試しください。

Cloud2-JSON Image

このモデルが画像中の雲の種類を予測できるかどうか確認しましょう。

  1. CLOUD2-JSON を入力ファイルとして設定します。
INPUT_DATA_FILE=CLOUD2-JSON
  1. 予測を要求する場合は、以下のコマンドを入力します。
curl -X POST -H "Content-Type: application/json" $ENDPOINT/v1 -d "@${INPUT_DATA_FILE}" | jq
  1. 返されたメッセージから、雲の種類が積乱雲であることが確認できます。
"displayNames": [ "cumulonimbus" ]

お疲れさまでした

ウェブ UI を介して、独自のカスタム機械学習モデルをトレーニングし、そのモデルを使って予測を生成する方法を学びました。これで、独自の画像データセットでモデルをトレーニングするために必要な知識をすべて習得できました。

学習した内容

  • トレーニング画像を Cloud Storage にアップロードし、その画像を AutoML Vision で見つけられるように CSV を作成しました。
  • AutoML Vision UI でラベルを確認し、モデルをトレーニングしました。
  • 新しい雲の画像で予測を生成しました。

次のステップと詳細情報

ラボを終了する

ラボでの学習が完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Qwiklabs から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバック、ご提案、修正が必要な箇所については、[サポート] タブからお知らせください。

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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