Condividi tramite


Specificare un modello di riconoscimento volto

Attenzione

L'accesso al servizio Viso è limitato in base ai criteri di idoneità e utilizzo al fine di supportare i nostri principi di intelligenza artificiale responsabile. Il servizio Viso è disponibile solo per i clienti e i partner gestiti da Microsoft. Usare il modulo di acquisizione riconoscimento volto per richiedere l'accesso. Per altre informazioni, vedere la pagina Accesso limitato dalla funzione Viso.

Questa guida spiega come specificare un modello di riconoscimento dei visi per il rilevamento, l'identificazione e la ricerca di somiglianza tramite il servizio Viso di Azure per intelligenza artificiale.

Il servizio Viso usa modelli di Machine Learning per eseguire operazioni sui visi umani visibili nelle immagini. La precisione dei modelli viene costantemente migliorata in base al feedback dei clienti e ai progressi nella ricerca. I miglioramenti che ne derivano vengono distribuiti come aggiornamenti del modello. Gli sviluppatori possono specificare la versione del modello di riconoscimento del viso da usare, scegliendo il modello più adatto al proprio caso d'uso.

Prerequisiti

È necessario avere familiarità con i concetti relativi al rilevamento e all'identificazione dei volti di intelligenza artificiale. In caso contrario, vedere prima queste guide:

Compatibilità con il modello

Il servizio Viso di Azure per intelligenza artificiale include quattro modelli di riconoscimento disponibili. I modelli recognition_01 (pubblicati 2017), recognition_02 (pubblicati nel 2019) e recognition_03 (pubblicati nel 2020) sono continuamente supportati per garantire la compatibilità con le versioni precedenti per i clienti che usano FaceListo PersonGroupcreati con questi modelli. Un oggetto FaceList o PersonGroup userà sempre il modello di riconoscimento con cui è stato creato e i nuovi visi verranno associati a tale modello quando vengono aggiunti. Questa operazione non può essere modificata dopo la creazione e i clienti dovranno usare il modello di riconoscimento corrispondente con l'oggetto FaceList o PersonGroup corrispondente.

È possibile passare a modelli di riconoscimento successivi per comodità; Tuttavia, sarà necessario creare nuovi FaceLists e PersonGroups con il modello di riconoscimento preferito.

Suggerimenti per i modelli

Il modello recognition_04 (pubblicato 2021) è il modello più accurato attualmente disponibile. Se si è un nuovo cliente, è consigliabile usare questo modello. Recognition_04 fornisce una maggiore accuratezza per confronti di somiglianza e di corrispondenza delle persone. Recognition_04 migliora il riconoscimento per gli utenti registrati che indossano copri viso (maschere chirurgiche, maschere N95, maschere di panno). È ora possibile creare esperienze utente sicure e semplici che usano il modello di detection_03 più recente per rilevare se un utente registrato indossa una copertura del viso. È quindi possibile usare il modello recognition_04 più recente per riconoscerne l'identità. Ogni modello opera indipendentemente dagli altri e una soglia di confidenza impostata per un modello non deve essere confrontata tra gli altri modelli di riconoscimento.

Leggere per informazioni su come specificare un modello selezionato in diverse operazioni Viso evitando conflitti di modello. Se si è un utente avanzato e si vuole determinare se passare al modello più recente, passare alla sezione Valuta modelli diversi. È possibile valutare il nuovo modello e confrontare i risultati usando il set di dati corrente.

Rilevare i visi con il modello specificato

Il rilevamento dei volti identifica i punti di riferimento visivi dei visi umani e trova le posizioni del rettangolo delimitatore. Estrae anche le caratteristiche del viso e le archivia temporaneamente per un massimo di 24 ore per l'uso nell'identificazione. Tutte queste informazioni costituisce la rappresentazione di un viso.

Il modello di riconoscimento viene usato quando vengono estratte le caratteristiche del viso, quindi è possibile specificare una versione del modello durante l'esecuzione dell'operazione Rileva.

Quando si usa l'API Rilevamento, assegnare la versione del modello con il parametro recognitionModel. I valori disponibili sono:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Facoltativamente, è possibile specificare il parametro returnRecognitionModel (valore predefinito false) per indicare se recognitionModel deve essere restituito nella risposta. Quindi, un URL di richiesta per l'API REST Rilevamento sarà simile al seguente:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}

Se si usa la libreria client, è possibile assegnare il valore per recognitionModel passando una stringa che rappresenta la versione. Se non viene assegnato, verrà usata una versione predefinita del modello di recognition_01. Vedere l'esempio di codice seguente per la libreria client .NET.

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: true, returnFaceLandmarks: true, returnRecognitionModel: true);
var faces = response.Value;

Nota

