演習 - Azure Custom Vision を統合する

完了

このモジュールでは、Azure Custom Vision を使用する方法について学習します。 "追跡オブジェクト" の一連の写真を撮影し、Custom Vision サービスにアップロードして、トレーニング プロセスを開始します。 その後、サービスを使用し、Web カメラ フィードの写真をキャプチャして追跡対象オブジェクトを検出します。

Azure AI Custom Vision を理解する

Azure AI Custom Vision は Cognitive Services ファミリの一部であり、画像分類器をトレーニングするために使用されます。 画像分類子とは、トレーニング済みモデルを使用して一致するタグを適用する AI サービスです。 アプリケーションでは、この分類機能を使用して ''追跡オブジェクト'' を検出します。

Custom Vision についてさらに学習します。

Custom Vision を準備する

開始するには、Custom Vision プロジェクトを作成する必要があります。 Custom Vision プロジェクトを作成する最速の方法は、Custom Vision ポータルを使用することです。

このクイックスタート チュートリアルに従って、アカウントとプロジェクトを設定します。 ''画像のアップロードとタグ付け'' セクションまでの手順に従います。 5 つの画像を含む 1 つのタグを作成する必要があります。

警告

モデルをトレーニングするには、タグごとに少なくとも 2 つのタグと 5 つの画像が必要です。 後で、アプリケーションを介してさらに画像を追加します。 しかし、このアプリケーションを使用するには、後でトレーニング プロセスが失敗しないように、5 つの画像を含むタグを最低 1 つ作成する必要があります。

シーンを準備する

  1. [Project](プロジェクト) ウィンドウで、 [Assets](アセット)>MRTK.Tutorials.AzureCloudServices>[Prefabs](プレハブ)>Manager フォルダーの順に移動します。

    Screenshot of Unity with Project window showing path to ObjectDetectionManager prefab.

  2. そこから、[ObjectDetectionManager] プレハブをシーン階層にドラッグします。

    Screenshot of Unity with ObjectDetectionManager script component configuration fields shown in Inspector.

  3. [階層] ウィンドウで、[ObjectDetectionManager] オブジェクトを見つけて選択します。 ObjectDetectionManager プレハブには ObjectDetectionManager (スクリプト) コンポーネントが含まれており、[インスペクター] ウィンドウからわかるように、それは Azure の設定とプロジェクトの設定に依存します。

Azure API リソースの資格情報を取得する

ObjectDetectionManager (スクリプト) 設定に必要な資格情報は、Azure portal と Custom Vision ポータルから取得できます。

Azure 設定の資格情報を取得する

このチュートリアルの「シーンの準備」セクションで作成した Cognitive Services の種類の Custom Vision リソースを探して見つけます。 そこで、[概要] または [キーとエンドポイント] を選択して、必要な資格情報を取得します。

  • Azure リソース サブスクリプション ID:[概要] セクションのサブスクリプション ID を使用します。
  • Azure リソース グループ名:[概要] セクションのリソース グループ名を使用します。

Cognitive Service グループ名には、-Prediction が後に続く Custom Vision リソース名を使用します。

  • リソース ベース予測エンドポイント:Custom Vision -Prediction リソースの [キーとエンドポイント] のエンドポイントを使用します。
  • API 予測キー:Custom Vision -Prediction リソースの [キーとエンドポイント] のキー 1 を使用します。

プロジェクト設定の資格情報を取得する

Custom Vision ダッシュボードで、このチュートリアル用に作成したプロジェクトを開いた後、ページの右上隅にある [設定] (歯車) アイコンを選択して [設定] ページを開きます。 必要な資格情報は、右側の [リソース] セクションと左側の [全般] セクションにあります。

  • リソース ベース エンドポイント :[リソース] セクションのエンドポイントを使用します。 これは、Custom Vision リソースの [キーとエンドポイント] のエンドポイントと一致するはずです。
  • API キー:[リソース] セクションのキーを使用します。 これは、Custom Vision リソースの [キーとエンドポイント] のキーと一致するはずです。
  • プロジェクト ID:[全般] セクションのプロジェクト ID を使用します。
  1. これで ObjectDetectionManager (スクリプト) が正しく設定されたので、シーン階層内の [SceneController] オブジェクトを見つけて選択します。

    Screenshot of Unity with SceneController script component configuration fields shown in Inspector.

  2. SceneController コンポーネントの [オブジェクト検出マネージャー] フィールドは空です。 ObjectDetectionManager を [階層] から SceneController コンポーネントにドラッグし、シーンを保存します。

    Screenshot of Unity with SceneController script component configured.

画像の取得とアップロード

  1. シーンを実行し、[オブジェクトの設定] を選択します。 前のレッスンで作成した追跡オブジェクトの 1 つの名前を入力します。 [オブジェクト カード] の下部にある [Computer Vision] ボタンを選択します。

  2. 新しいウィンドウが開きます。 6 枚の写真を撮り、画像認識用にモデルをトレーニングします。 [カメラ] ボタンを選択し、AirTap を実行し、追跡したいオブジェクトを見ます。これを 6 回実行します。

    ヒント

    モデル トレーニングを改善するには、各画像をさまざまな角度と照明条件で撮影してみてください。

  3. 十分な画像を得たら、[トレーニング] ボタンを選択して、クラウドでモデルトレーニング プロセスを開始します。 これにより、すべての画像がアップロードされ、トレーニングが開始されます。 プロセスには数分かかる場合があります。 メニュー内のメッセージには、現在の進行状況が示されます。 プロセスが完了したことが示されたら、アプリケーションを停止できます。

    ヒント

    撮影された画像は、ObjectDetectionManager (script) によって Custom Vision サービスに直接アップロードされます。 代わりに、Custom Vision API は画像への URL を受け取ります。 演習として、画像を代わりに BLOB ストレージにアップロードするように ObjectDetectionManager (スクリプト) を変更しても構いません。

警告

トレーニングが失敗した場合、Custom Vision ダッシュボードをチェックし、少なくとも 2 つのタグがあること、および各タグに少なくとも 5 つの画像があることを確認します。

オブジェクトを検出する

これで、トレーニング済みのモデルをテストで使用できるようになりました。 アプリケーションを実行します。 メイン メニューから [オブジェクトの検索] を選択し、目的の追跡対象オブジェクトの名前を入力します。 [オブジェクト カード] が表示されます。 次に、[Custom Vision] ボタンを選択します。 *ObjectDetectionManager は、カメラからバックグラウンドで画像キャプチャの取得を開始します。 メニューには、アプリケーションの進行状況が示されます。 モデルのトレーニングに使用したオブジェクトにカメラを向けます。 間もなく、オブジェクトが検出されるはずです。