Bildklassificering i Azure

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

Genom att använda Azure-tjänster, till exempel Visuellt innehåll API och Azure Functions, kan företag eliminera behovet av att hantera enskilda servrar, samtidigt som de minskar kostnaderna och använder den expertis som Microsoft redan har utvecklat med bearbetning av avbildningar med Azure AI-tjänster. Det här exempelscenariot tar specifikt upp ett användningsfall för bildbearbetning. Om du har olika AI-behov bör du överväga hela sviten med Azure AI-tjänster.

Arkitektur

Arkitektur för bildklassificering

Ladda ned en Visio-fil med den här arkitekturen.

Arbetsflöde

Det här scenariot omfattar serverdelskomponenterna i ett webb- eller mobilprogram. Data flödar genom scenariot på följande sätt:

  1. Om du lägger till nya filer (bilduppladdningar) i Blob Storage utlöses en händelse i Azure Event Grid. Uppladdningsprocessen kan orkestreras via webben eller ett mobilprogram. Du kan också ladda upp avbildningar separat till Azure Blob Storage.
  2. Event Grid skickar ett meddelande som utlöser Azure-funktionerna.
  3. Azure Functions anropar Azure Visuellt innehåll API för att analysera den nyligen uppladdade avbildningen. Visuellt innehåll kommer åt avbildningen via blob-URL:en som tolkas av Azure Functions.
  4. Azure Functions bevarar Visuellt innehåll API-svaret i Azure Cosmos DB. Det här svaret innehåller resultatet av analysen, tillsammans med bildmetadata.
  5. Resultatet kan användas och återspeglas på webben eller på den mobila klientdelen. Observera att den här metoden hämtar resultatet av klassificeringen men inte den uppladdade bilden.

Komponenter

  • Visuellt innehåll API är en del av Azure AI-tjänstsviten och används för att hämta information om varje bild.
  • Azure Functions tillhandahåller serverdels-API:et för webbprogrammet. Den här plattformen tillhandahåller även händelsebearbetning för uppladdade bilder.
  • Azure Event Grid utlöser en händelse när en ny avbildning laddas upp till Blob Storage. Avbildningen bearbetas sedan med Azure Functions.
  • Azure Blob Storage lagrar alla avbildningsfiler som laddas upp till webbprogrammet samt eventuella statiska filer som webbprogrammet använder.
  • Azure Cosmos DB lagrar metadata om varje bild som laddas upp, inklusive resultatet av bearbetningen från Visuellt innehåll API.

Alternativ

  • Custom Vision Service. API:et Visuellt innehåll returnerar en uppsättning taxonomibaserade kategorier. Om du behöver bearbeta information som inte returneras av Visuellt innehåll-API:et bör du överväga Custom Vision Service, som gör att du kan skapa anpassade bildklassificerare.
  • Cognitive Search (tidigare Azure Search). Om ditt användningsfall handlar om att fråga metadata för att hitta bilder som uppfyller specifika kriterier bör du överväga att använda Cognitive Search. För närvarande i förhandsversion integrerar Cognitive Search sömlöst det här arbetsflödet.
  • Logic Apps. Om du inte behöver reagera i realtid på tillagda filer i en blob kan du överväga att använda Logic Apps. En logikapp som kan kontrollera om en fil har lagts till kan startas av upprepningsutlösaren eller skjutfönsterutlösaren.

Information om scenario

Det här scenariot är relevant för företag som behöver bearbeta bilder.

Potentiella program omfattar klassificering av bilder för en modewebbplats, analys av text och bilder för försäkringsanspråk eller förståelse av telemetridata från spelskärmskärmar. Traditionellt skulle företag behöva utveckla expertis inom maskininlärningsmodeller, träna modellerna och slutligen köra bilderna genom sin anpassade process för att få ut data ur bilderna.

Potentiella användningsfall

