カスタム プロジェクトを作成する

完了

カスタム Azure AI Vision モデルを作成するには、まず Azure AI サービス リソース (または Azure AI Vision リソース) が必要です。 そのリソースがサブスクリプションにデプロイされたら、カスタム プロジェクトを作成する必要があります。

カスタム Vision プロジェクトのコンポーネント

カスタム プロジェクトの最初のコンポーネントは、"データセット" です。 データセットは、モデルのトレーニング中に使う画像のコレクションと、それらの画像のラベル情報を定義する "COCO ファイル" です。 データセットは Azure BLOB ストレージ コンテナーに格納されます。COCO ファイルについては、このユニットでさらに詳しく説明します。

画像とクラス ラベルを定義したら、カスタム モデルをトレーニングできます。 モデルをトレーニングするときは、トレーニングするモデルの種類、使うデータセット、トレーニング予算 (時間単位) を指定します。 モデルのトレーニングが完了すると、パフォーマンスを表示し、予測にモデルを使用できます。

ほとんどの場合、以下の手順を実行します。

  1. BLOB ストレージ コンテナーを作成し、トレーニング画像のみをアップロードします。
  2. プロジェクトのデータセットを作成し、それを BLOB ストレージ コンテナーに接続します。 データセットを作成するときは、プロジェクトの種類 (画像分類、物体検出、または製品認識) を定義します。
  3. Azure Machine Learning データのラベル付けプロジェクトでデータにラベルを付けます。これにより、BLOB ストレージ コンテナーに COCO ファイルが作成されます。
  4. ラベル付けされた画像の完成した COCO ファイルをデータセットに接続します。
  5. 作成したデータセットとラベルでカスタム モデルをトレーニングします。
  6. パフォーマンスを確認し、トレーニング済みのパフォーマンスが期待を満たしていない場合は繰り返します。

パフォーマンスに満足したら、そのモデルを Vision Studio または独自のアプリケーションで使用できます。

COCO ファイル

COCO ファイルは、以下を定義する特定の形式の JSON ファイルです。

  • images:BLOB ストレージ内の画像の保存先、名前、幅、高さ、ID を定義します。
  • annotations:画像が分類されるカテゴリ、領域、境界ボックス (物体検出用のラベル付けの場合) などの分類 (またはオブジェクト) を定義します。
  • categories:名前付きラベル クラスの ID を定義します。

ほとんどの場合、COCO ファイルは、Azure Machine Learning データのラベル付けプロジェクトでトレーニング画像にラベルを付けることによって作成されます。 古い Custom Vision プロジェクトから移行する場合は、移行スクリプトを使って COCO ファイルを作成できます。

サンプルの COCO ファイルは次のようになります。

{
  "images": [
    {
      "id": 1,
      "width": 1024,
      "height": 768,
      "file_name": "abc.jpg",
      "coco_url": "AmlDatastore://fruit/abc.jpg",
      "absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/abc.jpg",
      "date_captured": "<date>"
    },
    {
      "id": 2,
      "width": 1024,
      "height": 768,
      "file_name": "xyz.jpg",
      "coco_url": "AmlDatastore://fruit/xyz.jpg",
      "absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/xyz.jpg",
      "date_captured": "<date>"
    },
    <...>
  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 1,
      "image_id": 1,
      "area": 0.0
    },
    {
      "id": 2,
      "category_id": 1,
      "image_id": 2,
      "area": 0.0
    },
    <...>
  ],
  "categories": [
    {
      "id": 1,
      "name": "apple"
    },
    {
      "id": 2,
      "name": "orange"
    },
    {
      "id": 3,
      "name": "banana"
    }
  ]
}

物体検出データセットにラベルを付ける場合、COCO ファイル内の各注釈には、配列内の値が "左"、"上"、"幅"、"高さ" である境界ボックス配列も含まれます。

"bbox": [
    0.11803319477782331,
    0.41586723392402375,
    0.7765206955096307,
    0.3483334397217212
]

データセットの作成

BLOB ストレージ コンテナーに画像を配置したら、REST API または Vision Studio を使ってトレーニング用のデータセットを作成できます。 REST 要求は次の REST 呼び出しのようになります。

curl -X PUT https://<endpoint>/computervision/datasets/<dataset-name>?api-version=<version>\
  -H "Content-Type: application/json" \
  -H "Ocp-Apim-Subscription-Key: <subscription-key>" \
  --data-ascii "
  {
    'annotationKind':'imageClassification',
    'annotationFileUris':['<URI>']
  }"

Vision Studio を使う場合は、カスタム モデル タイルに移動し、リソースを選んで、データセットを作成します。 そこから、Azure Machine Learning データのラベル付けプロジェクトを開いたり作成したり、既存の COCO ファイルをアップロードしたりできます。 このモジュールの演習では、データセットを作成する方法について説明します。

Vision Studio を使うと、REST 要求で COCO ファイルを指定する代わりに、Azure Machine Learning のラベル付けプロジェクトに接続できます。 このモジュールの残りの例では Vision Studio を使いますが、REST が望ましい場合は、ドキュメント ページで例を入手できます。