

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à.

# Riconoscimento delle celebrità
<a name="celebrities"></a>

Amazon Rekognition consente ai clienti di riconoscere automaticamente decine di migliaia di personalità famose in immagini e video utilizzando il machine learning. I metadati forniti dall'API di riconoscimento di volti celebri riducono in modo significativo lo sforzo manuale ripetitivo necessario per applicare tag ai contenuti e renderli facilmente ricercabili. 

La rapida proliferazione di contenuti sotto forma di immagini e video significa che le aziende del settore multimediale spesso faticano a organizzare, cercare e utilizzare i propri cataloghi multimediali su larga scala. I canali di informazione e le emittenti sportive spesso hanno bisogno di trovare rapidamente immagini e video, per rispondere agli eventi attuali e creare una programmazione pertinente. La mancanza di metadati rende difficili queste attività, ma con Amazon Rekognition è possibile applicare tag automaticamente a grandi volumi di contenuti nuovi o di archivio per renderli facilmente ricercabili per un set completo di celebrità internazionali di grande fama come attori, sportivi e creatori di contenuti online.

Il riconoscimento di volti celebri di Amazon Rekognition è progettato per essere utilizzato esclusivamente nei casi in cui si prevede che possa esserci una celebrità nota in un'immagine o in un video. Per informazioni sul riconoscimento di volti che non sono celebrità, consulta [Ricerca di volti in una raccolta](collections.md).

**Nota**  
Se sei una celebrità e non vuoi essere incluso in questa funzionalità, contatta l'[AWS assistenza](https://aws.amazon.com/contact-us/) o invia un'e-mail a rekognition-celebrity-opt-out@amazon .com.

