

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

# Rilevamento delle etichette negli eventi video in streaming
<a name="streaming-video-detect-labels"></a>

Puoi usare Video Amazon Rekognition per rilevare le etichette nei video in streaming. A tale scopo, create uno stream processor ([CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html)) per avviare e gestire l'analisi dei video in streaming. 

Video Amazon Rekognition usa Flusso di video Amazon Kinesis per ricevere e processare un flusso video. Quando crei un elaboratore di flussi, scegli ciò che desidera che il processore del flusso rilevi. Puoi scegliere persone, pacchi e animali domestici oppure persone e pacchi. I risultati dell'analisi vengono inviati al bucket Amazon S3 e nelle notifiche Amazon SNS. Tieni presente che Video Amazon Rekognition rileva la presenza di una persona nel video, ma non rileva se si tratta di una persona specifica. Per cercare un volto da una raccolta in un video in streaming, consulta [Ricerca di volti in una raccolta in streaming video](collections-streaming.md). 

Per usare Video Amazon Rekognition con un video in streaming, l'applicazione necessita di quanto segue:
+ Un flusso video Kinesis per l'invio di video in streaming ad Video Amazon Rekognition. Per ulteriori informazioni, consulta la [Guida per gli sviluppatori di Flusso di video Amazon Kinesis](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html). 
+ Un elaboratore di flussi Video Amazon Rekognition per gestire l'analisi del video in streaming. Per ulteriori informazioni, consulta [Panoramica delle operazioni del processore di streaming Video Amazon Rekognition](streaming-video.md#using-rekognition-video-stream-processor).
+ Un bucket Amazon S3. Video Amazon Rekognition pubblica l'output della sessione nel bucket S3. L'output include i frame dell'immagine in cui una persona o un oggetto di interesse è stato rilevato per la prima volta. È necessario essere proprietari del bucket S3.
+ Un argomento di Amazon SNS su cui Amazon Rekognition Video pubblica avvisi intelligenti e un riepilogo. end-of-session

**Topics**
+ [Configurazione delle risorse Video Amazon Rekognition e Amazon Kinesis](streaming-labels-setting-up.md)
+ [Chiamare le operazioni di rilevamento delle etichette per eventi video in streaming](streaming-labels-detection.md)

# Configurazione delle risorse Video Amazon Rekognition e Amazon Kinesis
<a name="streaming-labels-setting-up"></a>

 Le seguenti procedure descrivono i passaggi da seguire per effettuare il provisioning del flusso video Kinesis e altre risorse utilizzate per rilevare le etichette in un video in streaming.

## Prerequisiti
<a name="streaming-video-prerequisites"></a>

