[PYTHON] Zeigen Sie das Ergebnis der Videoanalyse mit der Cloud Video Intelligence API von Colaboratory an.

Letztes Notizbuch

Zu analysierendes Video: image.png

Vorbereiten der Verwendung der Cloud Video Intelligence-API

Bereiten Sie sich vor dem Start auf den nächsten Schnellstart vor. Da es sich bei 1-3 um Projekteinstellungen handelt, entsprechen sie den Anweisungen im Schnellstart, 4,5 unterscheiden sich jedoch geringfügig.

1. Erstellen Sie ein GCP-Projekt

Screen Shot 2019-12-27 at 17.46.14.png

2. Stellen Sie sicher, dass die Abrechnung für Ihr Projekt aktiviert ist

Stellen Sie sicher, dass das in 1 erstellte Projekt mit Ihrem Rechnungskonto verknüpft ist. (Die Gültigkeit der Abrechnung erfolgt auf eigenes Risiko.)

3. Aktivieren Sie die Cloud Video Intelligence-API

Wenn Sie auf die Schaltfläche "Aktivieren" klicken, wird der Bildschirm zur Auswahl eines Projekts angezeigt. Wählen Sie das in 1 und "Weiter" erstellte Projekt aus. (In der Vergangenheit gab es Zeiten, in denen die API nicht aktiviert werden konnte, aber als ich das Projekt neu erstellte, funktionierte es einwandfrei. Ich kenne die Ursache nicht.)

image.png

4. Erstellen Sie ein Dienstkonto

Was ist ein Dienstkonto?

Ein Dienstkonto ist ein spezielles Google-Konto, das zu einer Anwendung oder virtuellen Maschine (VM) gehört und nicht zu einem einzelnen Endbenutzer. Anwendungen können ein Dienstkonto verwenden, um die Dienst-API von Google aufzurufen, ohne dass Benutzer daran beteiligt sein müssen.

Wenn beispielsweise eine Compute Engine-VM auf einem Dienstkonto ausgeführt wird, können Sie diesem Konto Zugriff auf die erforderlichen Ressourcen gewähren. Das Dienstkonto wird somit zur Identität des Dienstes, und die Berechtigungen des Dienstkontos steuern die Ressourcen, auf die der Dienst zugreifen kann.

Dienstkonto|Cloud IAM-Dokumentation|  Google CloudAls

Durch Festlegen der Berechtigungen des Dienstkontos steuern Sie die Ressourcen, auf die der Dienst zugreifen kann. Im Moment möchte ich ein Dienstkonto mit nur der Berechtigung "Anzeigen" für "Speichern" erstellen. (Um das Video einmal in "Google Cloud Storage" hochzuladen und von dort zu laden.)

Als ich es über den Schnellstart-Link erstellt habe, kannte ich die Ursache nicht, aber es hat nicht funktioniert

image.png

--Geben Sie den Namen des Dienstkontos ein und wählen Sie "Erstellen"

image.png

--Wählen Sie Speicher> Speicherobjekt-Viewer aus Rolle --Wählen Sie "Weiter"

image.png

--Wählen Sie "Erstellen" aus "Schlüssel erstellen"

image.png

image.png

Umgebungsvariablen festlegen

Da der Dateipfad der JSON-Datei angegeben werden muss, wird die Umgebungsvariable beim Schnellstart festgelegt. Hier wird der Pfad direkt vom Labor angegeben, sodass keine Einstellung erforderlich ist.

Laden Sie Videos in Google Cloud Storage hoch