**Topics**
+ [Differenze fra Riconoscimento di volti celebri e Ricerca di volti](celebrity-recognition-vs-face-search.md)
+ [Riconoscimento delle celebrità in un'immagine](celebrities-procedure-image.md)
+ [Riconoscimento di celebrità in un video archiviato](celebrities-video-sqs.md)
+ [Come recuperare le informazioni su una celebrità](get-celebrity-info-procedure.md)

# Differenze fra Riconoscimento di volti celebri e Ricerca di volti
<a name="celebrity-recognition-vs-face-search"></a>

Amazon Rekognition include le funzionalità Riconoscimento di volti celebri e Ricerca di volti. Queste funzionalità hanno alcune differenze importanti per quanto riguarda i casi d'uso e le best practice. 

Il riconoscimento delle celebrità è preimpostato sulla capacità di riconoscere oltre centomila celebrità in campi come lo sport, i media, la politica e gli affari. Questa funzionalità è stata progettata per effettuare ricerche in grandi volumi di immagini o video e identificare quelli che potrebbero contenere una determinata celebrità. Non è stata creata per eseguire confronti tra persone diverse che non sono celebrità. In situazioni in cui è importante che il riconoscimento della celebrità sia accurato, consigliamo di ricorrere anche a operatori umani che prendano in esame i contenuti evidenziati dalla funzionalità per garantire un maggiore livello di precisione e l'applicazione del giudizio umano. Il Riconoscimento di volti celebri non deve essere utilizzato in modi che possano ledere i diritti civili e le libertà individuali. 

Il riconoscimento di volti è invece una funzionalità più generica che consente di creare una propria raccolta di volti, con vettori personalizzati, per verificare le identità ed eseguire ricerche di persone che possono anche non essere celebri. Il riconoscimento facciale può essere utilizzato in varie applicazioni, come ad esempio controlli per l'accesso a un edificio, sicurezza pubblica e social media. In questi casi, si consiglia di utilizzare le best practice, soglie di sicurezza appropriate (ad esempio, 99% per gli utilizzi di sicurezza pubblica) e l'intervento umano nelle situazioni in cui la precisione della corrispondenza sia importante.

Per ulteriori informazioni, consulta [Ricerca di volti in una raccolta](collections.md).

# Riconoscimento delle celebrità in un'immagine
<a name="celebrities-procedure-image"></a>

Per riconoscere volti celebri nelle immagini e ottenere ulteriori informazioni sui volti celebri riconosciuti, utilizzare l'operazione [RecognizeCelebrities](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_RecognizeCelebrities.html) dell'API non basata su storage. Ad esempio, nel settore dei social media o dell'informazione e dell'intrattenimento, in cui l'elemento tempo può rappresentare un fattore determinante nella raccolta delle informazioni, è possibile utilizzare l'operazione `RecognizeCelebrities` per identificare fino a 64 celebrità in un'immagine e restituire collegamenti alle pagine Web delle celebrità, se disponibili. Amazon Rekognition non ricorda l'immagine in cui ha individuato la celebrità. Queste informazioni devono essere archiviate dall'applicazione in uso. 

Se non hai archiviato ulteriori informazioni per un volto celebre restituito da `RecognizeCelebrities` e desideri evitare di analizzare di nuovo un'immagine per ottenerle, utilizza [GetCelebrityInfo](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetCelebrityInfo.html). Per effettuare una chiamata a `GetCelebrityInfo`, è necessario l'ID univoco che Amazon Rekognition assegna a ogni celebrità. L'identificatore viene restituito come parte della risposta `RecognizeCelebrities` per ogni volto celebre riconosciuto in un'immagine. 

Se disponi di un'ampia raccolta di immagini da elaborare per il riconoscimento di volti celebri, considera la possibilità di utilizzare [Batch AWS](https://docs.aws.amazon.com/batch/latest/userguide/) per elaborare le chiamate a `RecognizeCelebrities` in batch in background. Quando aggiungi una nuova immagine alla tua raccolta, puoi utilizzare una AWS Lambda funzione per riconoscere le celebrità `RecognizeCelebrities` chiamando quando l'immagine viene caricata in un bucket S3.

## Chiamata RecognizeCelebrities
<a name="recognize-image-example"></a>

Puoi fornire l'immagine di input come array di byte di immagine (byte di immagine con codifica base64) o come oggetto Amazon S3, utilizzando () o l'SDK AWS. AWS Command Line Interface AWS CLI Nella AWS CLI procedura, carichi un'immagine in formato.jpg o .png in un bucket S3. Nelle procedure AWS SDK, si utilizza un'immagine caricata dal file system locale. Per informazioni sui suggerimenti per le immagini di input, consulta [Lavorare con le immagini](images.md). 

Per eseguire questa procedura, è necessario disporre di un file immagine contenente uno o più volti celebri.

**Come riconoscere le celebrità in un’immagine**

1. Se non lo hai già fatto:

   1. Crea o aggiorna un utente con le autorizzazioni `AmazonRekognitionFullAccess` e `AmazonS3ReadOnlyAccess`. Per ulteriori informazioni, consulta [Fase 1: impostazione di un account AWS e creazione di un utente](setting-up.md#setting-up-iam).

   1. Installa e configura il AWS CLI e il AWS SDKs. Per ulteriori informazioni, consulta [Passaggio 2: configura AWS CLI e AWS SDKs](setup-awscli-sdk.md).

1. Utilizzare i seguenti esempi per richiamare l'operazione `RecognizeCelebrities`.

------
#### [ Java ]

   Questo esempio mostra le informazioni sui volti celebri che vengono rilevati in un'immagine. 

   Modifica il valore di `photo` con il percorso e il nome di un file immagine archiviato in locale contenente uno o più volti celebri.

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   package aws.example.rekognition.image;
   import com.amazonaws.services.rekognition.AmazonRekognition;
   import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
   import com.amazonaws.services.rekognition.model.Image;
   import com.amazonaws.services.rekognition.model.BoundingBox;
   import com.amazonaws.services.rekognition.model.Celebrity;
   import com.amazonaws.services.rekognition.model.RecognizeCelebritiesRequest;
   import com.amazonaws.services.rekognition.model.RecognizeCelebritiesResult;
   import java.io.File;
   import java.io.FileInputStream;
   import java.io.InputStream;
   import java.nio.ByteBuffer;
   import com.amazonaws.util.IOUtils;
   import java.util.List;
   
   
   public class RecognizeCelebrities {
   
      public static void main(String[] args) {
         String photo = "moviestars.jpg";
   
         AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
   
         ByteBuffer imageBytes=null;
         try (InputStream inputStream = new FileInputStream(new File(photo))) {
            imageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream));
         }
         catch(Exception e)
         {
             System.out.println("Failed to load file " + photo);
             System.exit(1);
         }
   
   
         RecognizeCelebritiesRequest request = new RecognizeCelebritiesRequest()
            .withImage(new Image()
            .withBytes(imageBytes));
   
         System.out.println("Looking for celebrities in image " + photo + "\n");
   
         RecognizeCelebritiesResult result=rekognitionClient.recognizeCelebrities(request);
   
         //Display recognized celebrity information
         List<Celebrity> celebs=result.getCelebrityFaces();
         System.out.println(celebs.size() + " celebrity(s) were recognized.\n");
   
         for (Celebrity celebrity: celebs) {
             System.out.println("Celebrity recognized: " + celebrity.getName());
             System.out.println("Celebrity ID: " + celebrity.getId());
             BoundingBox boundingBox=celebrity.getFace().getBoundingBox();
             System.out.println("position: " +
                boundingBox.getLeft().toString() + " " +
                boundingBox.getTop().toString());
             System.out.println("Further information (if available):");
             for (String url: celebrity.getUrls()){
                System.out.println(url);
             }
             System.out.println();
          }
          System.out.println(result.getUnrecognizedFaces().size() + " face(s) were unrecognized.");
      }
   }
   ```

------
#### [ Java V2 ]

   Questo codice è tratto dal GitHub repository degli esempi di AWS Documentation SDK. Guarda l'esempio completo [qui](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/rekognition/src/main/java/com/example/rekognition/RecognizeCelebrities.java).

   ```
   //snippet-start:[rekognition.java2.recognize_celebs.import]
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.core.SdkBytes;
   import java.io.FileInputStream;
   import java.io.FileNotFoundException;
   import java.io.InputStream;
   import java.util.List;
   import software.amazon.awssdk.services.rekognition.model.RecognizeCelebritiesRequest;
   import software.amazon.awssdk.services.rekognition.model.RecognizeCelebritiesResponse;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   import software.amazon.awssdk.services.rekognition.model.Image;
   import software.amazon.awssdk.services.rekognition.model.Celebrity;
   //snippet-end:[rekognition.java2.recognize_celebs.import]
   
   /**
   * Before running this Java V2 code example, set up your development environment, including your credentials.
   *
   * For more information, see the following documentation topic:
   *
   * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
   */
   public class RecognizeCelebrities {
   
    public static void main(String[] args) {
   
        final String usage = "\n" +
            "Usage: " +
            "   <sourceImage>\n\n" +
            "Where:\n" +
            "   sourceImage - The path to the image (for example, C:\\AWS\\pic1.png). \n\n";
   
        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }
   
        String sourceImage = args[0];
        Region region = Region.US_EAST_1;
        RekognitionClient rekClient = RekognitionClient.builder()
            .region(region)
            .credentialsProvider(ProfileCredentialsProvider.create("profile-name"))
            .build();
   
        System.out.println("Locating celebrities in " + sourceImage);
        recognizeAllCelebrities(rekClient, sourceImage);
        rekClient.close();
    }
   
    // snippet-start:[rekognition.java2.recognize_celebs.main]
    public static void recognizeAllCelebrities(RekognitionClient rekClient, String sourceImage) {
   
        try {
            InputStream sourceStream = new FileInputStream(sourceImage);
            SdkBytes sourceBytes = SdkBytes.fromInputStream(sourceStream);
            Image souImage = Image.builder()
                .bytes(sourceBytes)
                .build();
   
            RecognizeCelebritiesRequest request = RecognizeCelebritiesRequest.builder()
                .image(souImage)
                .build();
   
            RecognizeCelebritiesResponse result = rekClient.recognizeCelebrities(request) ;
            List<Celebrity> celebs=result.celebrityFaces();
            System.out.println(celebs.size() + " celebrity(s) were recognized.\n");
            for (Celebrity celebrity: celebs) {
                System.out.println("Celebrity recognized: " + celebrity.name());
                System.out.println("Celebrity ID: " + celebrity.id());
   
                System.out.println("Further information (if available):");
                for (String url: celebrity.urls()){
                    System.out.println(url);
                }
                System.out.println();
            }
            System.out.println(result.unrecognizedFaces().size() + " face(s) were unrecognized.");
   
        } catch (RekognitionException | FileNotFoundException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
    }
    // snippet-end:[rekognition.java2.recognize_celebs.main]
   }
   ```

------
#### [ AWS CLI ]

   Questo AWS CLI comando visualizza l'output JSON per l'operazione `recognize-celebrities` CLI. 

   Sostituisci `amzn-s3-demo-bucket` con il nome di un bucket Amazon S3 contenente un'immagine. Modifica `input.jpg` con il nome di un file immagine archiviato in locale contenente uno o più volti celebri.

    Sostituisci il valore di `profile_name` con il nome del tuo profilo di sviluppatore. 

   ```
   aws rekognition recognize-celebrities \
     --image "S3Object={Bucket=amzn-s3-demo-bucket,Name=input.jpg}"
   ```

    Se accedi alla CLI da un dispositivo Windows, usa le virgolette doppie anziché le virgolette singole ed evita le virgolette doppie interne tramite barra rovesciata (ovvero, \$1) per risolvere eventuali errori del parser che potresti riscontrare. Per un esempio, consulta quanto segue: 

   ```
                                       aws rekognition recognize-celebrities --image \
                                       "{\"S3Object\":{\"Bucket\":\"amzn-s3-demo-bucket\",\"Name\":\"image-name\"}}" --profile profile-name
   ```

------
#### [ Python ]

   Questo esempio mostra le informazioni sui volti celebri che vengono rilevati in un'immagine. 

   Modifica il valore di `photo` con il percorso e il nome di un file immagine archiviato in locale contenente uno o più volti celebri.

   Sostituisci il valore di `profile_name` nella riga che crea la sessione di Rekognition con il nome del tuo profilo di sviluppatore.

   ```
   #Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   #PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   import boto3
   
   def recognize_celebrities(photo):
       
       session = boto3.Session(profile_name='profile-name')
       client = session.client('rekognition')
   
       with open(photo, 'rb') as image:
           response = client.recognize_celebrities(Image={'Bytes': image.read()})
   
       print('Detected faces for ' + photo)
       for celebrity in response['CelebrityFaces']:
           print('Name: ' + celebrity['Name'])
           print('Id: ' + celebrity['Id'])
           print('KnownGender: ' + celebrity['KnownGender']['Type'])
           print('Smile: ' + str(celebrity['Face']['Smile']['Value']))
           print('Position:')
           print('   Left: ' + '{:.2f}'.format(celebrity['Face']['BoundingBox']['Height']))
           print('   Top: ' + '{:.2f}'.format(celebrity['Face']['BoundingBox']['Top']))
           print('Info')
           for url in celebrity['Urls']:
               print('   ' + url)
           print()
       return len(response['CelebrityFaces'])
   
   def main():
       photo = 'photo-name'
       celeb_count = recognize_celebrities(photo)
       print("Celebrities detected: " + str(celeb_count))
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Node.Js ]

   Questo esempio mostra le informazioni sui volti celebri che vengono rilevati in un'immagine. 

   Modifica il valore di `photo` con il percorso e il nome di un file immagine archiviato in locale contenente uno o più volti celebri. Modifica il valore di `amzn-s3-demo-bucket` con quello del nome del bucket S3 che contiene il file immagine fornito. Modifica il valore di `REGION` con quello del nome della regione associata al tuo utente. Sostituisci il valore di `profile_name` nella riga che crea la sessione di Rekognition con il nome del tuo profilo di sviluppatore. 

   ```
   // Import required AWS SDK clients and commands for Node.js
   import { RecognizeCelebritiesCommand } from  "@aws-sdk/client-rekognition";
   import  { RekognitionClient } from "@aws-sdk/client-rekognition";
   
   // Set the AWS Region.
   const REGION = "region-name"; //e.g. "us-east-1"
   const profileName = "profile-name";
   
   // Create SNS service object.
   const rekogClient = new RekognitionClient({region: REGION, 
     credentials: fromIni({profile: profileName,}), 
   });
   
   const bucket = 'bucket-name'
   const photo = 'photo-name'
   
   // Set params
   const params = {
       Image: {
         S3Object: {
           Bucket: bucket,
           Name: photo
         },
       },
     }
   
   const recognize_celebrity = async() => {
       try {
           const response = await rekogClient.send(new RecognizeCelebritiesCommand(params));
           console.log(response.Labels)
           response.CelebrityFaces.forEach(celebrity =>{
               console.log(`Name: ${celebrity.Name}`)
               console.log(`ID: ${celebrity.Id}`)
               console.log(`KnownGender: ${celebrity.KnownGender.Type}`)
               console.log(`Smile: ${celebrity.Smile}`)
               console.log('Position: ')
               console.log(`   Left: ${celebrity.Face.BoundingBox.Height}`)
               console.log(`  Top : ${celebrity.Face.BoundingBox.Top}`)
               
           })
           return response.length; // For unit tests.
         } catch (err) {
           console.log("Error", err);
         }
   }
   
   recognize_celebrity()
   ```

