Classificatie van afbeeldingen in Azure

Azure Blob Storage
Azure Computer Vision
Azure Cosmos DB
Azure Event Grid
Azure Functions

Met behulp van Azure-services, zoals de Computer Vision-API en Azure Functions, kunnen bedrijven de noodzaak van het beheren van afzonderlijke servers elimineren, terwijl ze de kosten verlagen en gebruikmaken van de expertise die Microsoft al heeft ontwikkeld met het verwerken van afbeeldingen met Azure AI-services. In dit voorbeeldscenario wordt specifiek ingegaan op een gebruiksscenario voor afbeeldingsverwerking. Als u verschillende AI-behoeften hebt, kunt u de volledige suite met Azure AI-services overwegen.

Architectuur

Architectuur voor afbeeldingsclassificatie

Een Visio-bestand van deze architectuur downloaden.

Workflow

In dit scenario worden de back-endonderdelen van een web- of mobiele toepassing behandeld. Gegevens stromen als volgt door het scenario:

  1. Als u nieuwe bestanden (afbeeldingsuploads) toevoegt in Blob Storage, wordt een gebeurtenis geactiveerd in Azure Event Grid. Het uploadproces kan worden ingedeeld via internet of een mobiele toepassing. U kunt ook afbeeldingen afzonderlijk uploaden naar de Azure Blob-opslag.
  2. Event Grid verzendt een melding waarmee de Azure-functies worden geactiveerd.
  3. Azure Functions roept de Azure Computer Vision-API aan om de zojuist geüploade afbeelding te analyseren. Computer Vision opent de afbeelding via de blob-URL die wordt geparseerd door Azure Functions.
  4. Azure Functions blijft het Antwoord van de Computer Vision-API in Azure Cosmos DB behouden. Dit antwoord bevat de resultaten van de analyse, samen met de metagegevens van de afbeelding.
  5. De resultaten kunnen worden gebruikt en weerspiegeld op het web of mobiele front-end. Houd er rekening mee dat met deze methode de resultaten van de classificatie worden opgehaald, maar niet de geüploade afbeelding.

Onderdelen

  • Computer Vision-API maakt deel uit van de Azure AI-servicessuite en wordt gebruikt om informatie over elke afbeelding op te halen.
  • Azure Functions biedt de back-end-API voor de webtoepassing. Dit platform biedt ook gebeurtenisverwerking voor geüploade afbeeldingen.
  • Azure Event Grid activeert een gebeurtenis wanneer een nieuwe afbeelding wordt geüpload naar blobopslag. De installatiekopieën worden vervolgens verwerkt met Azure Functions.
  • In Azure Blob Storage worden alle afbeeldingsbestanden opgeslagen die worden geüpload naar de webtoepassing, evenals statische bestanden die door de webtoepassing worden gebruikt.
  • Azure Cosmos DB slaat metagegevens op over elke afbeelding die wordt geüpload, inclusief de resultaten van de verwerking van de Computer Vision-API.

Alternatieven

  • Custom Vision Service. De Computer Vision-API retourneert een set op taxonomie gebaseerde categorieën. Als u informatie wilt verwerken die niet wordt geretourneerd door de Computer Vision-API, kunt u de Custom Vision-service gebruiken, waarmee u aangepaste afbeeldingsclassificaties kunt maken.
  • Cognitive Search (voorheen Azure Search). Als uw use-case betrekking heeft op het uitvoeren van query's op de metagegevens om afbeeldingen te vinden die voldoen aan specifieke criteria, kunt u overwegen Cognitive Search te gebruiken. Momenteel in preview integreert Cognitive Search deze werkstroom naadloos.
  • Logic Apps. Als u niet in realtime hoeft te reageren op toegevoegde bestanden in een blob, kunt u overwegen Logic Apps te gebruiken. Een logische app die kan controleren of een bestand is toegevoegd, kan worden gestart door de terugkeertrigger of schuifvenstertrigger.

Scenariodetails

Dit scenario is relevant voor bedrijven die afbeeldingen moeten verwerken.

Mogelijke toepassingen omvatten het classificeren van afbeeldingen voor een modewebsite, het analyseren van tekst en afbeeldingen voor verzekeringsclaims of het begrijpen van telemetriegegevens uit gameschermafbeeldingen. Normaal gesproken moeten bedrijven expertise ontwikkelen in machine learning-modellen, de modellen trainen en ten slotte de installatiekopieën uitvoeren via hun aangepaste proces om de gegevens uit de installatiekopieën te halen.

Potentiële gebruikscases

