Custom Vision と Windows Machine Learning を使用した画像の分類

Image classification flow

このガイドでは、Azure Custom Vision サービスを使用して食べ物の画像を分類できるようにニューラル ネットワーク モデルをトレーニングする方法、モデルを ONNX 形式にエクスポートする方法、Windows デバイスのローカル環境で 実行されている Windows Machine Learning (Windows ML) アプリケーションに展開する方法について説明します。 機械学習に関する専門知識は必要ありません。 手順を追ってプロセスを案内します。

Custom Vision を使用してモデルの構築とトレーニングを行う方法を学習する場合は、「モデルのトレーニング」に関する記事に進んでかまいません。

モデルがあり、ゼロから Windows ML アプリを作成する方法を知りたい場合は、完全な「Windows ML アプリ チュートリアル」を参照してください。

Windows ML アプリ用の既存の Visual Studio プロジェクトから開始する場合は、Custom Vision と Windows ML のチュートリアル サンプル アプリを複製し、それを使用して開始できます。

シナリオ

このチュートリアルでは、Windows デバイス上で実行する機械学習食品分類アプリケーションを作成します。 このモデルは、特定の種類のパターンを認識して食品の画像を分類するようにトレーニングされ、画像を渡されると、分類タグと、その分類の関連する信頼度の値を返します。

モデルのトレーニングの前提条件

モデルを構築してトレーニングするには、Azure Custom Vision サービスのサブスクリプションが必要です。

Azure を初めて使用する場合は、Azure 無料アカウントにサインアップできます。 これにより、Azure AI を使用して機械学習モデルを構築、トレーニング、展開できるようになります。

ヒント

Azure のサインアップ オプションと Azure 無料アカウントについて詳しく知りたいですか。 その場合には、「Azure アカウントの作成」を確認してください。

Windows ML アプリの展開の前提条件

Windows ML アプリを作成して展開するには、次のものが必要です。

  • Windows 10 バージョン 1809 (ビルド 17763) 以降。 ビルド バージョン番号を確認するには、実行コマンド (Windows ロゴ キー + R) を使用して winver を実行します。
  • ビルド 17763 以降用の Windows SDK。 ダウンロードするには、「Windows SDK」を参照してください。
  • Visual Studio 2017 バージョン 15.7 以降。ただし、Visual Studio 2022 以降を使用することをお勧めします。 このチュートリアルの一部のスクリーンショットは、表示される UI とは異なる場合があります。 Visual Studio をダウンロードするには、「Windows 開発用のダウンロードとツール」を参照してください。
  • Windows ML コード ジェネレーター (mlgen) Visual Studio 拡張機能。 Visual Studio 2019 以降または Visual Studio 2017 用にダウンロードします。
  • ユニバーサル Windows プラットフォーム (UWP) アプリを作成する場合は、Visual Studio でユニバーサル Windows プラットフォーム開発ワークロードを有効にする必要があります。
  • PC で開発者モードを有効にするには、「デバイスを開発用に有効にする」を参照してください。

Note

Windows ML API は、最新バージョンの Windows 10 (1809 以降) および Windows Server 2019 に組み込まれています。 ターゲット プラットフォームが以前のバージョンの Windows の場合、Windows ML アプリを再頒布可能な NuGet パッケージ (Windows 8.1 以降) に移植できます。

データを準備する

機械学習モデルは、既存のデータでトレーニングする必要があります。 このガイドでは、Kaggle Open Datasets の食品画像のデータセットを使用します。 このデータセットは、パブリック ドメイン ライセンスで配布されています。

重要

このデータセットを使用するには、Kaggle サイトの利用規約と、Food-11 データセット自体に付随するライセンス条項に従う必要があります。 Microsoft は、サイトまたはこのデータセットに関していかなる保証または表明も行いません。

データセットには、評価、トレーニング、検証の 3 つの分割が含まれています。また、11 の主要な食品カテゴリにグループ化された 16,643 の食品画像が含まれています。 各食品カテゴリのデータセット内の画像は、個別のフォルダーに格納されており、モデルのトレーニング プロセスに便利です。

Food-11 イメージ データセットからデータセットをダウンロードします。 データセットのサイズは約 1 GB であり、データをダウンロードするために Kaggle Web サイトでアカウントの作成を求められる場合があります。

Food image datasaet

他の関連する画像データセットを使用してもかまいません。 最低でも、初期トレーニング セットで、タグごとに少なくとも 30 の画像を使用することをお勧めします。 トレーニングを行ったら、追加の画像をいくつか収集し、モデルをテストすることもお勧めします。

さらに、すべてのトレーニング画像が以下の条件を満たしていることを確認します。

  • .jpg.png.bmp または .gif 形式。
  • サイズが 6 MB 未満 (予測用画像は 4 MB)。
  • 最短の辺が 256 ピクセル以上。これより短い画像は Custom Vision Service によって自動的に拡大されます。

次のステップ

これで、前提条件を整え、データセットを準備したので、Windows ML モデルの作成に進むことができます。 次のパート (Custom Vision を使用してモデルをトレーニングする) では、Web ベースの Custom Vision インターフェイスを使用して、分類モデルの作成とトレーニングを行います。