------
#### [ .NET ]

   Questo esempio mostra le informazioni sui volti celebri che vengono rilevati in un'immagine. 

   Modifica il valore di `photo` con il percorso e il nome di un file immagine archiviato in locale contenente uno o più volti celebri in formato .jpg o .png.

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   using System;
   using System.IO;
   using Amazon.Rekognition;
   using Amazon.Rekognition.Model;
   
   public class CelebritiesInImage
   {
       public static void Example()
       {
           String photo = "moviestars.jpg";
   
           AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();
   
           RecognizeCelebritiesRequest recognizeCelebritiesRequest = new RecognizeCelebritiesRequest();
   
           Amazon.Rekognition.Model.Image img = new Amazon.Rekognition.Model.Image();
           byte[] data = null;
           try
           {
               using (FileStream fs = new FileStream(photo, FileMode.Open, FileAccess.Read))
               {
                   data = new byte[fs.Length];
                   fs.Read(data, 0, (int)fs.Length);
               }
           }
           catch(Exception)
           {
               Console.WriteLine("Failed to load file " + photo);
               return;
           }
   
           img.Bytes = new MemoryStream(data);
           recognizeCelebritiesRequest.Image = img;
   
           Console.WriteLine("Looking for celebrities in image " + photo + "\n");
   
           RecognizeCelebritiesResponse recognizeCelebritiesResponse = rekognitionClient.RecognizeCelebrities(recognizeCelebritiesRequest);
   
           Console.WriteLine(recognizeCelebritiesResponse.CelebrityFaces.Count + " celebrity(s) were recognized.\n");
           foreach (Celebrity celebrity in recognizeCelebritiesResponse.CelebrityFaces)
           {
               Console.WriteLine("Celebrity recognized: " + celebrity.Name);
               Console.WriteLine("Celebrity ID: " + celebrity.Id);
               BoundingBox boundingBox = celebrity.Face.BoundingBox;
               Console.WriteLine("position: " +
                  boundingBox.Left + " " + boundingBox.Top);
               Console.WriteLine("Further information (if available):");
               foreach (String url in celebrity.Urls)
                   Console.WriteLine(url);
           }
           Console.WriteLine(recognizeCelebritiesResponse.UnrecognizedFaces.Count + " face(s) were unrecognized.");
       }
   }
   ```

------

1. Registra il valore di una delle celebrità IDs visualizzate. Questo valore sarà necessario nella [Come recuperare le informazioni su una celebrità](get-celebrity-info-procedure.md).

## RecognizeCelebrities richiesta di operazione
<a name="recognizecelebrities-request"></a>

L'input per `RecognizeCelebrities` è un'immagine. In questo esempio, l'immagine è passata come byte di immagine. Per ulteriori informazioni, consulta [Lavorare con le immagini](images.md).

```
{
    "Image": {
        "Bytes": "/AoSiyvFpm....."
    }
}
```

## RecognizeCelebrities risposta operativa
<a name="recognizecelebrities-response"></a>

Di seguito è riportato un esempio di input e output JSON per `RecognizeCelebrities`. 

`RecognizeCelebrities` restituisce un array di volti celebri riconosciuti e un array di volti non riconosciuti. Nell'esempio , tenere presente quanto segue:
+ **Celebrità riconosciute**: `Celebrities` è una matrice di celebrità riconosciute. Ogni oggetto [Celebrity](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Celebritiy.html) nell'array contiene il nome della celebrità e un elenco di URLs riferimenti a contenuti correlati, ad esempio il link IMDB o Wikidata della celebrità. Amazon Rekognition [ComparedFace](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ComparedFace.html)restituisce un oggetto che l'applicazione può utilizzare per determinare dove si trova il volto della celebrità sull'immagine e un identificatore univoco per la celebrità. Utilizza l'identificatore univoco per recuperare in seguito le informazioni sulla celebrità con l'operazione [GetCelebrityInfo](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetCelebrityInfo.html) dell'API. 
+ **Volti non riconosciuti**: `UnrecognizedFaces` è una matrice di volti non corrispondenti a celebrità. Ogni oggetto [ComparedFace](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ComparedFace.html) nell'array contiene un riquadro di delimitazione (nonché altre informazioni) che può essere utilizzato per individuare il volto nell'immagine.

```
{
    "CelebrityFaces": [{
        "Face": {
            "BoundingBox": {
                "Height": 0.617123007774353,
                "Left": 0.15641026198863983,
                "Top": 0.10864841192960739,
                "Width": 0.3641025722026825
            },
            "Confidence": 99.99589538574219,
            "Emotions": [{
                "Confidence": 96.3981749057023,
                "Type": "Happy"
                }
            ],
            "Landmarks": [{
                "Type": "eyeLeft",
                "X": 0.2837241291999817,
                "Y": 0.3637104034423828
            }, {
                "Type": "eyeRight",
                "X": 0.4091649055480957,
                "Y": 0.37378931045532227
            }, {
                "Type": "nose",
                "X": 0.35267341136932373,
                "Y": 0.49657556414604187
            }, {
                "Type": "mouthLeft",
                "X": 0.2786353826522827,
                "Y": 0.5455248355865479
            }, {
                "Type": "mouthRight",
                "X": 0.39566439390182495,
                "Y": 0.5597742199897766
            }],
            "Pose": {
                "Pitch": -7.749263763427734,
                "Roll": 2.004552125930786,
                "Yaw": 9.012002944946289
            },
            "Quality": {
                "Brightness": 32.69192123413086,
                "Sharpness": 99.9305191040039
            },
            "Smile": {
            "Confidence": 95.45394855702342,
            "Value": True
            }    
        },
        "Id": "3Ir0du6",
        "KnownGender": {
            "Type": "Male"
        },
        "MatchConfidence": 98.0,
        "Name": "Jeff Bezos",
        "Urls": ["www.imdb.com/name/nm1757263"]
    }],
    "OrientationCorrection": "NULL",
    "UnrecognizedFaces": [{
        "BoundingBox": {
            "Height": 0.5345501899719238,
            "Left": 0.48461538553237915,
            "Top": 0.16949152946472168,
            "Width": 0.3153846263885498
        },
        "Confidence": 99.92860412597656,
        "Landmarks": [{
            "Type": "eyeLeft",
            "X": 0.5863404870033264,
            "Y": 0.36940744519233704
        }, {
            "Type": "eyeRight",
            "X": 0.6999204754829407,
            "Y": 0.3769848346710205
        }, {
            "Type": "nose",
            "X": 0.6349524259567261,
            "Y": 0.4804527163505554
        }, {
            "Type": "mouthLeft",
            "X": 0.5872702598571777,
            "Y": 0.5535582304000854
        }, {
            "Type": "mouthRight",
            "X": 0.6952020525932312,
            "Y": 0.5600858926773071
        }],
        "Pose": {
            "Pitch": -7.386096477508545,
            "Roll": 2.304218292236328,
            "Yaw": -6.175624370574951
        },
        "Quality": {
            "Brightness": 37.16635513305664,
            "Sharpness": 99.9305191040039
        },
        "Smile": {
            "Confidence": 95.45394855702342,
            "Value": True
        }
    }]
}
```

# Riconoscimento di celebrità in un video archiviato
<a name="celebrities-video-sqs"></a>

Il riconoscimento di volti celebri di Video Amazon Rekognition nei video archiviati è un'operazione asincrona. Per riconoscere le celebrità in un video archiviato, utilizzalo per avviare l'analisi video. [StartCelebrityRecognition](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartCelebrityRecognition.html) Amazon Rekognition per video pubblica lo stato di completamento dell'analisi video in un argomento Amazon Simple Notification Service. Se l'analisi video ha esito positivo, effettua la chiamata a [GetCelebrityRecognition](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetCelebrityRecognition.html) per ottenere i risultati dell'analisi. Per ulteriori informazioni su come avviare analisi video e ottenere i risultati, consultare [Chiamata delle operazioni Video Amazon Rekognition](api-video.md). 

La procedura si espande nel codice in [Analisi di un video archiviato in un bucket Amazon S3 con Java o Python (SDK)](video-analyzing-with-sqs.md), che utilizza una coda di Amazon SQS per ottenere lo stato di completamento di una richiesta di analisi video. Per eseguire questa procedura, è necessario disporre di un file video contenente uno o più volti celebri.

**Per individuare le celebrità in un video archiviato in un bucket Amazon S3 (SDK)**

1. Eseguire [Analisi di un video archiviato in un bucket Amazon S3 con Java o Python (SDK)](video-analyzing-with-sqs.md).

1. Aggiungere il seguente codice alla classe `VideoDetect` creata nella fase 1.

------
#### [ Java ]

   ```
           //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
           //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
         // Celebrities=====================================================================
         private static void StartCelebrityDetection(String bucket, String video) throws Exception{
       	  
               NotificationChannel channel= new NotificationChannel()
                       .withSNSTopicArn(snsTopicArn)
                       .withRoleArn(roleArn);
     
              StartCelebrityRecognitionRequest req = new StartCelebrityRecognitionRequest()
                    .withVideo(new Video()
                          .withS3Object(new S3Object()
                                .withBucket(bucket)
                                .withName(video)))
                    .withNotificationChannel(channel);
     
     
     
              StartCelebrityRecognitionResult startCelebrityRecognitionResult = rek.startCelebrityRecognition(req);
              startJobId=startCelebrityRecognitionResult.getJobId();
     
           } 
     
           private static void GetCelebrityDetectionResults() throws Exception{
     
              int maxResults=10;
              String paginationToken=null;
              GetCelebrityRecognitionResult celebrityRecognitionResult=null;
     
              do{
                 if (celebrityRecognitionResult !=null){
                    paginationToken = celebrityRecognitionResult.getNextToken();
                 }
                 celebrityRecognitionResult = rek.getCelebrityRecognition(new GetCelebrityRecognitionRequest()
                       .withJobId(startJobId)
                       .withNextToken(paginationToken)
                       .withSortBy(CelebrityRecognitionSortBy.TIMESTAMP)
                       .withMaxResults(maxResults));
     
     
                 System.out.println("File info for page");
                 VideoMetadata videoMetaData=celebrityRecognitionResult.getVideoMetadata();
     
                 System.out.println("Format: " + videoMetaData.getFormat());
                 System.out.println("Codec: " + videoMetaData.getCodec());
                 System.out.println("Duration: " + videoMetaData.getDurationMillis());
                 System.out.println("FrameRate: " + videoMetaData.getFrameRate());
     
                 System.out.println("Job");
     
                 System.out.println("Job status: " + celebrityRecognitionResult.getJobStatus());
     
     
                 //Show celebrities
                 List<CelebrityRecognition> celebs= celebrityRecognitionResult.getCelebrities();
     
                 for (CelebrityRecognition celeb: celebs) { 
                    long seconds=celeb.getTimestamp()/1000;
                    System.out.print("Sec: " + Long.toString(seconds) + " ");
                    CelebrityDetail details=celeb.getCelebrity();
                    System.out.println("Name: " + details.getName());
                    System.out.println("Id: " + details.getId());
                    System.out.println(); 
                 }
              } while (celebrityRecognitionResult !=null && celebrityRecognitionResult.getNextToken() != null);
     
           }
   ```

   Nella funzione `main`, sostituisci la riga: 

   ```
           StartLabelDetection(amzn-s3-demo-bucket, video);
   
           if (GetSQSMessageSuccess()==true)
           	GetLabelDetectionResults();
   ```

   con:

   ```
           StartCelebrityDetection(amzn-s3-demo-bucket, video);
   
           if (GetSQSMessageSuccess()==true)
           	GetCelebrityDetectionResults();
   ```

------
#### [ Java V2 ]

   Questo codice è tratto dal repository degli esempi GitHub di AWS Documentation SDK. Guarda l'esempio completo [qui](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/rekognition/src/main/java/com/example/rekognition/VideoCelebrityDetection.java).

   ```
   //snippet-start:[rekognition.java2.recognize_video_celebrity.import]
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.S3Object;
   import software.amazon.awssdk.services.rekognition.model.NotificationChannel;
   import software.amazon.awssdk.services.rekognition.model.Video;
   import software.amazon.awssdk.services.rekognition.model.StartCelebrityRecognitionResponse;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   import software.amazon.awssdk.services.rekognition.model.CelebrityRecognitionSortBy;
   import software.amazon.awssdk.services.rekognition.model.VideoMetadata;
   import software.amazon.awssdk.services.rekognition.model.CelebrityRecognition;
   import software.amazon.awssdk.services.rekognition.model.CelebrityDetail;
   import software.amazon.awssdk.services.rekognition.model.StartCelebrityRecognitionRequest;
   import software.amazon.awssdk.services.rekognition.model.GetCelebrityRecognitionRequest;
   import software.amazon.awssdk.services.rekognition.model.GetCelebrityRecognitionResponse;
   import java.util.List;
   //snippet-end:[rekognition.java2.recognize_video_celebrity.import]
   
   /**
   *  To run this code example, ensure that you perform the Prerequisites as stated in the Amazon Rekognition Guide:
   *  https://docs.aws.amazon.com/rekognition/latest/dg/video-analyzing-with-sqs.html
   *
   * Also, ensure that set up your development environment, including your credentials.
   *
   * For information, see this documentation topic:
   *
   * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
   */
   
   public class RecognizeCelebritiesVideo {
   
   private static String startJobId ="";
   
   public static void main(String[] args) {
   
      final String usage = "\n" +
          "Usage: " +
          "   <bucket> <video> <topicArn> <roleArn>\n\n" +
          "Where:\n" +
          "   bucket - The name of the bucket in which the video is located (for example, (for example, amzn-s3-demo-bucket). \n\n"+
          "   video - The name of video (for example, people.mp4). \n\n" +
          "   topicArn - The ARN of the Amazon Simple Notification Service (Amazon SNS) topic. \n\n" +
          "   roleArn - The ARN of the AWS Identity and Access Management (IAM) role to use. \n\n" ;
   
      if (args.length != 4) {
          System.out.println(usage);
          System.exit(1);
      }
   
      String bucket = args[0];
      String video = args[1];
      String topicArn = args[2];
      String roleArn = args[3];
      Region region = Region.US_EAST_1;
      RekognitionClient rekClient = RekognitionClient.builder()
          .region(region)
          .credentialsProvider(ProfileCredentialsProvider.create("profile-name"))
          .build();
   
     NotificationChannel channel = NotificationChannel.builder()
          .snsTopicArn(topicArn)
          .roleArn(roleArn)
          .build();
   
     StartCelebrityDetection(rekClient, channel, bucket, video);
     GetCelebrityDetectionResults(rekClient);
     System.out.println("This example is done!");
     rekClient.close();
   }
   
   // snippet-start:[rekognition.java2.recognize_video_celebrity.main]
   public static void StartCelebrityDetection(RekognitionClient rekClient,
                                              NotificationChannel channel,
                                              String bucket,
                                              String video){
      try {
          S3Object s3Obj = S3Object.builder()
              .bucket(bucket)
              .name(video)
              .build();
   
          Video vidOb = Video.builder()
              .s3Object(s3Obj)
              .build();
   
          StartCelebrityRecognitionRequest recognitionRequest = StartCelebrityRecognitionRequest.builder()
              .jobTag("Celebrities")
              .notificationChannel(channel)
              .video(vidOb)
              .build();
   
          StartCelebrityRecognitionResponse startCelebrityRecognitionResult = rekClient.startCelebrityRecognition(recognitionRequest);
          startJobId = startCelebrityRecognitionResult.jobId();
   
      } catch(RekognitionException e) {
          System.out.println(e.getMessage());
          System.exit(1);
      }
   }
   
   public static void GetCelebrityDetectionResults(RekognitionClient rekClient) {
   
      try {
          String paginationToken=null;
          GetCelebrityRecognitionResponse recognitionResponse = null;
          boolean finished = false;
          String status;
          int yy=0 ;
   
          do{
              if (recognitionResponse !=null)
                  paginationToken = recognitionResponse.nextToken();
   
              GetCelebrityRecognitionRequest recognitionRequest = GetCelebrityRecognitionRequest.builder()
                  .jobId(startJobId)
                  .nextToken(paginationToken)
                  .sortBy(CelebrityRecognitionSortBy.TIMESTAMP)
                  .maxResults(10)
                  .build();
   
              // Wait until the job succeeds
              while (!finished) {
                  recognitionResponse = rekClient.getCelebrityRecognition(recognitionRequest);
                  status = recognitionResponse.jobStatusAsString();
   
                  if (status.compareTo("SUCCEEDED") == 0)
                      finished = true;
                  else {
                      System.out.println(yy + " status is: " + status);
                      Thread.sleep(1000);
                  }
                  yy++;
              }
   
              finished = false;
   
              // Proceed when the job is done - otherwise VideoMetadata is null.
              VideoMetadata videoMetaData=recognitionResponse.videoMetadata();
              System.out.println("Format: " + videoMetaData.format());
              System.out.println("Codec: " + videoMetaData.codec());
              System.out.println("Duration: " + videoMetaData.durationMillis());
              System.out.println("FrameRate: " + videoMetaData.frameRate());
              System.out.println("Job");
   
              List<CelebrityRecognition> celebs= recognitionResponse.celebrities();
              for (CelebrityRecognition celeb: celebs) {
                  long seconds=celeb.timestamp()/1000;
                  System.out.print("Sec: " + seconds + " ");
                  CelebrityDetail details=celeb.celebrity();
                  System.out.println("Name: " + details.name());
                  System.out.println("Id: " + details.id());
                  System.out.println();
              }
   
          } while (recognitionResponse.nextToken() != null);
   
      } catch(RekognitionException | InterruptedException e) {
          System.out.println(e.getMessage());
          System.exit(1);
      }
   }
   // snippet-end:[rekognition.java2.recognize_video_celebrity.main]
   }
   ```

------
#### [ Python ]

   ```
   #Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   #PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
       # ============== Celebrities ===============
       def StartCelebrityDetection(self):
           response=self.rek.start_celebrity_recognition(Video={'S3Object': {'Bucket': self.bucket, 'Name': self.video}},
               NotificationChannel={'RoleArn': self.roleArn, 'SNSTopicArn': self.snsTopicArn})
   
           self.startJobId=response['JobId']
           print('Start Job Id: ' + self.startJobId)
   
       def GetCelebrityDetectionResults(self):
           maxResults = 10
           paginationToken = ''
           finished = False
   
           while finished == False:
               response = self.rek.get_celebrity_recognition(JobId=self.startJobId,
                                                       MaxResults=maxResults,
                                                       NextToken=paginationToken)
   
               print(response['VideoMetadata']['Codec'])
               print(str(response['VideoMetadata']['DurationMillis']))
               print(response['VideoMetadata']['Format'])
               print(response['VideoMetadata']['FrameRate'])
   
               for celebrityRecognition in response['Celebrities']:
                   print('Celebrity: ' +
                       str(celebrityRecognition['Celebrity']['Name']))
                   print('Timestamp: ' + str(celebrityRecognition['Timestamp']))
                   print()
   
               if 'NextToken' in response:
                   paginationToken = response['NextToken']
               else:
                   finished = True
   ```

   Nella funzione `main`, sostituisci le righe:

   ```
       analyzer.StartLabelDetection()
       if analyzer.GetSQSMessageSuccess()==True:
           analyzer.GetLabelDetectionResults()
   ```

   con:

   ```
       analyzer.StartCelebrityDetection()
       if analyzer.GetSQSMessageSuccess()==True:
           analyzer.GetCelebrityDetectionResults()
   ```

------
#### [ Node.JS ]

   Nel seguente esempio di codice Node.Js, sostituisci il valore di `amzn-s3-demo-bucket` con il nome del bucket S3 contenente il tuo video e il valore di `videoName` con il nome del file video. Dovrai inoltre sostituire il valore di `roleArn` con l'ARN associato al tuo ruolo di servizio IAM. Infine, sostituisci il valore di `region` con il nome della regione operativa associata al tuo account. Sostituisci il valore di `profile_name` nella riga che crea la sessione di Rekognition con il nome del tuo profilo di sviluppatore.

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   // Import required AWS SDK clients and commands for Node.js
   import { CreateQueueCommand, GetQueueAttributesCommand, GetQueueUrlCommand, 
     SetQueueAttributesCommand, DeleteQueueCommand, ReceiveMessageCommand, DeleteMessageCommand } from  "@aws-sdk/client-sqs";
   import {CreateTopicCommand, SubscribeCommand, DeleteTopicCommand } from "@aws-sdk/client-sns";
   import  { SQSClient } from "@aws-sdk/client-sqs";
   import  { SNSClient } from "@aws-sdk/client-sns";
   import  { RekognitionClient, StartLabelDetectionCommand, GetLabelDetectionCommand, 
     StartCelebrityRecognitionCommand, GetCelebrityRecognitionCommand} from "@aws-sdk/client-rekognition";
   import { stdout } from "process";
   import {fromIni} from '@aws-sdk/credential-providers';
   
   // Set the AWS Region.
   const REGION = "region-name"; //e.g. "us-east-1"
   // Set the profile name
   const profileName = "profile-name"
   // Name the collection
   // Create SNS service object.
   const sqsClient = new SQSClient({ region: REGION, 
     credentials: fromIni({profile: profileName,}), });
   const snsClient = new SNSClient({ region: REGION, 
     credentials: fromIni({profile: profileName,}), });
   const rekClient = new RekognitionClient({region: REGION, 
     credentials: fromIni({profile: profileName,}), 
   });
   
   // Set bucket and video variables
   const bucket = "bucket-name";
   const videoName = "video-name";
   const roleArn = "role-arn"
   var startJobId = ""
   
   var ts = Date.now();
   const snsTopicName = "AmazonRekognitionExample" + ts;
   const snsTopicParams = {Name: snsTopicName}
   const sqsQueueName = "AmazonRekognitionQueue-" + ts;
   
    // Set the parameters
    const sqsParams = {
     QueueName: sqsQueueName, //SQS_QUEUE_URL
     Attributes: {
       DelaySeconds: "60", // Number of seconds delay.
       MessageRetentionPeriod: "86400", // Number of seconds delay.
     },
   };
   
   const createTopicandQueue = async () => {
     try {
       // Create SNS topic
       const topicResponse = await snsClient.send(new CreateTopicCommand(snsTopicParams));
       const topicArn = topicResponse.TopicArn
       console.log("Success", topicResponse);
       // Create SQS Queue
       const sqsResponse = await sqsClient.send(new CreateQueueCommand(sqsParams));
       console.log("Success", sqsResponse);
       const sqsQueueCommand = await sqsClient.send(new GetQueueUrlCommand({QueueName: sqsQueueName}))
       const sqsQueueUrl = sqsQueueCommand.QueueUrl
       const attribsResponse = await sqsClient.send(new GetQueueAttributesCommand({QueueUrl: sqsQueueUrl, AttributeNames: ['QueueArn']}))
       const attribs = attribsResponse.Attributes
       console.log(attribs)
       const queueArn = attribs.QueueArn
       // subscribe SQS queue to SNS topic
       const subscribed = await snsClient.send(new SubscribeCommand({TopicArn: topicArn, Protocol:'sqs', Endpoint: queueArn}))
       const policy = {
         Version: "2012-10-17",&TCX5-2025-waiver;
         Statement: [
           {
             Sid: "MyPolicy",
             Effect: "Allow",
             Principal: {AWS: "*"},
             Action: "SQS:SendMessage",
             Resource: queueArn,
             Condition: {
               ArnEquals: {
                 'aws:SourceArn': topicArn
               }
             }
           }
         ]
       };
   
       const response = sqsClient.send(new SetQueueAttributesCommand({QueueUrl: sqsQueueUrl, Attributes: {Policy: JSON.stringify(policy)}}))
       console.log(response)
       console.log(sqsQueueUrl, topicArn)
       return [sqsQueueUrl, topicArn]
   
     } catch (err) {
       console.log("Error", err);
     }
   };
   
   const startCelebrityDetection = async(roleArn, snsTopicArn) =>{
     try {
         //Initiate label detection and update value of startJobId with returned Job ID
         const response = await rekClient.send(new StartCelebrityRecognitionCommand({Video:{S3Object:{Bucket:bucket, Name:videoName}},
             NotificationChannel:{RoleArn: roleArn, SNSTopicArn: snsTopicArn}}))
             startJobId = response.JobId
             console.log(`Start Job ID: ${startJobId}`)
             return startJobId
       } catch (err) {
         console.log("Error", err);
       }
     };
   
   const getCelebrityRecognitionResults = async(startJobId) =>{
     try {
         //Initiate label detection and update value of startJobId with returned Job ID
         var maxResults = 10
         var paginationToken = ''
         var finished = false
   
         while (finished == false){
             var response = await rekClient.send(new GetCelebrityRecognitionCommand({JobId: startJobId, MaxResults: maxResults, 
                 NextToken: paginationToken}))
             console.log(response.VideoMetadata.Codec)
             console.log(response.VideoMetadata.DurationMillis)
             console.log(response.VideoMetadata.Format)
             console.log(response.VideoMetadata.FrameRate)
             response.Celebrities.forEach(celebrityRecognition => {
                 console.log(`Celebrity: ${celebrityRecognition.Celebrity.Name}`)
                 console.log(`Timestamp: ${celebrityRecognition.Timestamp}`)
                 console.log()
             })
             // Searh for pagination token, if found, set variable to next token
             if (String(response).includes("NextToken")){
                 paginationToken = response.NextToken
         
             }else{
                 finished = true
             }
         }
       } catch (err) {
         console.log("Error", err);
       }
     };
   
   // Checks for status of job completion
   const getSQSMessageSuccess = async(sqsQueueUrl, startJobId) => {
     try {
       // Set job found and success status to false initially
       var jobFound = false
       var succeeded = false
       var dotLine = 0
       // while not found, continue to poll for response
       while (jobFound == false){
         var sqsReceivedResponse = await sqsClient.send(new ReceiveMessageCommand({QueueUrl:sqsQueueUrl, 
           MaxNumberOfMessages:'ALL', MaxNumberOfMessages:10}));
         if (sqsReceivedResponse){
           var responseString = JSON.stringify(sqsReceivedResponse)
           if (!responseString.includes('Body')){
             if (dotLine < 40) {
               console.log('.')
               dotLine = dotLine + 1
             }else {
               console.log('')
               dotLine = 0 
             };
             stdout.write('', () => {
               console.log('');
             });
             await new Promise(resolve => setTimeout(resolve, 5000));
             continue
           }
         }
   
         // Once job found, log Job ID and return true if status is succeeded
         for (var message of sqsReceivedResponse.Messages){
           console.log("Retrieved messages:")
           var notification = JSON.parse(message.Body)
           var rekMessage = JSON.parse(notification.Message)
           var messageJobId = rekMessage.JobId
           if (String(rekMessage.JobId).includes(String(startJobId))){
             console.log('Matching job found:')
             console.log(rekMessage.JobId)
             jobFound = true
             console.log(rekMessage.Status)
             if (String(rekMessage.Status).includes(String("SUCCEEDED"))){
               succeeded = true
               console.log("Job processing succeeded.")
               var sqsDeleteMessage = await sqsClient.send(new DeleteMessageCommand({QueueUrl:sqsQueueUrl, ReceiptHandle:message.ReceiptHandle}));
             }
           }else{
             console.log("Provided Job ID did not match returned ID.")
             var sqsDeleteMessage = await sqsClient.send(new DeleteMessageCommand({QueueUrl:sqsQueueUrl, ReceiptHandle:message.ReceiptHandle}));
           }
         }
       }
     return succeeded
     } catch(err) {
       console.log("Error", err);
     }
   };
   
   // Start label detection job, sent status notification, check for success status
   // Retrieve results if status is "SUCEEDED", delete notification queue and topic
   const runCelebRecognitionAndGetResults = async () => {
     try {
       const sqsAndTopic = await createTopicandQueue();
       //const startLabelDetectionRes = await startLabelDetection(roleArn, sqsAndTopic[1]);
       //const getSQSMessageStatus = await getSQSMessageSuccess(sqsAndTopic[0], startLabelDetectionRes)
       const startCelebrityDetectionRes = await startCelebrityDetection(roleArn, sqsAndTopic[1]);
       const getSQSMessageStatus = await getSQSMessageSuccess(sqsAndTopic[0], startCelebrityDetectionRes)
       console.log(getSQSMessageSuccess)
       if (getSQSMessageSuccess){
         console.log("Retrieving results:")
         const results = await getCelebrityRecognitionResults(startCelebrityDetectionRes)
       }
       const deleteQueue = await sqsClient.send(new DeleteQueueCommand({QueueUrl: sqsAndTopic[0]}));
       const deleteTopic = await snsClient.send(new DeleteTopicCommand({TopicArn: sqsAndTopic[1]}));
       console.log("Successfully deleted.")
     } catch (err) {
       console.log("Error", err);
     }
   };
   
   runCelebRecognitionAndGetResults()
   ```

