Operazioni di rilevamento delle etichette per eventi video in streaming - 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à.

Operazioni di rilevamento delle etichette per eventi video in streaming

Amazon Rekognition Video è in grado di rilevare persone o oggetti pertinenti in un video in streaming e avvisarti quando vengono rilevati. Quando crei un processore di flusso di rilevamento delle etichette, scegli quali etichette vuoi che Amazon Rekognition Video rilevi. Questi possono essere persone, pacchi e animali domestici o 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 memorizzare le informazioni video e quindi eseguire un'ulteriore elaborazione in base alle etichette rilevate nel frame.

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

  1. Crea lo stream processor

  2. Avvia lo stream processor

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

  4. Lo stream processor si arresta all'ora specificata inMaxDurationInSecondsè completo.

  5. Riceverai una notifica finale di Amazon SNS con un riepilogo degli eventi.

  6. Amazon Rekognition Video pubblica un riepilogo dettagliato della sessione nel tuo bucket S3.

Creazione del processore di flusso di rilevamento delle etichette Amazon Rekognition Video

Prima di poter analizzare un video in streaming, devi creare un processore di streaming Amazon Rekognition Video (CreateStreamProcessor).

Se desideri creare uno stream processor per rilevare le etichette di interesse e le persone, fornisci come input uno stream video Kinesis (Input), informazioni sul bucket Amazon S3 (Output) e un argomento ARN di Amazon SNS (StreamProcessorNotificationChannel). Puoi anche fornire un ID chiave KMS per crittografare i dati inviati al tuo bucket S3. Specifichi cosa vuoi rilevare inSettings, ad esempio persone, pacchi e persone o animali domestici, persone e pacchetti. Puoi anche specificare la posizione del frame in cui desideri che Amazon Rekognition effettui il monitoraggioRegionsOfInterest. 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 ilMinConfidencevalore quando si specifica ilConnectedHomeSettingsper lo stream processor.MinConfidenceè un valore numerico compreso tra 0 e 100 che indica la certezza dell'algoritmo sulle sue previsioni. Ad esempio, una notifica perpersoncon un valore di confidenza pari a 90 significa 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. Puoi impostareMinConfidencea un valore desiderato a tua scelta compreso tra 0 e 100 a seconda della frequenza con cui desideri ricevere notifiche. Ad esempio, se desideri ricevere una notifica solo quando Rekognition è assolutamente certo della presenza di un pacchetto nel frame video, puoi impostareMinConfidencea 90.

Per impostazione predefinita,MinConfidence è impostato su 50. Se desideri ottimizzare l'algoritmo per una maggiore precisione, puoi impostareMinConfidenceessere superiore a 50. Riceverai quindi meno notifiche, ma ognuna di esse sarà più affidabile. Se desideri ottimizzare l'algoritmo per un richiamo più elevato, puoi impostareMinConfidenceavere meno di 50 per ricevere più notifiche.

Avvio del processore di flusso di rilevamento delle etichette Amazon Rekognition Video

Per iniziare ad analizzare il video in streaming, chiamare StartStreamProcessor con il nome dell'elaboratore di flussi specificato in CreateStreamProcessor. Quando esegui ilStartStreamProcessoroperazione su un processore di flusso di rilevamento delle etichette, si inseriscono le informazioni di avvio e arresto per determinare il tempo di elaborazione.

Quando si avvia lo stream processor, lo stato dello stream processor di rilevamento delle etichette cambia nei seguenti modi:

  1. Quando chiamiStartStreamProcessor, lo stato del processore del flusso di rilevamento delle etichette va daSTOPPEDoFAILEDaSTARTING.

  2. Mentre il processore del flusso di rilevamento delle etichette è in funzione, rimane attivoSTARTING.

  3. Quando il processore del flusso di rilevamento delle etichette è terminato, lo stato diventa:STOPPEDoFAILED.

LaStartSelectorspecifica il punto di partenza nel flusso Kinesis per avviare l'elaborazione. È possibile utilizzare il timestamp KVS Producer o il numero KVS Fragment. Per ulteriori informazioni, vedereFrammento.

Nota

Se si utilizza il timestamp KVS Producer, è necessario immettere l'ora in millisecondi.

LaStopSelectorspecifica quando interrompere l'elaborazione del flusso. Puoi specificare un periodo di 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 leggermente più lungo della durata massima, a seconda delle dimensioni 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 } } }

Se lo stream processor viene avviato correttamente, viene restituita una risposta HTTP 200. È incluso un corpo JSON vuoto.

Analisi dei risultati del rilevamento delle etichette

Amazon Rekognition Video pubblica notifiche da un processore di flusso di rilevamento delle etichette in tre modi: notifiche Amazon SNS per eventi di rilevamento di oggetti, notifica Amazon SNS per un messaggio end-of-sessionriepilogo e un report dettagliato del 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 di oggetti. Amazon Rekognition pubblica una notifica la prima volta che una persona o un oggetto di interesse viene rilevato nel flusso video. Le notifiche includono informazioni come il tipo di etichetta rilevata, l'affidabilità e un collegamento all'immagine dell'eroe. Includono anche un'immagine ritagliata della persona o dell'oggetto rilevato e un timestamp di rilevamento. La notifica ha il seguente formato:

    {"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 } }
  • Amazon SNS end-of-sessionriassunto.

    Riceverai anche una notifica Amazon SNS al termine della sessione di elaborazione dello stream. Questa notifica elenca i metadati della sessione. Ciò include dettagli come la durata dello stream che è stato elaborato. La notifica ha il seguente formato:

    {"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 } }
  • Rapporto sui bucket Amazon S3.

    Amazon Rekognition Video pubblica i risultati di inferenza dettagliati di un'operazione di analisi video sul bucket Amazon S3 fornito nelCreateStreamProcessoroperazione. Questi risultati includono cornici di immagini in cui un oggetto di interesse o una persona è stato rilevato per la prima volta.

    I frame sono disponibili in S3 nel seguente percorso:ObjectKeyPrefix/StreamProcessorName/SessionId/percorso_univoco determinato dal servizio. In questo percorso,LabelKeyPrefixè un argomento facoltativo fornito dal cliente,StreamProcessorNameè il nome della risorsa dello stream processor eSessionIdè un ID univoco per la sessione di elaborazione dello stream. Sostituiscili in base alla tua situazione.