Custom Vision を使用してモデルをトレーニングする
このチュートリアルの前の段階では、独自の Windows Machine Learning モデルとアプリを作成するための前提条件について説明し、使用する画像セットをダウンロードしました。 この段階では、Web ベースの Custom Vision インターフェイスを使用して画像を画像分類モデルに変換する方法について説明します。
Azure Custom Vision は、独自の画像識別子を構築、デプロイ、改良できるようにする画像認識サービスです。 Custom Vision Service は、Custom Vision の Web サイトの Web ベースのインターフェイスを通じて利用するだけでなく、ネイティブ SDK のセットとしても利用できます。
Custom Vision リソースとプロジェクトを作成する
Custom Vision リソースを作成する
Custom Vision サービスを使用するには、Azure で Custom Vision リソースを作成する必要があります。
- Azure アカウントのメイン ページに移動し、[
Create a resource
] を選択します。
- 検索ボックスで「
Custom Vision
」を検索し、Azure マーケットプレースに入ります。 [Create Custom Vision
] を選択して、[Custom Vision の作成] ページでダイアログ ウィンドウを開きます。
- [Custom Vision] ダイアログ ページで、次のように選択します。
Training
リソースとPrediction
リソースの両方を選択します。- デプロイされたリソースを管理するサブスクリプションを選択します。 メニューに Azure サブスクリプションが表示されない場合は、サインアウトしてアカウントを開いたときと同じ資格情報を使用して Azure アカウントを再度開きます。
- 新しいリソース グループを作成して、一意の名前を付けます。 このチュートリアルでは、
MLTraining
という名前にしていますが、自由に名前を決めたり、既存のリソース グループがあればそれを使用したりできます。 - プロジェクトに名前を付けます。 このチュートリアルでは、
classificationApp
としましたが、好きな名前を使用することができます。 Training
とPrediction
の両方のリソースについて、場所を [(米国) 米国東部]、[価格レベル] を [Free F0]\(無料 F0\) に設定します。
- [
Review + create
] を押して Custom Vision リソースをデプロイします。 リソースのデプロイに数分かかることがあります。
Custom Vision 内に新しいプロジェクトを作成する
リソースを作成したので、次は Custom Vision 内にトレーニング プロジェクトを作成します。
Web ブラウザーで、[Custom Vision] ページに移動し、[
Sign in
] を選択します。 Azure Portal にサインインしたのと同じアカウントでサインインします。[
New Project
] を選択して、新しいプロジェクトのダイアログを開きます。
- 次のようにして、新しいプロジェクトを作成します。
Name
: FoodClassification。Description
: さまざまな種類の食品の分類。Resource
: 以前に開いたのと同じリソースを保持します -ClassificationApp [F0]
。Project Types
:classification
Classification Types
:Multilabel (Multiple tags per image)
Domains
:Food (compact)
。Export Capabilities
:Basic platforms (Tensorflow, CoreML, ONNX, ...)
Note
ONNX 形式にエクスポートするために、Food (compact)
ドメインを選択していることを確認します。 圧縮されていないドメインを ONNX にエクスポートすることはできません。
重要
サインインしたアカウントが Azure アカウントと関連付けられている場合は、[リソース グループ] ドロップダウンに、Custom Vision Service リソースを含むすべての Azure リソース グループが表示されます。 リソース グループを使用できない場合は、Azure Portal へのログインに使用したのと同じアカウントで customvision.ai にログインしていることを確認してください。
- ダイアログに入力したら、[
Create project
] を選択します。
トレーニング データセットをアップロードする
プロジェクトを作成したので、Kaggle Open データセットから、以前に準備した食品画像のデータセットをアップロードします。
FoodClassification
プロジェクトを選択して、Custom Vision Web サイトの Web ベースのインターフェイスを開きます。[
Add images
] ボタンを選択し、[Browse local files
] を選択します。
画像データセットの場所に移動し、トレーニング フォルダー –
vegetable-fruit
を選択します。 フォルダー内のすべての画像を選択し、[open
] を選択します。 タグ付けオプションが開きます。[
My Tags
] フィールドに「vegetable-fruit
」と入力し、[Upload
] を押します。
最初の画像グループがプロジェクトにアップロードされるまで待ってから、[done
] を押します。 タグ選択は、アップロードするように選択した画像のグループ全体に適用されます。 そのため、既に構築済みの画像のグループから画像をアップロードする方が簡単です。 個々の画像のタグは、アップロード後にいつでも変更することができます。
- 最初の画像グループが正常にアップロードされたら、この処理をさらに 2 回繰り返して、デザートとスープの画像をアップロードします。 それらに関連するタグを付けるようにしてください。
最後に、トレーニング用に準備された 3 つの異なる画像グループを作成します。
モデル分類子をトレーニングする
次に、モデルをトレーニングして、前のパートでダウンロードした画像のセットから野菜、スープ、デザートを分類します。
- トレーニング プロセスを開始するには、右上隅にある [
Train
] ボタンを選択します。 分類子により、画像を使用して各タグの視覚的な品質を識別するモデルが作成されます。
左上隅のスライダーを使用して確率のしきい値を変更するオプションがあります。 確率のしきい値により、予測が正しいと判断されるために必要な信頼性のレベルを設定します。 確率のしきい値が高すぎると、より正確な分類が得られますが、検出される数が減ります。 一方、確率のしきい値が低すぎる場合は、より多くの分類が検出されますが、信頼度が低くなったり、擬陽性の結果が多くなったりします。
このチュートリアルでは、確率のしきい値を 50% にしておくことができます。
- ここでは、
Quick Training
プロセスを使用します。Advanced Training
にはさらに多くの設定があり、トレーニングに使用する時間を具体的に設定できますが、ここではそのレベルの制御は必要ありません。 [Train
] を押して、トレーニング プロセスを開始します。
クイック トレーニング プロセスは、完了するのに数分しかかかりません。 この間、トレーニング プロセスに関する情報が [Performance
] タブに表示されます。
評価とテスト
結果を評価する
トレーニングが完了すると、最初のトレーニング イテレーションの概要が表示されます。 これには、モデルのパフォーマンスの推定 (精度と再現率) が含まれます。
- 精度は、正しかったと識別された分類の割合を示します。 このモデルでは、精度は 98.2% であるため、モデルが画像を分類している場合、正しく予測される可能性が非常に高くなります。
- 再現率は、正しく識別された実際の分類の割合を示します。 このモデルでは、再現率は 97.5% であるため、このモデルで提示された画像の大部分が適切に分類されています。
- AP は、追加パフォーマンスを意味します。 これにより、異なるしきい値での精度と再現率を要約する、追加メトリックが得られます。
モデルをテストする
モデルをエクスポートする前に、そのパフォーマンスをテストすることができます。
- 上部のメニュー バーの右上隅にある [
Quick Test
] を選択して、新しいテスト ウィンドウを開きます。
このウィンドウでは、テストする画像の URL を指定することも、[Browse local files
] を選択してローカルに格納されている画像を使用することもできます。
- [
Browse local files
] を選択し、食品データ セットに移動して、検証フォルダーを開きます。fruit-vegetable
フォルダーからランダムな画像を選択して、[open
] を押します。
テストの結果が画面に表示されます。 このテストでは、モードにより 99.8% の確実性で画像が正常に分類されました。
[Predictions
] タブでトレーニングの予測を使用すると、モデルのパフォーマンスを向上させることができます。 詳細については、分類子を改善する方法に関するページを参照してください。
Note
Azure Custom Vision API の詳細に関心がありますか? Custom Vision サービスのドキュメントには、Web ポータルと SDK Custom Vision に関する詳細が含まれています。
モデルを ONNX にエクスポートする
モデルをトレーニングしたので、ONNX にエクスポートできます。
- [
Performance
] タブを選択し、[Export
] を選択してエクスポート ウィンドウを開きます。
- [
ONNX
] を選択して、モデルを ONNX 形式でエクスポートします。
- 必要に応じて
ONNX 16
浮動小数オプションを選択できますが、このチュートリアルでは設定を変更する必要はありません。 [Export and Download
] を選択します。
- ダウンロードした .zip ファイルを開き、そこから
model.onnx
ファイルを抽出します。 このファイルには、独自の分類モデルが含まれています。
お疲れさまでした。 分類モデルが正常に構築およびエクスポートされました。
次のステップ
分類モデルが作成されたので、次の手順では、Windows アプリケーションをビルドし、お使いの Windows デバイス上のローカルで実行します。