Custom Vision からエクスポートされた ONNX モデルを Windows ML (プレビュー) で使用する
Custom Vision Service からエクスポートされた ONNX モデルを Windows ML (プレビュー) で使用する方法について説明します。 トレーニングされた独自の画像分類器で、サンプルの UWP アプリケーションを使います。
前提条件
- Windows 10 バージョン 1809 以降
- ビルド 17763 以降の Windows SDK
- Visual Studio 2017 バージョン 15.7 以降がインストールされ、 ユニバーサル Windows プラットフォーム開発 ワークロードが有効にされている。
- PC の開発者モードが有効にされている。 詳細については、「デバイスを開発用に有効にする」を参照してください。
サンプル アプリについて
含まれているアプリケーションは汎用 Windows UWP アプリケーションです。 これにより、コンピューターから画像を選び、ローカルに保存された分類モデルで処理できるようになります。 モデルから返されたタグとスコアは、イメージの横に表示されます。
アプリケーションを取得する
このサンプル アプリケーションは、GitHub の Azure AI サービス ONNX Custom Vision サンプル リポジトリで入手できます。 それをローカル コンピューターに複製し、Visual Studio で SampleOnnxEvaluationApp.sln を開きます。
アプリケーションをテストする
- Visual Studio で
F5
キーを押すと、アプリケーションが起動します。 開発者モードを有効にするよう求めるメッセージが表示される場合があります。 - アプリケーションの起動時に、ボタンを使用してスコア付け用のイメージを選択します。 既定の ONNX モデルは、さまざまな種類のプランクトンを分類するようトレーニングされています。
自分で用意したモデルを使用する
独自の画像分類モデルを使用するには、次の手順を実行します。
- Custom Vision Service を使用して分類器を作成してトレーニングします。 この方法の手順については、分類器を作成してトレーニングする方法に関する記事を参照してください。 [全般 (コンパクト)] などのコンパクト ドメインのいずれかを使用します。
- 別のドメインを使用する分類器が既に存在する場合は、プロジェクト設定でコンパクトに変換できます。 次に、プロジェクトを再トレーニングしてから続行します。
- モデルをエクスポートします。 [パフォーマンス] タブに切り替えて、コンパクト ドメインでトレーニングされたイテレーションを選択します。 表示される [エクスポート] ボタンを選択します。 次に、 [ONNX] を選択してから [エクスポート] を選択します。 ファイルの準備ができたら、 [ダウンロード] ボタンを選択します。 エクスポート オプションの詳細については、モデルのエクスポートに関する記事を参照してください。
- ダウンロードした .zip ファイルを開き、そこから model.onnx ファイルを抽出します。 このファイルには、独自の分類モデルが含まれています。
- Visual Studio のソリューション エクスプローラーで、 [Assets] フォルダーを右クリックし、 [既存項目の追加] を選択します。 ONNX ファイルを選択します。
- ソリューション エクスプローラーで、ONNX ファイルを右クリックし、 [プロパティ] を選択します。 ファイルの以下のプロパティを変更します。
- [ビルド アクション] ->[コンテンツ]
- [出力ディレクトリにコピー] ->[新しい場合はコピーする]
- 次に、MainPage.xaml.cs を開き、
_ourOnnxFileName
の値を ONNX ファイルの名前に変更します。 - プロジェクトをビルドして実行するには、
F5
を使用します。 - ボタンを選択して、評価するイメージを選択します。
次のステップ
Custom Vision モデルをエクスポートして使用する別の方法については、次のドキュメントを参照してください。
- モデルをエクスポートする
- エクスポートされた Tensorflow モデルを Android アプリケーションで使用する
- エクスポートされた CoreML モデルを Swift iOS アプリケーションで使用する
- エクスポートされた CoreML モデルを Xamarin を使って iOS アプリケーションで使用する
Windows ML で ONNX モデルを使用する方法については、「Windows ML でモデルをアプリに統合する」を参照してください。