Azure で画像分類を開始する

完了

Azure AI サービス オファリングの一部として利用できる Azure AI Custom Vision を使用して、画像分類を実行できます。 これは一般に、独自のモデル トレーニング コードを記述するよりも簡単かつ迅速で、機械学習の専門知識がほとんどまたはまったくない人でも、効果的な画像分類ソリューションを作成できます。

Azure AI Custom Vision 用の Azure リソース

Azure AI Custom Vision を使用した画像分類ソリューションの作成は、2 つの主要なタスクで構成されています。 まず、既存の画像を使用してモデルをトレーニングし、次にクライアント アプリケーションがそれを使用して予測を生成できるように公開する必要があります。

これらのタスクごとに、Azure サブスクリプションにリソースが必要です。 次の種類のリソースを使用できます。

  • Custom Vision: Custom Vision サービスの専用リソース。"トレーニング" または "予測"、あるいは "両方" のリソースになる可能性があります。
  • Azure AI サービス: その他多くの Azure AI サービスと共に、Azure AI Custom Vision を含む一般的なリソース。 この種類のリソースは、"トレーニング" または"予測" のいずれかまたは両方に使用できます。

トレーニング リソースと予測リソースの分離は、モデルを使用して画像クラスを予測するクライアント アプリケーションとは別に、モデル トレーニングのリソース使用率を追跡する場合に役立ちます。 ただし、これによって画像分類ソリューションの開発が少し混乱する可能性があります。

最もシンプルなアプローチは、トレーニングと予測の両方に、一般的な Azure AI サービスのリソースを使用することです。 つまり、考慮する必要があるのは、1 つの "エンドポイント" (サービスがホストされている HTTP アドレス) と "キー" (クライアント アプリケーションが自身の認証に使用するシークレット値) だけです。

Custom Vision リソースの作成を選択すると、トレーニングまたは予測の "いずれか" または "両方" を選択するように求められます。"両方" を選択すると、トレーニング用と予測用に 2 つ のリソースが作成されることにご注意ください。

トレーニング用には専用の Custom Vision リソースを使用する一方で、予測用のモデルは Azure AI サービス リソースにデプロイするという、混在したアプローチを採用することもできます。 これを機能させるには、トレーニング リソースと予測リソースを同じリージョンで作成する必要があります。

モデル トレーニング

分類モデルをトレーニングするには、トレーニング リソースに画像をアップロードし、適切なクラス ラベルでラベル付けする必要があります。 次に、モデルをトレーニングし、トレーニング結果を評価する必要があります。

これらのタスクは "Custom Vision ポータル" で実行できます。また、必要なコーディング経験がある場合、Azure AI Custom Vision サービスのプログラミング言語固有のソフトウェア開発キット (SDK) のいずれかを使用できます。

分類に画像を使用する際の重要な考慮事項の 1 つは、確実に対象である物体の十分な数の画像があり、その画像がさまざまな角度から捉えたオブジェクトであることです。

モデルの評価

モデルのトレーニング プロセスは反復的なプロセスです。Azure AI Custom Vision サービスではデータの一部を使用してモデルが繰り返しトレーニングされますが、一部はモデルを評価するために保持されます。 トレーニング プロセスの最後に、トレーニング済みモデルのパフォーマンスが次の評価メトリックで示されます。

  • 精度: モデルによって行われたクラス予測の割合はどれくらいか? たとえば、モデルで 10 個の画像がオレンジだと予測され、そのうち 8 個が実際にオレンジだった場合、精度は 0.8 (80%) です。
  • リコール: モデルで正しく識別されたクラス予測の割合はどのくらいか? たとえば、リンゴの画像が 10 個あり、モデルでそのうちの 7 個が見つかった場合、リコールは 0.7 (70%) です。
  • 平均精度 (AP): 精度とリコールの両方を考慮した、全体的なメトリック。

予測のためのモデルの使用

モデルをトレーニングし、その評価されたパフォーマンスに満足したら、モデルを予測リソースに公開できます。 モデルを公開するときに、モデルに名前を割り当てることができます (既定では "IterationX" で、X はモデルをトレーニングした回数です)。

モデルを使用するために、クライアント アプリケーション開発者には以下の情報が必要です。

  • プロジェクト ID: モデルをトレーニングするために作成した Custom Vision プロジェクトの一意の ID。
  • モデル名: 公開中にモデルに割り当てた名前。
  • 予測エンドポイント: モデルを公開した 予測 リソースのエンドポイントの HTTP アドレス (トレーニング リソースでは ありません)。
  • 予測キー: モデルを公開した "予測" リソースの認証キー (トレーニング リソースでは "ありません")。