Condividi tramite


Copiare ed eseguire il backup dei progetti di Visione personalizzata

Dopo aver creato ed eseguito il training di un progetto di Visione personalizzata, è possibile copiare il progetto in un'altra risorsa. Se l'app o l'azienda dipende da un progetto di Visione personalizzata, è consigliabile copiare il modello in un altro account di Visione personalizzata in un'altra area. Successivamente, si verifica un'interruzione del servizio nell'area, è possibile accedere al progetto nell'area in cui è stato copiato.

Le API ExportProject e ImportProject consentono questo scenario consentendo di copiare progetti da un account Visione personalizzata ad altri. Questa guida illustra come usare queste API REST con cURL. È anche possibile usare un servizio di richiesta HTTP, ad esempio il client REST per Visual Studio Code, per emettere le richieste.

Suggerimento

Per un esempio di questo scenario usando la libreria client Python, vedere il repository Spostare il progetto di Visione personalizzata in GitHub.

Suggerimento

Per spostare il progetto di Visione personalizzata in Analisi delle immagini di Visione artificiale di Azure 4.0, vedere la guida alla migrazione. Per confrontare i due servizi, vedere la pagina di confronto.

Prerequisiti

Panoramica processo

Il processo per copiare un progetto prevede i passaggi seguenti:

  1. Prima di tutto, si ottiene l'ID del progetto nell'account di origine da copiare.
  2. Chiamare quindi l'API ExportProject usando l'ID progetto e la chiave di training dell'account di origine. Si otterrà una stringa di token temporanea.
  3. Chiamare quindi l'API ImportProject usando la stringa di token e la chiave di training dell'account di destinazione. Il progetto verrà quindi elencato sotto l'account di destinazione.

Ottenere ID del progetto

Chiamare prima GetProjects per visualizzare un elenco dei progetti di Visione personalizzata esistenti e dei relativi ID. Usare la chiave di training e l'endpoint dell'account di origine.

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

Si otterrà una risposta 200\OK con un elenco di progetti e i relativi metadati nel corpo. Il valore "id" è la stringa da copiare per i passaggi successivi.

[
  {
    "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"
  }
]

Esportare il progetto

Chiamare ExportProject usando l'ID progetto e la chiave e l'endpoint di training di origine.

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

Si otterrà una risposta 200/OK con i metadati relativi al progetto esportato e una stringa di riferimento "token". Copiare il valore del token.

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

Suggerimento

Se viene visualizzato un errore "Token non valido" quando si importa il progetto, è possibile che la stringa dell'URL del token non sia codificata sul Web. È possibile codificare il token usando un codificatore URL.

Importare il progetto

Chiamare ImportProject usando la chiave e l'endpoint di training di destinazione, insieme al token di riferimento. È anche possibile assegnare un nome al progetto nel nuovo account.

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"

Si otterrà una risposta 200/OK con i metadati relativi al progetto appena importato.

{
  "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"
}

Passaggi successivi

In questa guida si è appreso come copiare e spostare un progetto tra le risorse di Visione personalizzata. Consultare, ora, la documentazione di riferimento delle API per informazioni su altre operazioni che è possibile eseguire con Visione personalizzata.