Custom Vision プロジェクトをコピーしてババックアップする
Custom Vision プロジェクトを作成してトレーニングした後、プロジェクトを別のリソースにコピーする必要がある場合があります。 アプリまたはビジネスが Custom Vision プロジェクトに依存している場合、別のリージョン内の別の Custom Vision アカウントにモデルをコピーすることをお勧めします。 地域的な障害が発生しても、コピー先のリージョン内のプロジェクトにアクセスできます。
ExportProject および ImportProject API を使用すると、一方の Custom Vision アカウントから他方にプロジェクトをコピーできるため、このシナリオを実現できます。 このガイドでは、cURL でこれらの REST API を使用する方法について説明します。 Visual Studio Code の REST クライアント などの 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 プロジェクト。 これを行う手順については、「分類器の構築」を参照してください。
- PowerShell バージョン 6.0 以降、または同様のコマンドライン ユーティリティ。
プロセスの概要
プロジェクトをコピーするプロセスは、次の手順で構成されます。
- 最初に、コピーするソース アカウントのプロジェクトの ID を取得します。
- 次に、このプロジェクト ID とソース アカウントのトレーニング キーを使用して、ExportProject API を呼び出します。 一時トークン文字列を受け取ります。
- 次に、このトークン文字列とターゲット アカウントのトレーニング キーを使用して、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 を使用して他にできることを確認してください。