[PYTHON] Affichez le résultat de l'analyse vidéo à l'aide de l'API Cloud Video Intelligence de Colaboratory.

Cahier final

Vidéo à analyser: image.png

Préparation à l'utilisation de l'API Cloud Video Intelligence

Préparez "avant de commencer" pour le prochain démarrage rapide. Étant donné que 1 à 3 sont des paramètres de projet, ils sont conformes aux instructions du démarrage rapide, mais 4,5 sont légèrement différents.

1. Créez un projet GCP

Screen Shot 2019-12-27 at 17.46.14.png

2. Assurez-vous que la facturation est activée pour votre projet

Assurez-vous que le projet créé en 1 est lié à votre compte de facturation. (La validité de la facturation est à vos propres risques.)

3. Activez l'API Cloud Video Intelligence

Lorsque vous sélectionnez le bouton «Activer», l'écran de sélection d'un projet s'affiche. Sélectionnez le projet créé en 1 et «Continuer». (Dans le passé, il y avait des moments où l'API ne pouvait pas être activée, mais lorsque j'ai recréé le projet, cela fonctionnait bien. Je ne connais pas la cause.)

image.png

4. Créez un compte de service

Tout d'abord, qu'est-ce qu'un compte de service?

Un compte de service est un compte Google spécial qui appartient à une application ou une machine virtuelle (VM) plutôt qu'à un utilisateur final individuel. Les applications peuvent utiliser un compte de service pour appeler l'API de service de Google sans l'intervention de l'utilisateur.

Par exemple, si une VM Compute Engine s'exécute sur un compte de service, vous pouvez donner à ce compte l'accès aux ressources requises. Le compte de service devient ainsi l'identité du service, et les privilèges du compte de service contrôlent les ressources auxquelles le service peut accéder.

Compte de service|Documentation Cloud IAM|  Google CloudQue

En définissant les autorisations du compte de service, vous contrôlez les ressources auxquelles le service peut accéder. Ici, nous voulons créer un compte de service avec uniquement l'autorisation «view» pour le «stockage». (Pour télécharger la vidéo sur Google Cloud Storage une fois et la charger à partir de là.)

Lorsque je l'ai créé à partir du lien de démarrage rapide, je ne connaissais pas la cause, mais cela n'a pas fonctionné, donc

-Sélectionnez «+ Créer un compte de service» dans Comptes de service - IAM et administration - Google Cloud Platform

image.png

--Entrez nom du compte de service et sélectionnez créer

image.png

--Sélectionnez Storage> Storage Object Viewer dans Role --Sélectionnez Continuer

image.png

--Sélectionnez Créer à partir de` Créer une clé``

image.png

--Télécharger le fichier JSON avec pop-up

image.png

Définir les variables d'environnement

Puisqu'il est nécessaire de spécifier le chemin d'accès au fichier JSON, la variable d'environnement est définie dans le démarrage rapide, Ici, le chemin est spécifié directement à partir du Colaboratoire, aucun paramètre n'est donc requis.

Télécharger la vidéo sur Google Cloud Storage

Accédez à Navigateur de stockage - Stockage - Google Cloud Platform (https://console.cloud.google.com/storage/browser?hl=ja) et sélectionnez "Créer un bucket".

image.png

Entrez un nom pour votre bucket et sélectionnez «Créer». (Je me fiche des régions ici.)

image.png

Une fois le bucket créé, téléchargez la vidéo.

image.png

J'ai téléchargé «dog.mp4» directement sous le seau.

À propos de la taille de la vidéo, etc.

Veuillez faire attention au niveau gratuit de capacité de stockage et de capacité de téléchargement.

image.png

Tarification Cloud Storage|  Cloud Storage  |  Google Cloud

Faire un cahier sur Colaboratory

Sur Colaboratory,

--File> Nouveau bloc-notes pour Python 3

Créez un nouveau cahier à partir de.

Analysez la vidéo avec l'API Cloud Video Intelligence

Installer le package Python de l'API Cloud Video Intelligence

Installez le package Python de l'API Cloud Video Intelligence.

!pip install -U google-cloud-videointelligence

Télécharger les informations d'identification du compte de service

Téléchargez le fichier JSON que vous avez téléchargé lorsque vous avez créé le compte de service à partir de Fichier dans le volet gauche de Colaboratory.

image.png

Créez un certificat à partir de vos informations d'identification

import json
from google.oauth2 import service_account

service_account_key_name = <Nom de fichier JSON>
info = json.load(open(service_account_key_name))
creds = service_account.Credentials.from_service_account_info(info)

image.png

Créer un client

Créez un client en spécifiant le certificat ici.

from google.cloud import videointelligence

video_client = videointelligence.VideoIntelligenceServiceClient(credentials=creds)

Spécifiez l'emplacement de la vidéo

Cette fois, j'ai téléchargé le fichier vidéo directement sous le seau, donc ce sera comme suit.

video_url = "gs://<Nom du godet>/<Nom du fichier vidéo>"

image.png

Analyser la vidéo

À partir de là, c'est la même chose que le démarrage rapide.

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')

Le résultat de l'analyse est affiché en toute sécurité.

image.png

Erreur rencontrée

PermissionDenied: 403 The caller does not have permission

Suppression des privilèges accordés aux membres (comptes de service) de la page IAM-IAM et administration-Google Cloud Platform. Après cela, j'ai recréé le compte de service et cela a fonctionné. Cependant, la cause est inconnue.

Recommended Posts

Affichez le résultat de l'analyse vidéo à l'aide de l'API Cloud Video Intelligence de Colaboratory.
Raccourcir le temps d'analyse d'Openpose à l'aide du son
J'ai essayé d'utiliser l'API Google Cloud Vision
Une introduction à l'analyse de données à l'aide de Python - Pour augmenter le nombre de vues vidéo -
Extrait uniquement complet du résultat de Trinity
Explication du concept d'analyse de régression à l'aide de python Partie 2
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
Compréhension mathématique de l'analyse en composantes principales depuis le début
Explication du concept d'analyse de régression à l'aide de Python Partie 1
J'ai essayé d'utiliser l'API de Sakenowa Data Project
Explication du concept d'analyse de régression à l'aide de Python Extra 1
Étude de Python Hour8: Utilisation de packages
Diminuer le nom de classe de l'affichage des résultats de détection de la détection d'objets
Contrôlez la lumière intelligente «Yeelight» de Python sans utiliser le cloud
Afficher à l'aide du module python du backend mobile Nifty Cloud
Afficher le contenu de la file d'attente à l'aide de l'API Web de gestion RabbitMQ
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
Publions l'API de super résolution à l'aide de Google Cloud Platform
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
Grattage du résultat de "Schedule-kun"
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API PeeringDB 2.0
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Flux d'obtention du résultat du traitement asynchrone à l'aide de Django et Celery
Affichage en temps réel de la vidéo acquise à partir de la caméra Web sur le notebook Jupyter (Python3)
Visualisez le centre de l'environnement de combat de rang à partir de l'API Pokemon Home
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Utilisation de TensorFlow dans l'environnement de développement intégré Cloud 9 - Principes d'utilisation -
[Ruby on Rails] Affichage et épinglage de GoolgeMAP à l'aide de l'API Google
J'ai essayé de livrer du courrier depuis Node.js et Python en utilisant le service de livraison de courrier (SendGrid) d'IBM Cloud!