Créer une solution d'analyse ML Vision avec Dataflow et l'API Cloud Vision

Last reviewed 2024-05-23 UTC

Dans cette architecture de référence, vous découvrirez les cas d'utilisation, les alternatives de conception et les considérations de conception lors du déploiement d'un pipeline Dataflow pour traiter des fichiers image avec Cloud Vision et pour stocker les résultats traités dans BigQuery. Vous pouvez utiliser ces résultats stockés pour analyser des données à grande échelle et entraîner des modèles prédéfinis BigQuery ML.

Ce document d'architecture de référence est destiné aux ingénieurs et aux data scientists.

Architecture

Le schéma suivant illustre le flux système pour cette architecture de référence.

Architecture montrant le flux d'informations pour l'ingestion, le déclenchement, le traitement, le stockage et l'analyse des processus.

Comme le montre le schéma précédent, les informations circulent comme suit :

  1. Ingestion et déclenchement : il s'agit de la première étape du flux système où les images entrent d'abord dans le système. Au cours de cette étape, les actions suivantes se produisent :

    1. Les clients importent des fichiers image dans un bucket Cloud Storage.
    2. Pour chaque importation de fichier, Cloud Storage envoie automatiquement une notification d'entrée en publiant un message dans Pub/Sub.
  2. Processus : cette étape suit immédiatement l'étape d'ingestion et de déclenchement. Pour chaque nouvelle notification d'entrée, les actions suivantes se produisent :

    1. Le pipeline Dataflow écoute ces notifications d'entrée de fichier, extrait les métadonnées du fichier du message Pub/Sub et envoie la référence du fichier à l'API Cloud Vision pour traitement.
    2. L'API Vision lit l'image et crée des annotations.
    3. Le pipeline Dataflow stocke les annotations générées par l'API Cloud Vision dans des tables BigQuery.
  3. Stockage et analyse : il s'agit de la dernière étape du flux. À ce stade, vous pouvez effectuer les opérations suivantes avec les résultats enregistrés :

    1. Interroger les tables BigQuery et analyser les annotations stockées.
    2. Utiliser BigQuery ML ou Vertex AI pour créer des modèles et exécuter des prédictions basées sur les annotations stockées.
    3. Effectuer une analyse supplémentaire dans le pipeline Dataflow (non illustré sur ce schéma).

Produits utilisés

Cette architecture de référence utilise les produits Google Cloud suivants :

Cas d'utilisation

L'API Cloud Vision est compatible avec plusieurs fonctionnalités de traitement, telles que l'étiquetage d'images, la détection de visages et de points de repère, la reconnaissance optique des caractères, l'ajout de tags au contenu explicite, etc. Chacune de ces fonctionnalités permet plusieurs cas d'utilisation applicables à différents secteurs. Ce document contient des exemples simples de ce qui est possible lors de l'utilisation de l'API Cloud Vision, mais le spectre des applications possibles est très large.

L'API Vision propose des modèles de machine learning performants et pré-entraînés par le biais des API REST et RPC. Vous pouvez attribuer des étiquettes à des images et les classer dans des millions de catégories prédéfinies. Elle vous permet de détecter des objets, de lire du texte imprimé ou manuscrit, et d'intégrer des métadonnées utiles à votre catalogue d'images.

Cette architecture ne nécessite aucun entraînement de modèle avant de pouvoir être utilisée. Si vous avez besoin d'un modèle personnalisé entraîné sur vos données spécifiques, Vertex AI vous permet d'entraîner un modèle AutoML ou un modèle personnalisé pour des objectifs de vision par ordinateur, tels que la classification d'images et la détection d'objets. Vous pouvez également utiliser Vertex AI Vision pour un environnement de développement d'applications de bout en bout qui vous permet de créer, de déployer et de gérer des applications de vision par ordinateur.

Alternatives de conception

Au lieu de stocker des images dans un bucket Google Cloud Storage, le processus qui les produit peut les publier directement sur un système de messagerie (Pub/Sub par exemple), et le pipeline Dataflow peut envoyer les images directement à l'API Vision.

Cette alternative de conception peut être une bonne solution pour les cas d'utilisation sensibles à la latence où vous devez analyser des images de taille relativement petite. Pub/Sub limite la taille maximale du message à 10 Mo.

