Modifier

Classification d’images sur Azure

Stockage Blob Azure
Vision par ordinateur Azure
Azure Cosmos DB
Azure Event Grid
Azure Functions

En utilisant des services Azure comme l’API Vision par ordinateur et Azure Functions, les sociétés n’ont plus besoin de gérer des serveurs individuels. Elles réduisent par ailleurs leurs coûts et tirent parti de l’expertise que Microsoft a déjà développée en matière de traitement d’images avec Cognitives Services. Cet exemple de scénario concerne plus particulièrement un cas d’usage de traitement d’images. Si vos besoins en termes d’intelligence artificielle sont variés, pensez à la suite complète de Cognitive Services.

Architecture

Architecture for image classification

Téléchargez un fichier Visio de cette architecture.

Workflow

Ce scénario couvre les composants principaux d’une application web ou mobile. Les données circulent dans le scénario comme suit :

  1. L’ajout de nouveaux fichiers (chargements d’images) dans le stockage Blob déclenche un événement dans Azure Event Grid. Le processus de chargement peut être orchestré via le web ou une application mobile. Vous pouvez également charger des images séparément dans le stockage Blob Azure.
  2. Event Grid envoie une notification qui déclenche Azure Functions.
  3. Azure Functions appelle l’API Azure Vision par ordinateur pour analyser l’image nouvellement chargée. L’API Vision par ordinateur accède à l’image via l’URL d’objet Blob analysée par Azure Functions.
  4. Azure Functions conserve la réponse de l’API Vision par ordinateur dans Azure Cosmos DB. Cette réponse inclut les résultats de l’analyse, ainsi que les métadonnées de l’image.
  5. Les résultats peuvent être consommés et réfléchis sur le web ou le front-end mobile. Notez que cette approche récupère les résultats de la classification, mais pas l’image chargée.

Components

  • L’API Vision par ordinateur fait partie de la suite Cognitive Services et est utilisée pour récupérer des informations sur chaque image.
  • Azure Functions fournit l’API back-end pour l’application web. Cette plateforme fournit également le traitement des événements pour les images chargées.
  • Azure Event Grid déclenche un événement lorsqu’une nouvelle image est chargée dans le stockage Blob. L’image est ensuite traitée avec Azure Functions.
  • Le Stockage Blob Azure stocke tous les fichiers image qui sont chargés dans l’application web, ainsi que les fichiers statiques qui sont consommés par l’application web.
  • Azure Cosmos DB stocke les métadonnées de chaque image chargée, notamment les résultats du traitement de l’API Vision par ordinateur.

Autres solutions

  • Service Vision personnalisée. L’API Vision par ordinateur retourne un ensemble de catégories basées sur la taxonomie. Si vous devez traiter des informations qui ne sont pas retournées par l’API Vision par ordinateur, pensez au service Vision personnalisée, qui vous permet de créer des classifieurs d’images personnalisés.
  • Recherche cognitive (anciennement recherche Azure). Si votre cas d’usage implique l’interrogation de métadonnées pour rechercher des images qui répondent à des critères spécifiques, pensez à utiliser la recherche cognitive. Actuellement en préversion, la recherche cognitive intègre parfaitement ce flux de travail.
  • Logic Apps. Si vous n’avez pas besoin de réagir en temps réel sur des fichiers ajoutés à un objet BLOB, vous pouvez envisager d’utiliser Logic Apps. Une application logique qui peut vérifier si un fichier a été ajouté peut être démarrée par le déclencheur de périodicité ou le déclencheur de fenêtres glissantes.

Détails du scénario

Ce scénario s’applique aux entreprises qui doivent traiter des images.

Applications potentielles : classification d’images pour un site web de mode, analyse de texte et d’images pour les déclarations de sinistre ou compréhension des données de télémétrie issues des captures d’écran de jeux. Traditionnellement, les entreprises devaient développer une expertise en matière de modèles Machine Learning, effectuer l’apprentissage des modèles et enfin exécuter les images via leur processus personnalisé pour obtenir les données des images.

Cas d’usage potentiels

