Condividi tramite


Integrare Archiviazione di Azure per le notifiche e il backup

È possibile integrare il progetto di Visione personalizzata con una coda di archiviazione BLOB di Azure per ottenere notifiche push di attività di training/esportazione di progetto. Questa funzionalità è utile per evitare di eseguire continuamente il polling del servizio per ottenere risultati durante l'esecuzione di operazioni lunghe. Al contrario, è possibile integrare le notifiche della coda di archiviazione nel flusso di lavoro.

È anche possibile usare Archiviazione di Azure per archiviare copie di backup dei modelli pubblicati.

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 effettuare le richieste.

Nota

Le notifiche push dipendono dal parametro notificationQueueUri facoltativo nell'API CreateProject e i backup del modello richiedono anche l'uso del parametro exportModelContainerUri facoltativo. Questa guida userà entrambi per il set completo di funzionalità.

Prerequisiti

Configurare l'integrazione dell'archiviazione di Azure

Andare alla risorsa di training di Visione personalizzata nel portale di Azure, selezionare la pagina Identità e abilitare l'identità gestita assegnata dal sistema.

Passare quindi alla risorsa di archiviazione nel portale di Azure. Andare alla pagina Controllo di accesso (IAM) e selezionare Aggiungi assegnazione di ruolo (anteprima). Aggiungere quindi un'assegnazione di ruolo per una o entrambe le funzionalità di integrazione:

  • Se si prevede di usare la funzionalità di backup del modello, selezionare il ruolo Collaboratore ai dati del BLOB di archiviazione e aggiungere la risorsa di training di Visione personalizzata come membro. Selezionare Rivedi + assegna per completare.
  • Se si prevede di usare la funzionalità della coda di notifica, selezionare il ruolo Collaboratore ai dati della coda di archiviazione e aggiungere la risorsa di training di Visione personalizzata come membro. Selezionare Rivedi + assegna per completare.

Per informazioni sull'assegnazione di ruoli, vedere Assegnare ruoli di Azure usando il portale di Azure.

Ottenere gli URL di integrazione

Si otterranno quindi gli URL che consentono alla risorsa di Visione personalizzata di accedere a questi endpoint.

Per l'URL di integrazione della coda di notifica, andare alla pagina Code dell'account di archiviazione, aggiungere una nuova coda e salvare l'URL in un percorso temporaneo.

Pagina di coda di archiviazione di Azure

Per l'URL di integrazione del backup del modello, andare alla pagina Contenitori dell'account di archiviazione e creare un nuovo contenitore. Selezionarlo e andare alla pagina Proprietà. Copiare l'URL in un percorso temporaneo.

Pagina delle proprietà dei contenitori di archiviazione di Azure

Integrare un progetto di Visione personalizzata

Ora che si dispone degli URL di integrazione, è possibile creare un nuovo progetto di Visione personalizzata che integra le funzionalità di Archiviazione di Azure. È anche possibile aggiornare un progetto esistente per aggiungere le funzionalità.

Quando si chiama l'API CreateProject, aggiungere i parametri facoltativi exportModelContainerUri e notificationQueueUri. Assegnare i valori URL ottenuti nella sezione precedente.

curl -v -X POST "{endpoint}/customvision/v3.3/Training/projects?exportModelContainerUri={inputUri}&notificationQueueUri={inputUri}&name={inputName}"
-H "Training-key: {subscription key}"

Se si riceve una risposta 200/OK, significa che gli URL sono stati configurati correttamente. Nella risposta JSON dovrebbero essere visualizzati anche i valori URL:

{
  "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": {}
},
"exportModelContainerUri": {url}
"notificationQueueUri": {url}
  },
  "created": "string",
  "lastModified": "string",
  "thumbnailUri": "string",
  "drModeEnabled": true,
  "status": "Succeeded"
}

Verificare la connessione

La chiamata API nella sezione precedente dovrebbe aver già attivato nuove informazioni nell'account di archiviazione di Azure.

Nel contenitore designato deve essere presente un BLOB di test all'interno di una cartella CustomVision-TestPermission. Tale BLOB esisterà solo temporaneamente.

Nella coda di notifica dovrebbe essere visualizzata una notifica di test nel formato seguente:

{
"version": "1.0" ,
"type": "ConnectionTest",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000"
    }
}

Ricevere notifiche sugli eventi

Quando si è pronti, chiamare l'API TrainProject nel progetto per eseguire un'operazione di training normale.

Nella coda di notifica di archiviazione si riceverà una notifica al termine del training:

{
"version": "1.0" ,
"type": "Training",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "trainingStatus": "TrainingCompleted"
    }
}

Il campo "trainingStatus" può essere "TrainingCompleted" o "TrainingFailed". Il campo "iterationId" è l'ID del modello sottoposto a training.

Ottenere i backup di esportazione del modello

Quando si è pronti, chiamare l'API ExportIteration per esportare un modello sottoposto a training in una piattaforma specificata.

Nel contenitore di archiviazione designato verrà visualizzata una copia di backup del modello esportato. Il nome del BLOB avrà il formato seguente:

{projectId} - {iterationId}.{platformType}

Inoltre, si riceverà una notifica nella coda al termine dell'esportazione.

{
"version": "1.0" ,
"type": "Export",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "exportStatus": "ExportCompleted",
    "modelUri": {url}
    }
}

Il campo "exportStatus" può essere "ExportCompleted" o "ExportFailed". Il campo "modelUri" conterrà l'URL del modello di backup archiviato nel contenitore, presupponendo l'integrazione delle notifiche della coda all'inizio. In caso contrario, il campo "modelUri" visualizzerà l'URL della firma di accesso condiviso per il BLOB del modello di Visione personalizzata.

Passaggi successivi

In questa guida si è appreso come copiare ed eseguire il backup di 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.