Si vous devez traiter un grand nombre d'images par lot, vous pouvez utiliser une API asyncBatchAnnotate spécialement conçue.

Considérations de conception

Cette section décrit les considérations de conception de cette architecture de référence :

Sécurité, confidentialité et conformité

Les images reçues de sources non approuvées peuvent contenir des logiciels malveillants. Étant donné que l'API Vision n'exécute rien en fonction des images qu'elle analyse, les logiciels malveillants basés sur des images n'affectent pas l'API. Si vous devez analyser des images, modifiez le pipeline Dataflow pour ajouter une étape d'analyse. Pour obtenir le même résultat, vous pouvez également utiliser un abonnement distinct au sujet Pub/Sub et analyser les images dans un processus distinct.

Pour en savoir plus, consultez la page Automatiser la détection de logiciels malveillants pour des fichiers importés dans Cloud Storage.

L'API Cloud Vision utilise Identity and Access Management (IAM) pour l'authentification. Pour accéder à l'API Vision, le compte principal de sécurité a besoin d'un accès Cloud Storage > Lecteur des objets de l'espace de stockage (roles/storage.objectViewer) au bucket contenant les fichiers que vous souhaitez analyser.

Pour connaître les principes et recommandations de sécurité spécifiques aux charges de travail d'IA et de ML, consultez la section Perspective IA et ML: sécurité du framework d'architecture.

Optimisation des coûts

Par rapport aux autres options abordées, comme le traitement à faible latence et le traitement par lot asynchrone, cette architecture de référence utilise un moyen économique de traiter les images dans les pipelines de streaming en regroupant les requêtes API. Le streaming d'images direct à latence faible, mentionné dans la section Alternatives de conception, peut s'avérer plus coûteux en raison des coûts supplémentaires liés à Pub/Sub et Dataflow. Pour le traitement d'images qui n'a pas besoin de prendre quelques secondes ou minutes, vous pouvez exécuter le pipeline Dataflow en mode de traitement par lot. L'exécution du pipeline en mode de traitement par lots vous permet de réaliser des économies par rapport au coût de l'exécution du pipeline de traitement en flux continu.

L'API Cloud Vision est compatible avec l'annotation d'images par lot asynchrone hors connexion pour toutes les caractéristiques. La requête asynchrone accepte jusqu'à 2 000 images par lot. En réponse, l'API Cloud Vision renvoie des fichiers JSON stockés dans un bucket Cloud Storage.

L'API Vision fournit également un ensemble de fonctionnalités pour l'analyse des images. Les tarifs sont calculés par image et par fonctionnalité. Pour réduire les coûts, ne demandez que les fonctionnalités spécifiques dont vous avez besoin pour votre solution.

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.

Pour connaître les principes et les recommandations d'optimisation des coûts spécifiques aux charges de travail d'IA et de ML, consultez la section Perspective IA et ML: optimisation des coûts du framework d'architecture.

Optimisation des performances

L'API Vision est une API gourmande en ressources. De ce fait, le traitement d'images à grande échelle nécessite une orchestration minutieuse des appels d'API. Le pipeline Dataflow s'occupe de regrouper les requêtes API, de gérer correctement les exceptions liées à l'atteinte des quotas et de générer des métriques personnalisées sur l'utilisation de l'API. Ces métriques peuvent vous aider à décider si une augmentation du quota d'API est justifiée ou si les paramètres du pipeline Dataflow doivent être ajustés pour réduire la fréquence des requêtes. Pour en savoir plus sur l'augmentation des demandes de quota pour l'API Cloud Vision, consultez la page Quotas et limites.

Le pipeline Dataflow comporte plusieurs paramètres qui peuvent affecter les latences de traitement. Pour en savoir plus sur ces paramètres, consultez la page Déployer une solution d'analyse ML Vision avec Dataflow et l'API Vision.

Pour connaître les principes et les recommandations d'optimisation des performances spécifiques aux charges de travail d'IA et de ML, consultez la section Perspective IA et ML: optimisation des performances du framework d'architecture.

Déploiement

Pour déployer cette architecture, consultez la page Déployer une solution d'analyse ML Vision avec Dataflow et l'API Vision.

Étapes suivantes

Contributeurs

Auteurs :

Autres contributeurs :