Classificatie van afbeeldingen in Azure

Blob Storage
Computer Vision
Cosmos DB
Event Grid
Functions

Dit scenario is relevant voor bedrijven die afbeeldingen moeten verwerken.

Mogelijke toepassingen zijn onder andere het classificeren van afbeeldingen voor een modewebsite, het analyseren van tekst en afbeeldingen voor verzekeringsclaims of het begrijpen van telemetriegegevens uit game-schermopnamen. Van oudsher moeten bedrijven expertise ontwikkelen in machine learning modellen, de modellen trainen en ten slotte de afbeeldingen uitvoeren via hun aangepaste proces om de gegevens uit de afbeeldingen te halen.

Met behulp van Azure-services, zoals de Computer Vision-API en Azure Functions, hoeven bedrijven geen afzonderlijke servers meer te beheren, terwijl ze de kosten verlagen en gebruikmaken van de expertise die Microsoft al heeft ontwikkeld met het verwerken van afbeeldingen met Cognitive Services. Dit voorbeeldscenario heeft specifiek betrekking op een use-case voor het verwerken van afbeeldingen. Als u verschillende AI-behoeften hebt, kunt u de volledige suite met Cognitive Services.

Relevante gebruiksgevallen

Andere relevante gebruiksgevallen zijn:

  • Afbeeldingen classificeren op een modewebsite.
  • Het classificeren van telemetriegegevens uit schermopnamen van games.
  • Afbeeldingen classificeren voor verzekeringsclaims.

Architectuur

Architectuur voor afbeeldingsclassificatie

Dit scenario heeft betrekking op de back-endonderdelen van een webtoepassing of mobiele toepassing. Gegevens stromen als volgt door het scenario:

  1. De API-laag is gebouwd met behulp van Azure Functions. Met deze API's kan de toepassing afbeeldingen uploaden en gegevens ophalen uit Cosmos DB.
  2. Wanneer een afbeelding wordt geüpload via een API-aanroep, wordt deze opgeslagen in Blob Storage.
  3. Als u nieuwe bestanden toevoegt aan Blob Storage, Event Grid een melding verzonden naar een Azure-functie.
  4. Azure Functions verzendt een koppeling naar het zojuist geüploade bestand naar Computer Vision API voor analyse.
  5. Zodra de gegevens zijn geretourneerd door de Computer Vision-API, Azure Functions een vermelding in Cosmos DB om de resultaten van de analyse samen met de metagegevens van de afbeelding te behouden.

Onderdelen

  • Computer Vision API maakt deel uit van Cognitive Services suite en wordt gebruikt om informatie over elke afbeelding op te halen.
  • Azure Functions biedt de back-end-API voor de webtoepassing, evenals de gebeurtenisverwerking voor geüploade afbeeldingen.
  • Event Grid activeert een gebeurtenis wanneer een nieuwe afbeelding wordt geüpload naar blobopslag. De afbeelding wordt vervolgens verwerkt met Azure-functies.
  • Blob Storage slaat alle afbeeldingsbestanden op die zijn geüpload naar de webtoepassing, evenals alle statische bestanden die door de webtoepassing worden gebruikt.
  • Cosmos DB slaat metagegevens op over elke afbeelding die wordt geüpload, inclusief de resultaten van de verwerking van 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 classificaties voor afbeeldingen 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 het Cognitive Search. Cognitive Search is momenteel beschikbaar als preview-versie en integreert deze werkstroom naadloos.
  • Logic Apps. Als u niet in realtime hoeft te reageren op toegevoegde bestanden aan een blob, kunt u overwegen om een Logic Apps. Een logische app die kan controleren of een bestand is toegevoegd, kan worden starten door de trigger voor terugkeerpatroon of sliding windows trigger.

Overwegingen

Schaalbaarheid

De meeste onderdelen die in dit voorbeeldscenario worden gebruikt, zijn beheerde services die automatisch worden geschaald. Enkele belangrijke uitzonderingen: Azure Functions een limiet van maximaal 200 exemplaren. Als u deze limiet wilt overschrijden, kunt u meerdere regio's of app-abonnementen overwegen.

U kunt deze Cosmos DB automatisch schalen voor SQL API. Zie aanvraageenheden in onze documentatie als u van plan bent andere API's te gebruiken. Als u optimaal wilt profiteren van het schalen in Cosmos DB, moet u begrijpen hoe partitiesleutels in de Cosmos DB.

NoSQL-databases maken vaak gebruik van consistentie (in de zin van het 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 gegevensopslag is beschikbaar in de Azure Architecture Center. Als voor uw implementatie hoge consistentie is vereist, kunt u uw consistentieniveau in Cosmos DB.

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

Beveiliging

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

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

Flexibiliteit

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

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

Prijzen

Om de kosten voor het uitvoeren van dit scenario te verkennen, zijn alle services vooraf geconfigureerd in de kostencalculator. Als u wilt zien hoe de prijzen voor uw specifieke use-case worden gewijzigd, wijzigt u de juiste variabelen om overeen te komen 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.

Zie voor een begeleid leertraject:

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