Den här lösningen är perfekt för detaljhandeln, spelet, finansbranschen och försäkringsbranschen. Andra relevanta användningsfall är:

  • Klassificera bilder på en modewebbplats. Bildklassificering kan användas av säljare när de laddar upp bilder av produkter på plattformen till salu. De kan sedan automatisera den efterföljande manuella taggningen. Kunderna kan också söka igenom det visuella intrycket av produkterna.

  • Klassificera telemetridata från skärmbilder av spel. Klassificeringen av videospel från skärmbilder utvecklas till ett relevant problem i sociala medier, tillsammans med visuellt innehåll. När Twitch-streamers till exempel spelar olika spel i följd kan de hoppa över att manuellt uppdatera sin ströminformation. Om dataströmsinformationen inte uppdateras kan det leda till felklassificering av strömmar i användarsökningar och kan leda till förlust av potentiell visning för både innehållsskaparna och strömningsplattformarna. När du introducerar nya spel kan en anpassad modellväg vara till hjälp för att introducera möjligheten att upptäcka nya bilder från dessa spel.

  • Klassificera bilder för försäkringsanspråk. Bildklassificering kan bidra till att minska tiden och kostnaden för anspråksbearbetning och underskrift. Det kan hjälpa till att analysera naturkatastrofskador, fordonsskador och identifiera bostads- och kommersiella fastigheter.

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Tänk på följande när du implementerar den här lösningen:

Skalbarhet

Majoriteten av de komponenter som används i det här exempelscenariot är hanterade tjänster som skalas automatiskt. Ett par viktiga undantag: Azure Functions har en gräns på högst 200 instanser. Om du behöver skala över den här gränsen bör du överväga flera regioner eller appplaner.

Du kan endast etablera Azure Cosmos DB för autoskalning i Azure Cosmos DB för NoSQL. Om du planerar att använda andra API:er kan du läsa vägledning om hur du beräknar dina krav i enheter för begäranden. Om du vill dra full nytta av skalningen i Azure Cosmos DB kan du förstå hur partitionsnycklar fungerar i Azure Cosmos DB.

NoSQL-databaser handlar ofta med konsekvens (i cap-sats) för tillgänglighet, skalbarhet och partitionering. I det här exempelscenariot används en nyckel/värde-datamodell och transaktionskonsekvens behövs sällan eftersom de flesta åtgärder per definition är atomiska. Ytterligare vägledning för Att välja rätt datalager finns i Azure Architecture Center. Om implementeringen kräver hög konsekvens kan du välja konsekvensnivå i Azure Cosmos DB.

Allmän vägledning om hur du utformar skalbara lösningar finns i checklistan för prestandaeffektivitet i Azure Architecture Center.

Säkerhet

Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.

Hanterade identiteter för Azure-resurser används för att ge åtkomst till andra resurser som är interna för ditt konto och sedan tilldelas till dina Azure-funktioner. Tillåt endast åtkomst till nödvändiga resurser i dessa identiteter för att säkerställa att inget extra exponeras för dina funktioner (och potentiellt för dina kunder).

Allmän vägledning om hur du utformar säkra lösningar finns i Azure Security-dokumentationen.

Motståndskraft

Alla komponenter i det här scenariot hanteras, så på regional nivå är de alla motståndskraftiga automatiskt.

Allmän vägledning om hur du utformar motståndskraftiga lösningar finns i Designa elastiska program för Azure.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

För att utforska kostnaden för att köra det här scenariot är alla tjänster förkonfigurerade i kostnadskalkylatorn. Om du vill se hur prissättningen skulle ändras för ditt specifika användningsfall ändrar du lämpliga variabler så att de matchar din förväntade trafik.

Vi har angett tre exempel på kostnadsprofiler baserat på mängden trafik (vi antar att alla bilder är 100 KB stora):

  • Liten: det här prisexemplet korrelerar med bearbetning av < 5 000 bilder per månad.
  • Medel: det här prisexemplet korrelerar till bearbetning av 500 000 bilder per månad.
  • Stort: det här prisexemplet korrelerar med bearbetning av 50 miljoner bilder per månad.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudsakliga författare:

Nästa steg

Produktdokumentation

En guidad utbildningsväg finns i:

Innan du distribuerar det här exempelscenariot i en produktionsmiljö bör du läsa rekommenderade metoder för att optimera prestanda och tillförlitlighet för Azure Functions.

AI-berikande med bild- och naturligt språkbearbetning i Azure Cognitive Search