Per eseguire questa procedura, è necessario che sia installato. AWS SDK per Java Per ulteriori informazioni, consulta [Nozioni di base su Amazon Rekognition](getting-started.md). L'account AWS che usi richiede le autorizzazioni di accesso all'API Amazon Rekognition. Per ulteriori informazioni, consulta la sezione [Operazioni definite da Amazon Rekognition](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonrekognition.html#amazonrekognition-actions-as-permissions) nella *Guida per l'utente IAM*. 

**Per rilevare le etichette in un flusso video (AWS SDK)**

1. Creare un bucket Amazon S3. Prendi nota del nome del bucket e di tutti i prefissi della chiave che desideri utilizzare. Queste informazioni serviranno in seguito.

1. Creazione di un argomento Amazon SNS. Puoi utilizzarlo per ricevere notifiche quando un oggetto di interesse viene rilevato per la prima volta nel flusso video. Prendi nota del nome della risorsa Amazon (ARN) per l’argomento. Per ulteriori informazioni, consulta [Creazione di un argomento Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) nella Guida per gli sviluppatori Amazon SNS.

1. Iscrivere un endpoint all’argomento Amazon SNS. Per ulteriori informazioni, consulta [Sottoscrizione a un argomento di Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) nella Guida per sviluppatori di Amazon SNS.

1. [Crea un flusso video Kinesis](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/gs-createstream.html) e prendi nota del nome della risorsa Amazon (ARN) del flusso.

1. Se non l'hai già fatto, crea un ruolo di servizio IAM per consentire ad Video Amazon Rekognition di accedere ai tuoi flussi video Kinesis, al tuo bucket S3 e al tuo argomento Amazon SNS. Per ulteriori informazioni, consulta [Concessione dell'accesso ai processori di flussi di rilevamento delle etichette](#streaming-labels-giving-access).

Puoi quindi [creare il processore di flussi di rilevamento delle etichette](streaming-labels-detection.md#streaming-video-create-labels-stream-processor) e [avviare il processore di flussi](streaming-labels-detection.md#streaming-video-start-labels-stream-processor) utilizzando il nome del processore di flussi scelto.

**Nota**  
Avvia l'elaboratore di flussi solo dopo aver verificato la possibilità di importare contenuti multimediali nel flusso video Kinesis. 

## Orientamento e configurazione della fotocamera
<a name="streaming-labels-camera-setup"></a>

Video Amazon Rekognition Streaming Video Events può supportare tutte le videocamere supportate da Kinesis Video Streams. Per ottenere risultati ottimali, consigliamo di posizionare la videocamera a una distanza compresa tra 0 e 45 gradi da terra. La fotocamera deve essere nella sua posizione verticale canonica. Ad esempio, se c'è una persona nell'inquadratura, la persona dovrebbe essere orientata verticalmente e la testa della persona dovrebbe essere più alta nell'inquadratura rispetto ai piedi.

## Concessione dell'accesso ai processori di flussi di rilevamento delle etichette
<a name="streaming-labels-giving-access"></a>

Utilizzi un ruolo di servizio AWS Identity and Access Management (IAM) per consentire ad Amazon Rekognition Video l'accesso in lettura ai flussi video Kinesis. A tale scopo, utilizza i ruoli IAM per consentire ad Video Amazon Rekognition di accedere al tuo bucket Amazon S3 e a un argomento di Amazon SNS.

Puoi creare una policy di autorizzazione che consente a Video Amazon Rekognition l'accesso a un argomento Amazon SNS esistente, bucket Amazon S3 e flusso video Kinesis. Per una step-by-step procedura che utilizza il, consulta. AWS CLI[AWS CLI comandi per configurare un ruolo IAM per il rilevamento delle etichette](#streaming-labels-giving-access-cli) 

**Consentire ad Video Amazon Rekognition di accedere alle risorse per il rilevamento delle etichette**

1. [ Crea una nuova policy di autorizzazione con l'editor delle policy JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) e utilizza la policy seguente. Sostituisci `kvs-stream-name` con il nome dello flusso video Kinesis, `topicarn` con il nome della risorsa Amazon (ARN) dell'argomento Amazon SNS che desideri utilizzare e `bucket-name` con il nome del bucket Amazon S3.

1. [Crea un ruolo di servizio IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html?icmpid=docs_iam_console) o aggiornane uno esistente. Per creare il ruolo di servizio IAM, utilizza le informazioni seguenti:

   1. Scegli **Rekognition** come nome del servizio.

   1. Scegli **Rekognition** come caso d'uso del ruolo del servizio.

   1. Collega la policy di autorizzazione creata nella fase 1.

1. Prendere nota dell'ARN del ruolo del servizio. È necessario per creare il processore di flussi prima di eseguire operazioni di analisi video.

1. (Facoltativo) Se utilizzi la tua AWS KMS chiave per crittografare i dati inviati al tuo bucket S3, devi aggiungere la seguente istruzione con il ruolo IAM. (Questo è il ruolo IAM che hai creato per la policy della chiave gestita dal cliente che desideri utilizzare.)

   ```
       
               {
                          "Sid": "Allow use of the key by label detection Role",
                          "Effect": "Allow",
                          "Principal": {
                              "AWS": "arn:aws:iam:::role/REPLACE_WITH_LABEL_DETECTION_ROLE_CREATED"
                          },
                          "Action": [
                              "kms:Decrypt",
                              "kms:GenerateDataKey*"
                          ],
                          "Resource": "*"
               }
   ```

## AWS CLI comandi per configurare un ruolo IAM per il rilevamento delle etichette
<a name="streaming-labels-giving-access-cli"></a>

Se non l'hai già fatto, configurali e configurali AWS CLI con le tue credenziali.

Inserisci i seguenti comandi in AWS CLI per configurare un ruolo IAM con le autorizzazioni necessarie per il rilevamento delle etichette.

1. `export IAM_ROLE_NAME=labels-test-role`

1. `export AWS_REGION=us-east-1`

1. Crea un file di policy sulle relazioni di fiducia (ad esempio, assume-role-rekognition .json) con il seguente contenuto.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rekognition.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. `aws iam create-role --role-name $IAM_ROLE_NAME --assume-role-policy-document file://path-to-assume-role-rekognition.json --region $AWS_REGION`

1. `aws iam attach-role-policy --role-name $IAM_ROLE_NAME --policy-arn "arn:aws:iam::aws:policy/service-role/AmazonRekognitionServiceRole" --region $AWS_REGION`

1. Se il nome dell'argomento SNS con cui desideri ricevere notifiche non inizia con il prefisso "AmazonRekognition", aggiungi la seguente politica:

   `aws iam attach-role-policy --role-name $IAM_ROLE_NAME --policy-arn "arn:aws:iam::aws:policy/AmazonSNSFullAccess" --region $AWS_REGION`

1. Se utilizzi la tua chiave AWS KMS per crittografare i dati inviati al bucket Amazon S3, aggiorna la policy della chiave gestita dal cliente che desideri utilizzare.

   1. Crea un file kms\$1key\$1policy.json che contenga il seguente contenuto:

      ```
      {
      "Sid": "Allow use of the key by label detection Role",
      "Effect": "Allow",
      "Principal": {
      "AWS": "arn:aws:iam:::role/REPLACE_WITH_IAM_ROLE_NAME_CREATED"
      },
      "Action": [
      "kms:Encrypt",
      "kms:GenerateDataKey*"
      ],
      "Resource": "*"
      }
      ```

   1. `export KMS_KEY_ID=labels-kms-key-id`. Sostituisci KMS\$1KEY\$1ID con l'ID della chiave KMS che hai creato.

   1. `aws kms put-key-policy --policy-name default --key-id $KMS_KEY_ID --policy file://path-to-kms-key-policy.json`

# Chiamare le operazioni di rilevamento delle etichette per eventi video in streaming
<a name="streaming-labels-detection"></a>

Video Amazon Rekognition è in grado di rilevare persone o oggetti pertinenti in un video in streaming e avvisarti quando vengono rilevati. Quando crei uno stream processor per il rilevamento delle etichette, scegli quali etichette vuoi che Video Amazon Rekognition rilevi. Possono essere persone, pacchi e animali domestici oppure persone, pacchi e animali domestici. Scegli solo le etichette specifiche che desideri rilevare. In questo modo, le uniche etichette pertinenti creano notifiche. È possibile configurare le opzioni per determinare quando archiviare le informazioni video e quindi eseguire un'ulteriore elaborazione in base alle etichette rilevate nel frame.

Dopo aver impostato le risorse, il processo per rilevare le etichette in un video in streaming è il seguente:

1. Creare l'elaboratore di flussi

1. Avvia l'elaboratore di flussi 

1. Se viene rilevato un oggetto di interesse, ricevi una notifica Amazon SNS per la prima occorrenza di ogni oggetto di interesse.

1. Lo stream processor si arresta quando il tempo specificato in `MaxDurationInSeconds` è completo.

1. Riceverai una notifica finale di Amazon SNS con un riepilogo dell'evento.

1. Video Amazon Rekognition pubblica l'output della sessione nel bucket S3.

**Topics**
+ [Creazione dell’elaboratore di flussi per il rilevamento delle etichette Video Amazon Rekognition](#streaming-video-create-labels-stream-processor)
+ [Avvio dell’elaboratore di flussi per il rilevamento delle etichette Video Amazon Rekognition](#streaming-video-start-labels-stream-processor)
+ [Analisi dei risultati del rilevamento delle etichette](#streaming-video-labels-stream-processor-results)

## Creazione dell’elaboratore di flussi per il rilevamento delle etichette Video Amazon Rekognition
<a name="streaming-video-create-labels-stream-processor"></a>

Prima di poter analizzare un video in streaming, devi creare uno stream processor Amazon Rekognition Video (). [CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html)

Se desideri creare uno elaboratore di flussi per rilevare etichette di interesse e persone, fornisci come input un flusso video Kinesis (`Input`), informazioni sul bucket Amazon S3 (`Output`) e un argomento di Amazon SNS ARN (`StreamProcessorNotificationChannel`). Puoi inoltre fornire un ID chiave KMS per crittografare i dati inviati al bucket S3. Nella sezione dell'utente è possibile indicare gli oggetti da rilevare `Settings`, ad esempio persone, pacchetti e persone o animali domestici, persone e pacchetti. Puoi anche specificare la parte del frame con cui vuoi che Amazon Rekognition effettui il monitoraggio `RegionsOfInterest`. Di seguito è riportato un esempio di JSON per la richiesta `CreateStreamProcessor`.

```
{
  "DataSharingPreference": { "OptIn":TRUE
  },
  "Input": {
    "KinesisVideoStream": {
      "Arn": "arn:aws:kinesisvideo:us-east-1:nnnnnnnnnnnn:stream/muh_video_stream/nnnnnnnnnnnnn"
    }
  },
  "KmsKeyId": "muhkey",
  "Name": "muh-default_stream_processor",
  "Output": {
    "S3Destination": {
      "Bucket": "s3bucket",
      "KeyPrefix": "s3prefix"
    }
  },
  "NotificationChannel": {
    "SNSTopicArn": "arn:aws:sns:us-east-2:nnnnnnnnnnnn:MyTopic"
  },
  "RoleArn": "arn:aws:iam::nnnnnnnnn:role/Admin",
  "Settings": {
    "ConnectedHome": {
      "Labels": [
        "PET"
      ]
    "MinConfidence": 80
    }
  },
  "RegionsOfInterest": [
    {
      "BoundingBox": {
        "Top": 0.11,
        "Left": 0.22,
        "Width": 0.33,
        "Height": 0.44
      }
    },
    {
      "Polygon": [
        {
          "X": 0.11,
          "Y": 0.11
        },
        {
          "X": 0.22,
          "Y": 0.22
        },
        {
          "X": 0.33,
          "Y": 0.33
        }
      ]
    }
  ]
}
```

Tieni presente che puoi modificare il valore `MinConfidence` quando specifichi il `ConnectedHomeSettings` per l’elaboratore di flussi. `MinConfidence` è un valore numerico compreso tra 0 e 100 che indica la certezza dell'algoritmo in merito alle sue previsioni. Ad esempio, una notifica `person` con un valore di confidenza di 90 indica che l'algoritmo è assolutamente certo che la persona sia presente nel video. Un valore di confidenza pari a 10 indica che potrebbe esserci una persona. È possibile impostare un valore desiderato `MinConfidence` a scelta tra 0 e 100 a seconda della frequenza con cui si desidera ricevere la notifica. Ad esempio, se desideri ricevere una notifica solo quando Rekognition è assolutamente certa che ci sia un pacchetto nel fotogramma video, puoi impostare `MinConfidence` su 90.

Per impostazione predefinita, `MinConfidence ` è impostato su 50. Se desideri ottimizzare l'algoritmo per una maggiore precisione, puoi impostarlo `MinConfidence` su un valore superiore a 50. Riceverai quindi meno notifiche, ma ogni notifica è più affidabile. Se desideri ottimizzare l'algoritmo per aumentare i richiami, puoi impostarlo su `MinConfidence` un valore inferiore a 50 per ricevere più notifiche. 

## Avvio dell’elaboratore di flussi per il rilevamento delle etichette Video Amazon Rekognition
<a name="streaming-video-start-labels-stream-processor"></a>

Per iniziare ad analizzare il video in streaming, chiamare [StartStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartStreamProcessor.html) con il nome dell'elaboratore di flussi specificato in `CreateStreamProcessor`. Quando esegui l'operazione `StartStreamProcessor` su un elaboratore di flussi di rilevamento delle etichette, inserisci le informazioni di inizio e fine per determinare il tempo di elaborazione.

Quando si avvia l’elaboratore di flussi, lo stato dell’elaboratore di flussi di rilevamento delle etichette cambia nei seguenti modi:

1. Quando chiami `StartStreamProcessor`, lo stato dell’elaboratore di flussi di rilevamento delle etichette varia da `STOPPED` o `FAILED` a `STARTING`.

1. Mentre è in funzione, l’elaboratore di flussi di rilevamento delle etichette rimane acceso `STARTING`.

1. Quando l’elaboratore di flussi di rilevamento delle etichette ha concluso il processo, lo stato diventa `STOPPED` o`FAILED`.

`StartSelector` specifica il punto di partenza nel flusso Kinesis per avviare l'elaborazione. Puoi usare il timestamp di KVS Producer o il numero di KVS Fragment. Per ulteriori informazioni, consulta [Fragment](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_Fragment.html). 

**Nota**  
Se usi il timestamp di KVS Producer, devi inserire l'ora in millisecondi.

`StopSelector` specifica quando interrompere l'elaborazione del flusso. È possibile specificare un tempo massimo per l'elaborazione del video. L'impostazione predefinita è una durata massima di 10 secondi. Nota che il tempo di elaborazione effettivo potrebbe essere un po' più lungo della durata massima, a seconda della dimensione dei singoli frammenti KVS. Se la durata massima è stata raggiunta o superata alla fine di un frammento, il tempo di elaborazione si interrompe. 

Di seguito è riportato un esempio di JSON per la richiesta `StartStreamProcessor`.

```
{
   "Name": "string",
   "StartSelector": {
     "KVSStreamStartSelector": { 
         "KVSProducerTimestamp": 1655930623123
      },
        "StopSelector": {
            "MaxDurationInSeconds": 11
      }
   }
}
```

All'avvio dell'elaboratore di flussi viene restituita una risposta HTTP 200. È incluso un corpo JSON vuoto.

## Analisi dei risultati del rilevamento delle etichette
<a name="streaming-video-labels-stream-processor-results"></a>

Esistono tre modi in cui Amazon Rekognition Video pubblica le notifiche da un processore di stream di rilevamento delle etichette: notifiche Amazon SNS per eventi di rilevamento di oggetti, una notifica Amazon SNS per un riepilogo end-of-session e un rapporto dettagliato sui bucket Amazon S3. 
+ Notifiche Amazon SNS per eventi di rilevamento di oggetti. 

  Se vengono rilevate etichette nel flusso video, ricevi notifiche Amazon SNS per gli eventi di rilevamento degli oggetti. Amazon Rekognition pubblica una notifica la prima volta che un oggetto di interesse o una persona viene rilevata nel flusso video. Le notifiche includono informazioni come il tipo di etichetta rilevata, la confidenza e un link all'immagine del protagonista. Includono anche un'immagine ritagliata della persona o dell'oggetto rilevato e un timestamp del rilevamento. La notifica ha il formato seguente:

  ```
  {"Subject": "Rekognition Stream Processing Event",
      "Message": {    
          "inputInformation": {
              "kinesisVideo": {
                  "streamArn": string
              }
          },
          "eventNamespace": {
              "type": "LABEL_DETECTED"
          },
          "labels": [{
              "id": string,
              "name": "PERSON" | "PET" | "PACKAGE",
              "frameImageUri": string,
              "croppedImageUri": string,
              "videoMapping": {
                  "kinesisVideoMapping": {
                      "fragmentNumber": string,
                      "serverTimestamp": number,
                      "producerTimestamp": number,
                      "frameOffsetMillis": number
                  }
              },
              "boundingBox": {
                  "left": number,
                  "top": number,
                  "height": number,
                  "width": number
              }
          }],
          "eventId": string,
          "tags": {
              [string]: string
          },
          "sessionId": string,
          "startStreamProcessorRequest": object
      }
  }
  ```
+ Riepilogo di Amazon SNS. end-of-session

  Al termine della sessione di elaborazione del flusso, inoltre, ricevi una notifica Amazon SNS. Questa notifica elenca i metadati per la sessione. I dettagli includono la durata del flusso che è stato elaborato. La notifica ha il formato seguente:

  ```
  {"Subject": "Rekognition Stream Processing Event",
      "Message": {
          "inputInformation": {
              "kinesisVideo": {
                  "streamArn": string,
                  "processedVideoDurationMillis": number
              }
          },
          "eventNamespace": {
              "type": "STREAM_PROCESSING_COMPLETE"
          },
          "streamProcessingResults": {
              "message": string
          },
          "eventId": string,
          "tags": {
              [string]: string
          },
          "sessionId": string,
          "startStreamProcessorRequest": object
      }
  }
  ```
+ Report del bucket Amazon S3.

  Video Amazon Rekognition pubblica i risultati dell’operazione di analisi video nel bucket Amazon S3 forniti dall’operazione `CreateStreamProcessor`. Questi risultati includono i frame dell'immagine in cui una persona o un oggetto di interesse è stato rilevato per la prima volta. 

  I frame sono disponibili in S3 nel seguente percorso: ObjectKeyPrefix//StreamProcessorName/SessionId. *service\$1determined\$1unique\$1path* In questo percorso, **LabelKeyPrefix**c'è un argomento opzionale fornito dal cliente, **StreamProcessorName**è il nome della risorsa dello stream processor ed **SessionId**è un ID univoco per la sessione di elaborazione dello stream. Sostituiscili in base alla tua situazione.