Custom Vision プロジェクトをコピーしてババックアップする

Custom Vision プロジェクトを作成してトレーニングした後、プロジェクトを別のリソースにコピーしたい場合があります。 アプリまたはビジネスが Custom Vision プロジェクトに依存している場合、別のリージョン内の別の Custom Vision アカウントにモデルをコピーすることをお勧めします。 地域的な障害が発生しても、コピー先のリージョン内のプロジェクトにアクセスできます。

ExportProject および ImportProject API を使用すると、一方の Custom Vision アカウントから他方にプロジェクトをコピーできるため、このシナリオを実現できます。 このガイドでは、cURL でこれらの REST API を使用する方法について説明します。 Postman のような HTTP 要求サービスを使用して、要求を発行することもできます。

ヒント

Python クライアント ライブラリを使用したこのシナリオの例については、GitHub で Custom Vision プロジェクトを移動するリポジトリを参照してください。

ヒント

Custom Vision プロジェクトを Azure AI Vision Image Analysis 4.0 に移行する場合は、移行ガイドを参照してください。 2 つのサービスを比べるには、比較に関するページをご覧ください。

前提条件

  • 2 つの Azure AI Custom Vision リソース。 これらがない場合、Azure portal に移動し、新しい Custom Vision リソースを作成してください
  • Custom Vision リソースのトレーニング キーとエンドポイント URL。 これらの値は Azure portal 上のリソースの [概要] タブにあります。
  • 作成済みの Custom Vision プロジェクト。 これを行う手順については、「分類器の構築」を参照してください。

プロセスの概要

プロジェクトをコピーするプロセスは、次の手順で構成されます。

  1. 最初に、コピーするソース アカウントのプロジェクトの ID を取得します。
  2. 次に、このプロジェクト ID とソース アカウントのトレーニング キーを使用して、ExportProject API を呼び出します。 一時トークン文字列を受け取ります。
  3. 次に、このトークン文字列とターゲット アカウントのトレーニング キーを使用して、ImportProject API を呼び出します。 プロジェクトがターゲット アカウントの下に一覧表示されます。

プロジェクト ID を取得する

最初に GetProjects を呼び出して、既存の Custom Vision プロジェクトとその ID の一覧を表示します。 ソース アカウントのトレーニング キーとエンドポイントを使用します。

curl -v -X GET "{endpoint}/customvision/v3.3/Training/projects"
-H "Training-key: {training key}"

プロジェクトとそのメタデータの一覧が本文に含まれる 200\OK 応答が返されます。 "id" 値は、次の手順でコピーする文字列です。

[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string",
    "settings": {
      "domainId": "00000000-0000-0000-0000-000000000000",
      "classificationType": "Multiclass",
      "targetExportPlatforms": [
        "CoreML"
      ],
      "useNegativeSet": true,
      "detectionParameters": "string",
      "imageProcessingSettings": {
        "augmentationMethods": {}
      }
    },
    "created": "string",
    "lastModified": "string",
    "thumbnailUri": "string",
    "drModeEnabled": true,
    "status": "Succeeded"
  }
]

プロジェクトをエクスポートする

プロジェクト ID、ソース トレーニング キー、エンドポイントを使用して、 ExportProject を呼び出します。

curl -v -X GET "{endpoint}/customvision/v3.3/Training/projects/{projectId}/export"
-H "Training-key: {training key}"

エクスポートされたプロジェクトに関するメタデータと参照文字列 "token" を含む 200/OK 応答が返されます。 トークンの値をコピーします。

{
  "iterationCount": 0,
  "imageCount": 0,
  "tagCount": 0,
  "regionCount": 0,
  "estimatedImportTimeInMS": 0,
  "token": "string"
}

ヒント

プロジェクトをインポートするときに "無効なトークン" エラーが発生する場合は、トークンの URL 文字列が Web エンコードされていない可能性があります。 URL Encoder を使用してトークンをエンコードできます。

プロジェクトをインポートする

参照トークンと共に、ターゲット トレーニング キーとエンドポイントを使用して、 ImportProject を呼び出します。 新しいアカウントでプロジェクトに名前を付けることもできます。

curl -v -G -X POST "{endpoint}/customvision/v3.3/Training/projects/import"
--data-urlencode "token={token}" --data-urlencode "name={name}"
-H "Training-key: {training key}" -H "Content-Length: 0"

新しくインポートしたプロジェクトに関するメタデータを含む 200/OK 応答が返されます。

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "settings": {
    "domainId": "00000000-0000-0000-0000-000000000000",
    "classificationType": "Multiclass",
    "targetExportPlatforms": [
      "CoreML"
    ],
    "useNegativeSet": true,
    "detectionParameters": "string",
    "imageProcessingSettings": {
      "augmentationMethods": {}
    }
  },
  "created": "string",
  "lastModified": "string",
  "thumbnailUri": "string",
  "drModeEnabled": true,
  "status": "Succeeded"
}

次の手順

このガイドでは、Custom Vision リソース間でプロジェクトをコピーして移動する方法について説明しました。 次に、API リファレンス ドキュメントを参照して、Custom Vision を使用して他にできることを確認してください。