------
#### [ CLI ]

   Esegui il AWS CLI comando seguente per iniziare a rilevare le celebrità in un video.

   ```
   aws rekognition start-celebrity-recognition --video "{"S3Object":{"Bucket":"amzn-s3-demo-bucket","Name":"video-name"}}" \
   --notification-channel "{"SNSTopicArn":"topic-arn","RoleArn":"role-arn"}" \
   --region region-name --profile profile-name
   ```

   Aggiorna i seguenti valori:
   + Modifica `amzn-s3-demo-bucket` e `video-name` con il nome del bucket Amazon S3 e il nome del file specificati nella fase 2.
   + Cambia `region-name` con la regione AWS che stai utilizzando.
   + Sostituisci il valore di `profile-name` con il nome del tuo profilo di sviluppatore.
   + Cambia `topic-ARN` con l'ARN dell'argomento Amazon SNS creato nella fase 3 di [Configurazione di Video Amazon Rekognition](api-video-roles.md).
   + Modifica `role-ARN` con l'ARN del ruolo di servizio IAM creato nella fase 7 di [Configurazione di Video Amazon Rekognition](api-video-roles.md).

   Se accedi alla CLI da un dispositivo Windows, usa le virgolette doppie anziché le virgolette singole ed evita le virgolette doppie interne tramite barra rovesciata (ovvero, \$1) per risolvere eventuali errori del parser che potresti riscontrare. Un esempio è fornito di seguito: 

   ```
   aws rekognition start-celebrity-recognition --video "{\"S3Object\":{\"Bucket\":\"amzn-s3-demo-bucket\",\"Name\":\"video-name\"}}" \
   --notification-channel "{\"SNSTopicArn\":\"topic-arn\",\"RoleArn\":\"role-arn\"}" \
   --region region-name --profile profile-name
   ```

   Dopo aver eseguito l'esempio di codice precedente, copia il `jobID` restituito e inseriscilo nel comando `GetCelebrityRecognition` di seguito per ottenere i risultati, sostituendo `job-id-number` con il `jobID` ricevuto in precedenza: 

   ```
   aws rekognition get-celebrity-recognition --job-id job-id-number --profile profile-name                               
   ```

