Ricerca di volti in una raccolta - Amazon Rekognition

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricerca di volti in una raccolta

Amazon Rekognition ti consente di utilizzare un volto di input per cercare corrispondenze in una raccolta di volti archiviati. Inizia archiviando le informazioni sui volti rilevati in container lato server chiamati "raccolte". Le raccolte memorizzano sia i singoli volti che gli utenti (più volti della stessa persona). I singoli volti vengono archiviati come vettori di volti, una rappresentazione matematica del volto (non un'immagine reale del volto). È possibile utilizzare immagini diverse della stessa persona per creare e archiviare più immagini vettoriali di volti nella stessa raccolta. È quindi possibile aggregare più vettori di volti della stessa persona per creare un vettore utente. I vettori utente possono offrire una maggiore precisione nella ricerca dei volti con rappresentazioni più robuste, contenenti diversi gradi di illuminazione, nitidezza, posa, aspetto, ecc.

Dopo aver creato una raccolta, è possibile utilizzare un volto di input per cercare i vettori utente o i vettori di volti corrispondenti in una raccolta. La ricerca tra i vettori utente può migliorare significativamente la precisione rispetto alla ricerca su singoli vettori di volti. È possibile utilizzare i volti rilevati nelle immagini, nei video archiviati e nei video in streaming per cercare tra i vettori di volti archiviati. È possibile utilizzare i volti rilevati nelle immagini per cercare tra i vettori utente archiviati.

Per archiviare le informazioni sui volti, è necessario effettuare le seguenti operazioni:

  1. Crea una raccolta: per archiviare le informazioni sul viso, devi prima creare (CreateCollection) una raccolta di volti in una delle AWS regioni del tuo account. La raccolta di volti viene specificata chiamando l'operazione IndexFaces.

  2. Index Faces: l'IndexFacesoperazione rileva i volti in un'immagine, estrae e memorizza i vettori di volti nella raccolta. È possibile usare questa operazione per rilevare i volti in un'immagine e mantenere le informazioni sulle caratteristiche dei volti rilevate in una raccolta. Di seguito è riportato un esempio di un'operazione API basata su storage, poiché il servizio archivia le informazioni dei vettori di volti nel server.

Per creare un utente e associare più vettori di volti a un utente, è necessario effettuare le seguenti operazioni:

  1. Crea un utente: devi prima creare un utente con. CreateUser È possibile migliorare la precisione della corrispondenza dei volti aggregando più vettori di volti della stessa persona in un vettore utente. È possibile associare fino a 100 vettori di volti a un vettore utente.

  2. Associa volti: dopo aver creato l'utente, puoi aggiungere vettori di volti esistenti a quell'utente con l'AssociateFacesoperazione. I vettori di volti devono risiedere nella stessa raccolta di un vettore utente per essere associati a quel vettore utente.

Dopo aver creato una raccolta e archiviato i vettori di volti e utenti, è possibile utilizzare le seguenti operazioni per cercare le corrispondenze dei volti:

  • SearchFacesByImage- Per cercare singoli volti memorizzati con un volto di un'immagine.

  • SearchFaces- Per cercare tra i singoli volti memorizzati con un face ID fornito.

  • SearchUsers- Per cercare tra gli utenti memorizzati con un face ID o un ID utente forniti.

  • SearchUsersByImage- Per eseguire una ricerca tra gli utenti archiviati con un volto tratto da un'immagine.

  • StartFaceSearch- Per cercare volti in un video memorizzato.

  • CreateStreamProcessor- Per cercare volti in un video in streaming.

Nota

Le raccolte memorizzano i vettori dei volti, che sono rappresentazioni matematiche dei volti. Le raccolte non memorizzano immagini di volti.

I seguenti diagrammi mostrano l'ordine delle operazioni di chiamata, in base agli obiettivi di utilizzo delle raccolte:

Per la massima precisione di abbinamento con i vettori utente:

Il diagramma che illustra l'archiviazione e la ricerca di vettori facciali utente in una raccolta, elenca operazioni come CreateCollection,,, IndexFaces CreateUser, AssociateFaces e. SearchUsersByImage SearchUsers

Per una corrispondenza ad alta precisione con i singoli vettori facciali:

Il diagramma che illustra l'archiviazione e la ricerca di volti in una raccolta, elenca operazioni come CreateCollection,, IndexFaces, StartFaceSearch CreateStreamProcessor, SearchFacesByImage e. SearchFaces

È possibile utilizzare le raccolte in diversi scenari. Ad esempio, è possibile creare una raccolta di volti che archivi i volti rilevati dalle immagini scansionate dei badge dei dipendenti e dai documenti d'identità emessi dal governo utilizzando le operazioni IndexFaces e AssociateFaces. Quando un dipendente entra nell'edificio, un'immagine del suo volto viene acquisita e inviata all'operazione SearchUsersByImage. Se la corrispondenza del volto produce un punteggio di somiglianza sufficientemente alto (pari al 99%), è possibile autenticare il collaboratore.

Gestione delle raccolte

La raccolta di volti è la risorsa principale di Amazon Rekognition e ogni raccolta creata dispone di un nome della risorsa Amazon (ARN) univoco. Puoi creare ogni raccolta di volti in una AWS regione specifica del tuo account. Quando si crea una nuova raccolta, viene associata con la versione più recente del modello di rilevamento facciale. Per ulteriori informazioni, consulta Versioni multiple del modello.

È possibile eseguire le seguenti operazioni di gestione su una raccolta:

Gestione dei volti in una raccolta

Dopo aver creato una raccolta, è possibile archiviarvi volti. Amazon Rekognition fornisce le seguenti operazioni per gestire i volti in una raccolta:

Gestione degli utenti in una raccolta

Dopo aver archiviato più vettori di volti della stessa persona, è possibile migliorare la precisione associando tutti i vettori di volti in un unico vettore utente. Per gestire gli utenti, puoi utilizzare le operazioni elencate di seguito:

  • CreateUser- L'operazione crea un nuovo utente in una raccolta con un ID utente univoco fornito.

  • AssociateUsers- Aggiungi da 1 a 100 face ID univoci a un ID utente. Dopo aver associato almeno un ID volto a un utente, puoi cercare le corrispondenze con quell'utente nella tua raccolta.

  • ListUsers- Elenca gli utenti in una raccolta.

  • DeleteUsers- Elimina un utente da una raccolta con l'ID utente fornito.

  • DisassociateFaces- Rimuove uno o più face ID da un utente.

Utilizzo delle soglie di somiglianza per l'associazione dei volti

È importante assicurarsi che i volti associati a un utente appartengano tutti alla stessa persona. A titolo di aiuto, il parametro UserMatchThreshold specifica la confidenza minima di corrispondenza dell'utente richiesta per associare il nuovo volto a un UserID che contiene già almeno un FaceID. Questo aiuta a garantire che i FaceIds siano associati allo UserID corretto. Il valore è compreso tra 0 e 100 e il valore predefinito è 75.

Guida per l'uso IndexFaces

Di seguito vengono fornite alcune indicazioni per l'utilizzo di IndexFaces in situazioni comuni.

Applicazioni critiche o di pubblica sicurezza

  • Chiama IndexFacescon immagini che contengono solo un volto in ogni immagine e associa il Face ID restituito all'identificatore del soggetto dell'immagine.

  • Puoi utilizzare DetectFacesprima dell'indicizzazione per verificare che nell'immagine sia presente un solo volto. Se vengono rilevati più volti, invia di nuovo l'immagine dopo l'analisi e con un solo volto presente. In questo modo eviterai di indicizzare inavvertitamente più volti, associandoli alla stessa persona.

Condivisione di foto e applicazioni social media

  • Se IndexFaces viene utilizzato, ad esempio, per creare un album di foto di famiglia, puoi richiamarlo senza limitare le immagini che contengono più volti. In questi casi, dovrai identificare ogni persona presente nelle foto e utilizzare tali informazioni per raggruppare le foto in base alle persone raffigurate.

Utilizzo generico

  • Indicizza più immagini diverse della stessa persona, cercando di cogliere vari attributi facciali (espressioni, baffi, barba e così via), crea un utente e associa i diversi volti all'utente per migliorare la qualità della corrispondenza.

  • Includi un processo di revisione in modo che gli errori di corrispondenza possano essere indicizzati con il corretto identificatore, per migliorare le capacità di trovare corrispondenze in futuro.

  • Per informazioni sulla qualità delle immagini, consulta Raccomandazioni per immagini di input di confronto di volti.

Ricerca di volti e utenti all'interno di una raccolta

Dopo aver creato una raccolta di volti e aver archiviato vettori di volti e/o vettori utente, sarà possibile cercare le corrispondenze di volti al suo interno. Con Amazon Rekognition è possibile ricercare in una raccolta i volti che corrispondono a:

È possibile utilizzare l'operazione CompareFaces per confrontare un volto in un'immagine di origine con i volti nell'immagine di destinazione. L'ambito di questo confronto è limitato ai volti che vengono rilevati nell'immagine di destinazione. Per ulteriori informazioni, consulta Confronto dei volti nelle immagini.

Le varie operazioni di ricerca visualizzate nell'elenco seguente confrontano un volto (identificato da un FaceId o da un'immagine di input) con tutti i volti archiviati in una determinata raccolta di volti:

Utilizzo di soglie di somiglianza per la corrispondenza dei volti

Ti consentiamo di controllare i risultati di tutte le operazioni di ricerca (CompareFaces, SearchFaces,, SearchFacesByImageSearchUsers, SearchUsersByImage) fornendo una soglia di somiglianza come parametro di input.

FaceMatchThreshold è l'attributo di input della soglia di somiglianza per SearchFaces e SearchFacesByImage, e consente di controllare il numero di risultati restituiti in base alla somiglianza al volto corrispondente. L'attributo della soglia di somiglianza per SearchUsers e SearchUsersByImage, UserMatchThreshold, consente di controllare il numero di risultati restituiti in base alla somiglianza al vettore utente corrispondente. L'attributo della soglia è SimilarityThreshold per CompareFaces.

Risposte con un valore di attributo di risposta Similarity inferiore alla soglia non vengono restituite. È importante calibrare questa soglia per il tuo caso d'uso, poiché può determinare il numero di falsi positivi inclusi nei risultati corrispondenti. Questo controlla il richiamo dei tuoi risultati di ricerca; minore sarà la soglia, maggiore sarà il richiamo.

Tutti i sistemi di Machine Learning sono probabilistici. Dovresti impostare autonomamente la giusta soglia di somiglianza, a seconda del tuo caso d'uso. Ad esempio, se stai cercando di creare un'applicazione di foto per identificare membri della famiglia somiglianti, potresti scegliere una soglia inferiore (ad esempio l'80%). Viceversa, per molti casi d'uso delle forze dell'ordine, si consiglia di impiegare un valore soglia elevato pari o superiore al 99%, al fine di ridurre errori di identificazione accidentali.

Oltre a FaceMatchThreshold e UserMatchThreshold, puoi utilizzare l'attributo di risposta Similarity per ridurre errori di identificazione accidentali. Ad esempio, puoi scegliere di utilizzare una soglia bassa (ad esempio l'80%) per restituire più risultati. Quindi, puoi utilizzare l'attributo di risposta Somiglianza (percentuale di somiglianza) per limitare la scelta e filtrare le risposte corrette nell'applicazione. Anche qui, maggiore è la somiglianza (ad esempio pari e superiore al 99%), minori saranno gli errori di identificazione.