Il parametro returnFaceId deve essere impostato su true per abilitare gli scenari di riconoscimento dei visi nei passaggi successivi.

Identificare i visi con il modello specificato

Il servizio Viso può estrarre i dati relativi ai visi da un'immagine e associarli a un oggetto Person (tramite la chiamata all'API Aggiungi viso persona a gruppo persone, ad esempio) e più oggetti Person possono essere archiviati insieme in un oggetto PersonGroup. È quindi possibile confrontare un nuovo viso con un oggetto PersonGroup (con la chiamata a Identificazione da gruppo persone); la persona corrispondente all'interno di tale gruppo può essere identificata.

Un oggetto PersonGroup deve avere un modello di riconoscimento univoco per tutti gli oggetti Person ed è possibile specificare questo parametro usando il parametro recognitionModel quando si crea il gruppo (Crea gruppo persone o Crea grande gruppo persone). Se non si specifica questo parametro, viene usato il modello recognition_01 originale. Un gruppo userà sempre il modello di riconoscimento con cui è stato creato e i nuovi visi verranno associati a questo modello quando vengono aggiunti. Questa operazione non può essere modificata dopo la creazione di un gruppo. Per visualizzare il modello con cui è configurato un oggetto PersonGroup, usare l'API Recupero gruppo persone con il parametro returnRecognitionModel impostato su true.

Vedere l'esempio di codice .NET seguente.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}

In questo codice viene creato un PersonGroup con ID mypersongroupid ed è configurato per usare il modello recognition_04 per estrarre le funzionalità del viso.

Allo stesso modo, è necessario specificare il modello da usare quando si rilevano i visi da confrontare con questo oggetto PersonGroup (tramite l'API Rilevamento). Il modello usato deve essere sempre coerente con la configurazione di PersonGroup. In caso contrario, l'operazione avrà esito negativo a causa di modelli incompatibili.

Non vi è alcuna modifica nell'API Identificazione da gruppo persone. È sufficiente specificare la versione del modello nel rilevamento.

Trovare visi simili con il modello specificato

È anche possibile specificare un modello di riconoscimento per la ricerca di somiglianza. È possibile assegnare la versione del modello con recognitionModel durante la creazione dell'oggetto FaceList con l'API Creazione elenco visi o Creazione grande elenco visi. Se non si specifica questo parametro, il modello recognition_01 viene usato per impostazione predefinita. Un oggetto FaceList userà sempre il modello di riconoscimento con cui è stato creato e i nuovi visi verranno associati a questo modello quando vengono aggiunti all'elenco. Non è possibile modificarlo dopo la creazione. Per visualizzare il modello con cui è configurato un oggetto FaceList, usare l'API Recupero elenco visi con il parametro returnRecognitionModel impostato su true.

Vedere l'esempio di codice .NET seguente.

using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}

Questo codice crea un oggetto FaceList denominato My face collection, usando il modello recognition_04 per l'estrazione delle funzionalità. Quando nell'oggetto FaceList si esegue una ricerca di visi simili a un nuovo viso rilevato, è necessario che il viso sia stato rilevato (Rilevamento) usando il modello recognition_04. Come nella sezione precedente, il modello deve essere coerente.

Non vi è alcuna modifica nell'API Trova simile. È possibile specificare solo la versione del modello nel rilevamento.

Verificare i visi con il modello specificato

L'API Confronto visi controlla se due visi appartengono alla stessa persona. Non sono state apportate modifiche all'API Verifica per quanto riguarda i modelli di riconoscimento, ma è possibile confrontare solo i visi rilevati con lo stesso modello.

Valutare i vari modelli

Per confrontare le prestazioni dei diversi modelli di riconoscimento sui propri dati, è necessario:

  1. Creare quattro oggetti PersonGroup usando rispettivamente recognition_01, recognition_02, recognition_03 e recognition_04.
  2. Usare i dati dell'immagine per rilevare i visi e registrarli in Person all'interno di questi quattro PersonGroup.
  3. Eseguire il training degli oggetti PersonGroup usando l'API Training gruppo persone.
  4. Eseguire il test con Identificazione da gruppo persone in tutti e quattro gli oggetti PersonGroup e confrontare i risultati.

Se in genere si specifica una soglia di attendibilità (un valore compreso tra zero e uno che determina il livello di attendibilità del modello per identificare un viso), potrebbe essere necessario usare soglie diverse per modelli diversi. Una soglia per un modello non deve essere condivisa con un altro e non produrrà necessariamente gli stessi risultati.

Passaggio successivo

In questo articolo si è appreso come specificare il modello di riconoscimento da usare con diverse API del servizio Viso. Seguire quindi una guida introduttiva per iniziare a usare il rilevamento dei volti.