------
**Nota**  
Se hai già eseguito un video di esempio diverso da [Analisi di un video archiviato in un bucket Amazon S3 con Java o Python (SDK)](video-analyzing-with-sqs.md), il codice da sostituire potrebbe essere diverso.

1. Eseguire il codice. Vengono visualizzate le informazioni sui volti celebri riconosciuti nel video.

## GetCelebrityRecognition risposta all'operazione
<a name="getcelebrityrecognition-operation-output"></a>

Di seguito è riportata una risposta JSON di esempio. La risposta include quanto segue:
+ **Celebrità riconosciute**: `Celebrities` è una matrice di celebrità e degli orari in cui vengono riconosciute in un video. Esiste un oggetto [CelebrityRecognition](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CelebrityRecognition.html) per ogni ora in cui viene riconosciuto un volto celebre nel video. Ogni `CelebrityRecognition` contiene informazioni su un volto celebre riconosciuto ([CelebrityDetail](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CelebrityDetail.html)) e l'ora (`Timestamp`) in cui la celebrità è stata riconosciuta nel video. `Timestamp` si misura in millisecondi dall'inizio del video. 
+ **CelebrityDetail**— Contiene informazioni su una celebrità riconosciuta. Include il nome della celebrità (`Name`), l'identificatore (`ID`), il sesso noto della celebrità (`KnownGender`) e un elenco di riferimenti a contenuti correlati URLs (). `Urls` Include anche il livello di fiducia di Amazon Rekognition Video nell'accuratezza del riconoscimento e i dettagli sul volto della celebrità. [FaceDetail](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_FaceDetail.html) Per ottenere il contenuto correlato in un secondo momento, puoi utilizzare `ID` con [getCelebrityInfo](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetCelebrityInfo.html). 
+ **VideoMetadata**— Informazioni sul video che è stato analizzato.

