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.
Assurez-vous que le projet créé en 1 est lié à votre compte de facturation. (La validité de la facturation est à vos propres risques.)
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.)
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.
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
--Entrez nom du compte de service
et sélectionnez créer
--Sélectionnez Storage> Storage Object Viewer
dans Role
--Sélectionnez Continuer
--Sélectionnez Créer
à partir de` Créer une clé``
--Télécharger le fichier JSON avec pop-up
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.
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".
Entrez un nom pour votre bucket et sélectionnez «Créer». (Je me fiche des régions ici.)
Une fois le bucket créé, téléchargez la vidéo.
J'ai téléchargé «dog.mp4» directement sous le seau.
Veuillez faire attention au niveau gratuit de capacité de stockage et de capacité de téléchargement.
Tarification Cloud Storage| Cloud Storage | Google Cloud
Sur Colaboratory,
--File
> Nouveau bloc-notes pour Python 3
Créez un nouveau cahier à partir de.
Installez le package Python de l'API Cloud Video Intelligence.
!pip install -U google-cloud-videointelligence
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.
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)
Créez un client en spécifiant le certificat ici.
from google.cloud import videointelligence
video_client = videointelligence.VideoIntelligenceServiceClient(credentials=creds)
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>"
À 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é.
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