ML.NET と Windows Machine Learning を使用した画像の分類

Image classification flow

このガイドでは、ML.NET Model Builder を使用して食べ物の画像を分類するようにニューラル ネットワーク モデルをトレーニングし、モデルを ONNX 形式にエクスポートして、ローカル環境の Windows デバイスで実行されている Windows Machine Learning アプリケーションに展開する方法について説明します。 機械学習に関する専門知識を既に持っている必要はなく、プロセスを 1 ステップずつガイドします。

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

モデルがあり、ゼロから WinML アプリを作成する方法を知りたい場合は、完全な WinML アプリ チュートリアルに進んでください。

WinML アプリ用の定義済みソリューションを取得する場合は、ソリューション ファイルをクローンして、すぐにテストできます。

シナリオ

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

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

モデルを構築してトレーニングするには、Visual Studio で ML.NET Model Buider を使用します。

  • ML.NET Model Builder を使用するには、Visual Studio 2019 16.6.1 以降が必要です。 Visual Studio はこちらから入手できます。
  • Azure ML ワークスペース内で ML.NET Model Builder を使用してモデルをトレーニングするには、Azure アカウントが必要です。 Azure を初めて使用する場合は、Azure 無料アカウントにサインアップできます。

Note

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

ML.NET Model Builder は、直観的でグラフィカルな Visual Studio 拡張機能であり、カスタム機械学習モデルの構築、トレーニング、展開に使用します。 自動機械学習 (AutoML) を使用して、さまざまな機械学習アルゴリズムと設定が探索され、シナリオに最適なアルゴリズムを見つけるのに役立ちます。

Visual Studio バージョン 16.6.1 以降で .NET ワークロードのいずれかをインストールすると、ML.NET Model Builder が付属しています。 Visual Studio をダウンロードまたは変更するときに、インストーラーで ML.NET Model Builder コンポーネントがオンになっていることを確認してください。 お使いの VS に ML.NET Model Builder コンポーネントが含まれるかどうかを確認するには、[拡張機能] に移動して [拡張機能の管理] を選択します。 検索バーに「Model Builder」と入力して、拡張機能の結果を確認します。

Model builder extension

現在、ML.NET Model Builder はプレビュー機能です。 そのため、このツールを使用するには、Visual Studio で [ツール] > [オプション] > [環境] > [プレビュー機能] に移動して、ML.NET Model Builder を有効にする必要があります。

Enable the model builder extension

Note

ML.NET Model Builder とそれがサポートするさまざまなシナリオの詳細について興味がありますか。 Model Builder のドキュメントをご覧ください。

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

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

  • Windows 10 バージョン 1809 (ビルド 17763) 以降。 ビルド バージョン番号を確認するには、実行コマンド (Windows logo key + R) を使用して winver を実行します。
  • ビルド 17763 以降用の Windows SDK。 SDK はこちらから入手することができます。
  • Visual Studio 2019 バージョン 16.6.1 以降。 Visual Studio はこちらから入手できます。
  • Windows ML コード ジェネレーター (mlgen) Visual Studio 拡張機能。 VS 2019 用をダウンロードしてください。
  • UWP アプリを作成する場合は、Visual Studio でユニバーサル Windows プラットフォーム開発ワークロードを有効にする必要があります。
  • また、PC で開発者モードを有効にする必要があります。

Note

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

データを準備する

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

重要

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

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

データセットをこちらからダウンロードしてください。 データセットのサイズは約 1 GB であり、データをダウンロードするために Kaggle Web サイトでアカウントの作成を求められる場合があることに注意してください。

Food image dataset

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

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

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

次のステップ

これで、前提条件を整え、データセットを準備したので、WinML モデルの作成に進むことができます。 次のパートでは、ML.NET Model Builder を使用することで、分類モデルを作成してトレーニングします。