Deze oplossing is ideaal voor de detailhandel, game, financiën en verzekeringen. Andere relevante use cases zijn:

  • Afbeeldingen classificeren op een modewebsite. Afbeeldingsclassificatie kan worden gebruikt door verkopers tijdens het uploaden van afbeeldingen van producten op het platform dat te koop is. Vervolgens kunnen ze de bijbehorende handmatige taggen automatiseren. De klanten kunnen ook door de visuele indruk van de producten zoeken.

  • Telemetriegegevens classificeren uit schermopnamen van games. De classificatie van videogames uit schermopnamen ontwikkelt zich in een relevant probleem in sociale media, in combinatie met computer vision. Wanneer Twitch streamers bijvoorbeeld verschillende games achter elkaar spelen, kunnen ze hun streamgegevens handmatig bijwerken. Het bijwerken van streamgegevens kan leiden tot een onjuiste classificatie van streams in zoekopdrachten van gebruikers en kan leiden tot het verlies van potentiële kijkers voor zowel de makers van inhoud als de streamingplatforms. Tijdens het introduceren van nieuwe games kan een aangepaste modelroute handig zijn om de mogelijkheid te introduceren om nieuwe afbeeldingen van die games te detecteren.

  • Afbeeldingen voor verzekeringsclaims classificeren. Afbeeldingsclassificatie kan helpen bij het verminderen van de tijd en kosten voor het verwerken en onderschrijven van claims. Het kan helpen bij het analyseren van natuurrampschade, voertuigschade en het identificeren van woningen en commerciële eigenschappen.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Houd rekening met deze punten bij het implementeren van deze oplossing:

Schaalbaarheid

Het merendeel van de onderdelen die in dit voorbeeldscenario worden gebruikt, zijn beheerde services die automatisch worden geschaald. Enkele belangrijke uitzonderingen: Azure Functions heeft een limiet van maximaal 200 exemplaren. Als u buiten deze limiet wilt schalen, kunt u meerdere regio's of app-plannen overwegen.

U kunt Azure Cosmos DB alleen inrichten voor automatische schaalaanpassing in Azure Cosmos DB voor NoSQL. Als u van plan bent om andere API's te gebruiken, raadpleegt u de richtlijnen voor het schatten van uw vereisten in aanvraageenheden. Als u volledig wilt profiteren van het schalen in Azure Cosmos DB, begrijpt u hoe partitiesleutels werken in Azure Cosmos DB.

NoSQL-databases verhandelen vaak consistentie (in de zin van de CAP-theorema) voor beschikbaarheid, schaalbaarheid en partitionering. In dit voorbeeldscenario wordt een sleutel-waardegegevensmodel gebruikt en is transactieconsistentie zelden nodig omdat de meeste bewerkingen per definitie atomisch zijn. Aanvullende richtlijnen voor het kiezen van het juiste gegevensarchief zijn beschikbaar in het Azure Architecture Center. Als uw implementatie hoge consistentie vereist, kunt u uw consistentieniveau kiezen in Azure Cosmos DB.

Zie de controlelijst voor prestatie-efficiëntie in het Azure Architecture Center voor algemene richtlijnen voor het ontwerpen van schaalbare oplossingen.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Beheerde identiteiten voor Azure-resources worden gebruikt om toegang te bieden tot andere resources die intern zijn voor uw account en vervolgens worden toegewezen aan uw Azure-functies. Alleen toegang tot de vereiste resources in deze identiteiten toestaan om ervoor te zorgen dat er niets extra's beschikbaar is voor uw functies (en mogelijk voor uw klanten).

Zie de Documentatie voor Azure-beveiliging voor algemene richtlijnen voor het ontwerpen van beveiligde oplossingen.

Tolerantie

Alle onderdelen in dit scenario worden beheerd, dus op regionaal niveau zijn ze allemaal automatisch tolerant.

Zie Tolerante toepassingen ontwerpen voor Azure voor algemene richtlijnen voor het ontwerpen van flexibele oplossingen.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

Als u de kosten voor het uitvoeren van dit scenario wilt verkennen, worden alle services vooraf geconfigureerd in de kostencalculator. Als u wilt zien hoe de prijzen voor uw specifieke use case veranderen, wijzigt u de juiste variabelen zodat deze overeenkomen met het verwachte verkeer.

We hebben drie voorbeeldkostenprofielen opgegeven op basis van de hoeveelheid verkeer (we gaan ervan uit dat alle afbeeldingen 100 kB groot zijn):

  • Klein: dit prijsvoorbeeld correleert met het verwerken < van 5000 afbeeldingen per maand.
  • Gemiddeld: dit prijsvoorbeeld correleert met het verwerken van 500.000 afbeeldingen per maand.
  • Groot: dit prijsvoorbeeld correleert met het verwerken van 50 miljoen afbeeldingen per maand.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Belangrijkste auteurs:

Volgende stappen

Productdocumentatie

Zie voor een begeleid leertraject:

Voordat u dit voorbeeldscenario in een productieomgeving implementeert, bekijkt u aanbevolen procedures voor het optimaliseren van de prestaties en betrouwbaarheid van Azure Functions.

AI-verrijking met verwerking van afbeeldingen en natuurlijke taal in Azure Cognitive Search