```
{
    "Celebrities": [
        {
            "Celebrity": {
                "Confidence": 0.699999988079071,
                "Face": {
                    "BoundingBox": {
                        "Height": 0.20555555820465088,
                        "Left": 0.029374999925494194,
                        "Top": 0.22333332896232605,
                        "Width": 0.11562500149011612
                    },
                    "Confidence": 99.89837646484375,
                    "Landmarks": [
                        {
                            "Type": "eyeLeft",
                            "X": 0.06857934594154358,
                            "Y": 0.30842265486717224
                        },
                        {
                            "Type": "eyeRight",
                            "X": 0.10396526008844376,
                            "Y": 0.300625205039978
                        },
                        {
                            "Type": "nose",
                            "X": 0.0966852456331253,
                            "Y": 0.34081998467445374
                        },
                        {
                            "Type": "mouthLeft",
                            "X": 0.075217105448246,
                            "Y": 0.3811396062374115
                        },
                        {
                            "Type": "mouthRight",
                            "X": 0.10744428634643555,
                            "Y": 0.37407416105270386
                        }
                    ],
                    "Pose": {
                        "Pitch": -0.9784082174301147,
                        "Roll": -8.808176040649414,
                        "Yaw": 20.28228759765625
                    },
                    "Quality": {
                        "Brightness": 43.312068939208984,
                        "Sharpness": 99.9305191040039
                    }
                },
                "Id": "XXXXXX",
                "KnownGender": {
                    "Type": "Female"
                },
                "Name": "Celeb A",
                "Urls": []
            },
            "Timestamp": 367
       },......
    ],
    "JobStatus": "SUCCEEDED",
    "NextToken": "XfXnZKiyMOGDhzBzYUhS5puM+g1IgezqFeYpv/H/+5noP/LmM57FitUAwSQ5D6G4AB/PNwolrw==",
    "VideoMetadata": {
        "Codec": "h264",
        "DurationMillis": 67301,
        "FileExtension": "mp4",
        "Format": "QuickTime / MOV",
        "FrameHeight": 1080,
        "FrameRate": 29.970029830932617,
        "FrameWidth": 1920
    }
}
```