Cette solution est idéale pour les secteurs de la vente au détail, du jeu, de la finance et de l’assurance. Les autres cas d’usage appropriés sont les suivants :

  • Classification des images sur un site web de mode. La classification des images peut être utilisée par les vendeurs lors du chargement d’images de produits sur la plateforme de vente. Ils peuvent ensuite automatiser le balisage manuel conséquent impliqué. Les clients peuvent également rechercher dans l’impression visuelle des produits.

  • Classification des données de télémétrie provenant de captures d’écran de jeux. La classification des jeux vidéo à partir de captures d’écran évolue en un problème pertinent sur les réseaux sociaux, couplé à la vision par ordinateur. Par exemple, lorsque les streamers de Twitch jouent à différents jeux en succession, ils peuvent ignorer la mise à jour manuelle de leurs informations de flux. L’échec de la mise à jour des informations de flux peut entraîner la mauvaise classification des flux dans les recherches des utilisateurs et la perte d’audience potentielle pour les créateurs de contenu et les plateformes de diffusion en continu. Lors de l’introduction de nouveaux jeux, un itinéraire de modèle personnalisé peut être utile pour introduire la capacité de détecter les nouvelles images de ces jeux.

  • Classification des images dans les demandes d’indemnisation. La classification d’images contribue à réduire le temps et le coût de traitement et de sous-écriture des revendications. Elle peut aider à analyser les dommages naturels et les dommages aux véhicules, et à identifier les propriétés résidentielles et commerciales.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.

Prenez en compte ces points lorsque vous implémentez cette solution :

Scalabilité

La plupart des composants utilisés dans ce scénario sont des services gérés avec mise à l’échelle automatique. Deux exceptions notables : Azure Functions est limité à un maximum de 200 instances. Si vous avez besoin de plus d’instances, vous pouvez utiliser plusieurs régions ou plans d’application.

Vous pouvez provisionner Azure Cosmos DB pour mettre à l’échelle automatiquement uniquement dans Azure Cosmos DB for NoSQL. Si vous prévoyez d’utiliser d’autres API, consultez les conseils sur l’estimation de vos besoins dans Unités de requête. Pour tirer pleinement parti de la mise à l’échelle dans Azure Cosmos DB, découvrez le fonctionnement des clés de partition dans Azure Cosmos DB.

Les bases de données NoSQL sacrifient souvent la cohérence (au sens du théorème CAP) au profit de la disponibilité, de l’extensibilité et du partitionnement. Cet exemple de scénario utilisant un modèle de données clé-valeur, la cohérence des transactions est rarement nécessaire, car la plupart des opérations sont par définition atomiques. Vous trouverez de l’aide pour Choisir un magasin de données adapté dans le Centre des architectures Azure. Si votre implémentation nécessite une cohérence élevée, vous pouvez choisir votre niveau de cohérence dans Azure Cosmos DB.

Pour obtenir des conseils d’ordre général sur la conception de solutions évolutives, consultez la liste de contrôle de l’efficacité des performances dans le Centre des architectures Azure.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

Des identités managées pour ressources Azure permettent à d’autres ressources internes d’accéder à votre compte et de les affecter à vos instances Azure Functions. Autorisez uniquement l’accès aux ressources requises dans ces identités pour vous assurer qu’aucun élément supplémentaire n’est exposé à vos fonctions (et potentiellement à vos clients).

Pour obtenir des conseils d’ordre général sur la conception de solutions sécurisées, consultez la documentation sur la sécurité Azure.

Résilience

Comme tous les composants de ce scénario sont gérés, à un niveau régional, ils sont résilients automatiquement.

Pour obtenir des conseils d’ordre général sur la conception de solutions résilientes, consultez l’article Conception d’applications résilientes pour Azure.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

Pour explorer le coût d’exécution de ce scénario, tous les services sont préconfigurés dans le calculateur de coûts. Pour pouvoir observer l’évolution de la tarification pour votre cas d’usage particulier, modifiez les variables appropriées en fonction du trafic que vous escomptez.

Nous proposons trois exemples de profils de coût selon la quantité de trafic (nous supposons que toutes les images font 100 Ko) :

  • Petit : cet exemple de tarification a trait au traitement de <5000 images par mois.
  • Moyen : cet exemple de tarification a trait au traitement de 500 000 images par mois.
  • Grand : cet exemple de tarification a trait au traitement de 50 millions d’images par mois.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteurs principaux :

Étapes suivantes

Documentation du produit

Pour obtenir un parcours d'apprentissage, reportez-vous aux sections suivantes :

Avant de déployer cet exemple de scénario dans un environnement de production, passez en revue les pratiques recommandées pour l’optimisation des performances et de la fiabilité d’Azure Functions.

Enrichissement par IA avec traitement des images et du langage naturel dans la Recherche cognitive Azure