Gehen Sie zu Speicherbrowser - Speicher - Google Cloud Platform (https://console.cloud.google.com/storage/browser?hl=ja) und wählen Sie "Bucket erstellen".

image.png

Geben Sie einen Namen für Ihren Bucket ein und wählen Sie "Erstellen". (Regionen hier interessieren mich nicht.)

image.png

Laden Sie das Video hoch, sobald der Bucket erstellt wurde.

image.png

Ich habe dog.mp4 direkt unter den Eimer hochgeladen.

Über Videogröße etc.

Bitte achten Sie auf die kostenlose Speicherkapazität und Downloadkapazität.

image.png

Cloud Storage-Preise|  Cloud Storage  |  Google Cloud

Machen Sie ein Notizbuch auf Colaboratory

Auf Colaboratory,

--File> Neues Notizbuch für Python 3

Machen Sie ein neues Notizbuch aus.

Analysieren Sie Videos mit der Cloud Video Intelligence API

Installieren Sie das Cloud Video Intelligence API Python-Paket

Installieren Sie das Python-Paket "Cloud Video Intelligence API".

!pip install -U google-cloud-videointelligence

Laden Sie die Anmeldeinformationen des Dienstkontos hoch

Laden Sie die JSON-Datei hoch, die Sie beim Erstellen des Dienstkontos aus "Datei" im linken Bereich von Colaboratory heruntergeladen haben.

image.png

Erstellen Sie ein Zertifikat aus Ihren Anmeldeinformationen

import json
from google.oauth2 import service_account

service_account_key_name = <JSON-Dateiname>
info = json.load(open(service_account_key_name))
creds = service_account.Credentials.from_service_account_info(info)

image.png

Erstellen Sie einen Client

Erstellen Sie einen Client, indem Sie hier das Zertifikat angeben.

from google.cloud import videointelligence

video_client = videointelligence.VideoIntelligenceServiceClient(credentials=creds)

Geben Sie den Speicherort des Videos an

Dieses Mal habe ich die Videodatei direkt unter den Bucket hochgeladen, also wie folgt.

video_url = "gs://<Eimername>/<Name der Videodatei>"

image.png

Video analysieren

Von hier aus ist es dasselbe wie beim Schnellstart.

features = [videointelligence.enums.Feature.LABEL_DETECTION]
operation = video_client.annotate_video(
    video_url, features=features)
print('\nProcessing video for label annotations:')

result = operation.result(timeout=120)
print('\nFinished processing.')

# first result is retrieved because a single video was processed
segment_labels = result.annotation_results[0].segment_label_annotations
for i, segment_label in enumerate(segment_labels):
    print('Video label description: {}'.format(
        segment_label.entity.description))
    for category_entity in segment_label.category_entities:
        print('\tLabel category description: {}'.format(
            category_entity.description))

    for i, segment in enumerate(segment_label.segments):
        start_time = (segment.segment.start_time_offset.seconds +
                      segment.segment.start_time_offset.nanos / 1e9)
        end_time = (segment.segment.end_time_offset.seconds +
                    segment.segment.end_time_offset.nanos / 1e9)
        positions = '{}s to {}s'.format(start_time, end_time)
        confidence = segment.confidence
        print('\tSegment {}: {}'.format(i, positions))
        print('\tConfidence: {}'.format(confidence))
    print('\n')

Das Analyseergebnis wird sicher angezeigt.

image.png

Fehler aufgetreten

PermissionDenied: 403 The caller does not have permission

Die Berechtigungen, die Mitgliedern (Dienstkonten) gewährt wurden, wurden von der Seite IAM-IAM und Administration-Google Cloud Platform entfernt. Danach habe ich das Dienstkonto neu erstellt und es hat funktioniert. Die Ursache ist jedoch unbekannt.

Recommended Posts

Zeigen Sie das Ergebnis der Videoanalyse mit der Cloud Video Intelligence API von Colaboratory an.
Verkürzung der Analysezeit von Openpose mithilfe von Sound
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Eine Einführung in die Datenanalyse mit Python - Um die Anzahl der Videoansichten zu erhöhen -
Auszug nur vollständig aus dem Ergebnis von Trinity
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 2
[Python] Ruft den Gesetzestext aus der e-GOV-Gesetz-API ab
Mathematisches Verständnis der Hauptkomponentenanalyse von Anfang an
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 1
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
Erläuterung des Konzepts der Regressionsanalyse mit Python Extra 1
Studie aus Python Hour8: Verwenden von Paketen
Verringern Sie den Klassennamen der Anzeige des Erkennungsergebnisses der Objekterkennung
Steuern Sie Smart Light "Yeelight" von Python aus, ohne die Cloud zu verwenden
Anzeigen mit dem Python-Modul des mobilen Nifty Cloud-Backends
Zeigen Sie den Inhalt der Warteschlange mithilfe der RabbitMQ Management-Web-API an
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Lassen Sie uns die Super Resolution API mithilfe der Google Cloud Platform veröffentlichen
Die Geschichte des Erstellens einer Datenbank mithilfe der Google Analytics-API
Scraping das Ergebnis von "Schedule-Kun"
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der PeeringDB 2.0-API
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Ablauf des Ergebnisses der asynchronen Verarbeitung mit Django und Sellerie
Echtzeitanzeige von Videos, die von einer Webkamera auf einem Jupyter-Notebook (Python3) aufgenommen wurden
Visualisieren Sie das Zentrum der Rangkampfumgebung über die Pokemon Home-API
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Verwenden von TensorFlow in Cloud 9 Integrierte Entwicklungsumgebung - Grundlagen der Verwendung
[Ruby on Rails] Anzeigen und Fixieren von GoolgeMAP mithilfe der Google-API
Ich habe versucht, E-Mails von Node.js und Python mithilfe des E-Mail-Zustelldienstes (SendGrid) von IBM Cloud zuzustellen!