# Come recuperare le informazioni su una celebrità
<a name="get-celebrity-info-procedure"></a>

In queste procedure puoi ottenere informazioni su un volto celebre utilizzando l'operazione [getCelebrityInfo](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetCelebrityInfo.html) dell'API. Il volto celebre viene identificato utilizzando l'ID restituito da una precedente chiamata a [RecognizeCelebrities](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_RecognizeCelebrities.html). 

## Chiamata GetCelebrityInfo
<a name="get-celebrity-info-examples"></a>



Queste procedure richiedono l'ID celebrità per una celebrità conosciuta da Amazon Rekognition. Utilizza l'ID del volto celebre annotato in [Riconoscimento delle celebrità in un'immagine](celebrities-procedure-image.md). 

**Per recuperare le informazioni sul volto celebre (SDK)**

1. Se non lo hai già fatto:

   1. Crea o aggiorna un utente con le autorizzazioni `AmazonRekognitionFullAccess` e `AmazonS3ReadOnlyAccess`. Per ulteriori informazioni, consulta [Fase 1: impostazione di un account AWS e creazione di un utente](setting-up.md#setting-up-iam).

   1. Installa e configura AWS CLI e AWS SDKs. Per ulteriori informazioni, consulta [Passaggio 2: configura AWS CLI e AWS SDKs](setup-awscli-sdk.md).

1. Utilizzare i seguenti esempi per richiamare l'operazione `GetCelebrityInfo`.

------
#### [ Java ]

   Questo esempio mostra il nome e le informazioni su un volto celebre.

   Sostituisci `id` con una delle celebrità IDs visualizzate in[Riconoscimento delle celebrità in un'immagine](celebrities-procedure-image.md).

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   package aws.example.rekognition.image;
   import com.amazonaws.services.rekognition.AmazonRekognition;
   import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
   import com.amazonaws.services.rekognition.model.GetCelebrityInfoRequest;
   import com.amazonaws.services.rekognition.model.GetCelebrityInfoResult;
   
   
   public class CelebrityInfo {
   
      public static void main(String[] args) {
         String id = "nnnnnnnn";
   
         AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
   
         GetCelebrityInfoRequest request = new GetCelebrityInfoRequest()
            .withId(id);
   
         System.out.println("Getting information for celebrity: " + id);
   
         GetCelebrityInfoResult result=rekognitionClient.getCelebrityInfo(request);
   
         //Display celebrity information
         System.out.println("celebrity name: " + result.getName());
         System.out.println("Further information (if available):");
         for (String url: result.getUrls()){
            System.out.println(url);
         }
      }
   }
   ```

------
#### [ Java V2 ]

   Questo codice è tratto dal repository degli esempi GitHub di AWS Documentation SDK. Guarda l'esempio completo [qui](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/rekognition/src/main/java/com/example/rekognition/CelebrityInfo.java).

   ```
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.GetCelebrityInfoRequest;
   import software.amazon.awssdk.services.rekognition.model.GetCelebrityInfoResponse;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   /**
    * Before running this Java V2 code example, set up your development
    * environment, including your credentials.
    *
    * For more information, see the following documentation topic:
    *
    * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
    */
   public class CelebrityInfo {
       public static void main(String[] args) {
           final String usage = """
   
                   Usage:    <id>
   
                   Where:
                      id - The id value of the celebrity. You can use the RecognizeCelebrities example to get the ID value.\s
                   """;
   
           if (args.length != 1) {
               System.out.println(usage);
               System.exit(1);
           }
   
           String id = args[0];
           Region region = Region.US_WEST_2;
           RekognitionClient rekClient = RekognitionClient.builder()
                   .region(region)
                   .build();
   
           getCelebrityInfo(rekClient, id);
           rekClient.close();
       }
   
       /**
        * Retrieves information about a celebrity identified in an image.
        *
        * @param rekClient the Amazon Rekognition client used to make the API call
        * @param id the unique identifier of the celebrity
        * @throws RekognitionException if there is an error retrieving the celebrity information
        */
       public static void getCelebrityInfo(RekognitionClient rekClient, String id) {
           try {
               GetCelebrityInfoRequest info = GetCelebrityInfoRequest.builder()
                       .id(id)
                       .build();
   
               GetCelebrityInfoResponse response = rekClient.getCelebrityInfo(info);
               System.out.println("celebrity name: " + response.name());
               System.out.println("Further information (if available):");
               for (String url : response.urls()) {
                   System.out.println(url);
               }
   
           } catch (RekognitionException e) {
               System.out.println(e.getMessage());
               System.exit(1);
           }
       }
   }
   ```

------
#### [ AWS CLI ]

   Questo AWS CLI comando visualizza l'output JSON per l'operazione `get-celebrity-info` CLI. `ID`Sostituiscilo con una delle celebrità visualizzate IDs in. [Riconoscimento delle celebrità in un'immagine](celebrities-procedure-image.md) Sostituisci il valore di `profile-name` con il nome del tuo profilo di sviluppatore.

   ```
   aws rekognition get-celebrity-info --id celebrity-id --profile profile-name
   ```

------
#### [ Python ]

   Questo esempio mostra il nome e le informazioni su un volto celebre.

   Sostituisci `id` con una delle celebrità IDs visualizzate in. [Riconoscimento delle celebrità in un'immagine](celebrities-procedure-image.md) Sostituisci il valore di `profile_name` nella riga che crea la sessione di Rekognition con il nome del tuo profilo di sviluppatore.

   ```
   # Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   import boto3
   
   def get_celebrity_info(id):
   
       session = boto3.Session(profile_name='profile-name')
       client = session.client('rekognition')
   
       # Display celebrity info
       print('Getting celebrity info for celebrity: ' + id)
   
       response = client.get_celebrity_info(Id=id)
   
       print(response['Name'])
       print('Further information (if available):')
       for url in response['Urls']:
           print(url)
   
   def main():
       id = "celebrity-id"
       celebrity_info = get_celebrity_info(id)
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ .NET ]

   Questo esempio mostra il nome e le informazioni su un volto celebre.

   Sostituisci `id` con una delle celebrità IDs visualizzate in. [Riconoscimento delle celebrità in un'immagine](celebrities-procedure-image.md)

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   using System;
   using Amazon.Rekognition;
   using Amazon.Rekognition.Model;
   
   
   public class CelebrityInfo
   {
       public static void Example()
       {
           String id = "nnnnnnnn";
   
           AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();
   
           GetCelebrityInfoRequest celebrityInfoRequest = new GetCelebrityInfoRequest()
           {
               Id = id
           };
   
           Console.WriteLine("Getting information for celebrity: " + id);
   
           GetCelebrityInfoResponse celebrityInfoResponse = rekognitionClient.GetCelebrityInfo(celebrityInfoRequest);
   
           //Display celebrity information
           Console.WriteLine("celebrity name: " + celebrityInfoResponse.Name);
           Console.WriteLine("Further information (if available):");
           foreach (String url in celebrityInfoResponse.Urls)
               Console.WriteLine(url);
       }
   }
   ```

------

## GetCelebrityInfo richiesta di operazione
<a name="getcelebrityinfo-operation-request"></a>

Di seguito è riportato un esempio di input e output JSON per `GetCelebrityInfo`. 

L'input per `GetCelebrityInfo` è l'ID del volto celebre richiesto.

```
{
    "Id": "nnnnnnn"
}
```

## GetCelebrityInfo risposta operativa
<a name="getcelebrityinfo-operation-response"></a>

`GetCelebrityInfo` restituisce un array (`Urls`) di collegamenti a informazioni sui volti celebri richiesti.

```
{
    "Name": "Celebrity Name",
    "Urls": [
        "www.imdb.com/name/nmnnnnnnn"
    ]
}
```