Im folgenden Codebeispiel wird gezeigt, wie mithilfe der Video Intelligence API Personen in einer Videodatei erkannt werden.
Mit Video Intelligence können Sie das Vorhandensein eines Menschen in einer Videodatei erkennen und einzelne Personen in einem Video oder Videosegment verfolgen.
Personenerkennung anhand einer Datei in Cloud Storage
Im Folgenden wird gezeigt, wie Sie mit der Funktion zur Personenerkennung eine Annotationsanfrage an Video Intelligence senden.
REST & CMD LINE
Anfrage zur Annotation eines Videos senden
Im Folgenden wird gezeigt, wie eine POST-Anfrage an die Methode videos:annotate
gesendet wird. In diesem Beispiel wird das Zugriffstoken für ein Dienstkonto verwendet, das mit dem Cloud SDK eingerichtet wurde. Anleitungen zur Installation des Cloud SDK, zur Einrichtung eines Projekts mit einem Dienstkonto und zur Anforderung eines Zugriffstokens finden Sie in der Kurzanleitung zur Video Intelligence API.
Siehe auch PersonDetectionConfig.
Geben Sie für die Parameter folgende Werte an:
- inputUri: Ein Cloud Storage-Bucket, der die Datei enthält, die Sie annotieren möchten, einschließlich des Dateinamens. Muss mit
gs://
beginnen.
Beispiel:
"inputUri": "gs://cloud-samples-data/video/googlework_short.mp4"
HTTP-Methode und URL:
POST https://videointelligence.googleapis.com/v1p3beta1/videos:annotate
JSON-Text anfordern:
{ "inputUri": "input-uri", "features": ["PERSON_DETECTION"], "videoContext": { "personDetectionConfig": { "includeBoundingBoxes": true, "includePoseLandmarks": true, "includeAttributes": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Wenn die Antwort erfolgreich ist, gibt die Video Intelligence API den name
für Ihren Vorgang zurück. Oben wird ein Beispiel für eine solche Antwort gezeigt, wobei:
- project-number: Die Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation stattfinden soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt. - operation-id: Die ID des lang andauernden Vorgangs, der für die Anfrage erstellt und in der Antwort beim Start des Vorgangs angegeben wurde, z. B.
12345...
Ruft Annotationsergebnisse ab
Um das Ergebnis des Vorgangs abzurufen, führen Sie eine GET-Anfrage mithilfe des Vorgangsaufrufs, der vom Aufruf an Videos:Annotieren zurückgegeben wurde, wie im folgenden Beispiel gezeigt.
Geben Sie für die Parameter folgende Werte an:
- operation-name: Der von der Video Intelligence API zurückgegebene Name des Vorgangs. Der Vorgangsname hat das Format
projects/project-number/locations/location-id/operations/operation-id
.
HTTP-Methode und URL:
GET https://videointelligence.googleapis.com/v1/operation-name
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Shot-Detect-Annotationen werden alsshotAnnotations
-Liste zurückgegeben.
Hinweis: Das Feld done wird nur zurückgegeben, wenn sein Wert True ist.
Es ist nicht in Antworten enthalten, für die der Vorgang nicht abgeschlossen wurde.
Anmerkungsergebnisse herunterladen
Kopieren Sie die Annotation aus der Quelle in den Ziel-Bucket (siehe Dateien und Objekte kopieren).
gsutil cp gcs_uri gs://my-bucket
Hinweis: Wenn der Nutzer die Ausgabe gcs uri erhält, wird die Annotation in diesem gcs uri gespeichert.
Java
Node.js
Python
Personenerkennung aus einer lokalen Datei
Im folgenden Beispiel wird die Personenerkennung verwendet, um Entitäten in einem Video aus einer Videodatei zu finden, die von Ihrem lokalen Computer hochgeladen wurde.
REST & CMD LINE
Prozessanfrage senden
Codieren Sie den Inhalt der Videodatei als Base64-Codierung, um eine Personenerkennung für eine lokale Videodatei durchzuführen. Informationen zum Base64-Codieren des Inhalts einer Videodatei finden Sie unter Base64-Codierung. Stellen Sie dann eine POST-Anfrage an die Methode videos:annotate
. Fügen Sie den Base64-codierten Inhalt in das Feld inputContent
der Anfrage ein und geben Sie das Feature PERSON_DETECTION
an.
Das folgende Beispiel zeigt eine POST-Anfrage mit curl. In diesem Beispiel wird das Zugriffstoken für ein Dienstkonto verwendet, das mit dem Cloud SDK eingerichtet wurde. Anleitungen zur Installation des Cloud SDK, zur Einrichtung eines Projekts mit einem Dienstkonto und zur Anforderung eines Zugriffstokens finden Sie in der Kurzanleitung zur Video Intelligence API.
Geben Sie für die Parameter folgende Werte an:
- inputContent: Lokale Videodatei im Binärformat
Beispiel: "AAAAGGZ0eXBtcDQyAAAAAAGzb21tcDQyAAGVGV1vb3YAAABsbXXoZAAAAADWvhlR1r4ZQAQABX5ABCOxo AAAEAAAAAAAA4..."
HTTP-Methode und URL:
POST https://videointelligence.googleapis.com/v1p3beta1/videos:annotate
JSON-Text anfordern:
{ "inputContent": "Local video file in binary format", "features": ["PERSON_DETECTION"], "videoContext": { "personDetectionConfig": { "includeBoundingBoxes": true, "includePoseLandmarks": true, "includeAttributes": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Wenn die Anfrage erfolgreich ist, startet Video Intelligence das name
für Ihren Vorgang. Das Beispiel oben zeigt eine solche Antwort, wobei project-number
die Nummer Ihres Projekts und operation-id
die ID des lang andauernden Vorgangs ist, der für die Anfrage erstellt wurde.
{
"name": "us-west1.17122464255125931980"
}
Ergebnisse abrufen
Um das Ergebnis des Vorgangs abzurufen, senden Sie eine GET-Anfrage an den Endpunkt operations
und geben Sie den Namen des Vorgangs an.
Geben Sie für die Parameter folgende Werte an:
- operation-name: Der von der Video Intelligence API zurückgegebene Name des Vorgangs. Der Vorgangsname hat das Format
projects/project-number/locations/location-id/operations/operation-id
.
HTTP-Methode und URL:
GET https://videointelligence.googleapis.com/v1/operation-name
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Java
Node.js
Python