Den här artikeln beskriver hur du använder en mobil robot med en liveuppspelningskamera för att implementera olika användningsfall. Lösningen implementerar ett system som körs lokalt på Azure Stack Edge för att mata in och bearbeta videoströmmen och Azure AI-tjänster som utför objektidentifiering.
Arkitektur
Ladda ned en Visio-fil med den här arkitekturen.
Arbetsflöde
Det här arbetsflödet beskriver hur systemet bearbetar inkommande data:
En kamera som är installerad på roboten strömmar video i realtid med hjälp av RTSP (Real Time Streaming Protocol).
En container i Kubernetes-klustret på Azure Stack Edge läser den inkommande strömmen och delar upp videon i separata bilder. Ett programvaruverktyg med öppen källkod som kallas FFmpeg matar in och bearbetar videoströmmen.
Avbildningar lagras i det lokala Azure Stack Edge-lagringskontot.
Varje gång en ny nyckelram sparas i lagringskontot hämtar en AI Vision-container den. Information om uppdelningen av logik i flera containrar finns i Scenarioinformation.
När den läser in en nyckelram från lagringscontainern skickar AI Vision-containern den till Azure AI-tjänster i molnet. Den här arkitekturen använder Azure AI Vision, som möjliggör objektidentifiering via bildanalys.
Resultatet av bildanalysen (identifierade objekt och en säkerhetsklassificering) skickas till containern för avvikelseidentifiering.
Containern för avvikelseidentifiering lagrar resultatet av bildanalys och avvikelseidentifiering i den lokala Azure SQL Database-instansen av Azure Stack Edge för framtida referens. Om du använder en lokal instans av databasen förbättras åtkomsttiden, vilket hjälper till att minimera fördröjningar i dataåtkomsten.
Databearbetning körs för att identifiera eventuella avvikelser i den inkommande realtidsvideoströmmen. Om avvikelser identifieras visar ett klientdelsgränssnitt en avisering.
Komponenter
Azure Stack Edge är en Azure-hanterad enhet som för beräkning, lagring och intelligens i Azure till gränsen. Den här arkitekturen använder den som värd för Azure-tjänster lokalt, nära platsen där avvikelseidentifiering sker, vilket minskar svarstiden.
Azure Kubernetes Service (AKS) på Azure Stack Edge. Azure Kubernetes Service (AKS) är en hanterad Kubernetes-tjänst som du kan använda för att distribuera och hantera containerbaserade program. I den här arkitekturen använder vi en version av AKS som körs på Azure Stack Edge-enheten för att hantera containrar som ansvarar för systemets logik.
Azure Arc är en brygga som utökar Azure-tjänster till gränsen. Genom att använda Azure Arc i den här arkitekturen kan vi styra gränstjänster via molnportalen.
Azure AI Vision är en enhetlig tjänst som erbjuder funktioner för visuellt innehåll. I den här arkitekturen används funktionen för bildanalys för att identifiera objekt i viktiga bildrutor i videoströmmen.
Azure Blob Storage är en Microsoft-objektlagringslösning för molnet. I den här arkitekturen används den för att lagra bilder av nyckelramar som extraheras från videoströmmen.
Azure SQL Edge är en liten, kantoptimerad SQL-motor med inbyggd AI. I den här arkitekturen gick vi specifikt till edge-versionen av SQL-motorn för att lagra metadata för bildanalys, vilket höll den nära den tjänst som förbrukar och bearbetar.
Azure Container Registry är ett register över Docker- och Open Container Initiative-avbildningar (OCI) med stöd för alla OCI-artefakter. I den här arkitekturen lagrar registret Docker-containeravbildningar för avvikelseidentifiering och AI Vision-containrar.
Azure Key Vault är en tjänst för säker nyckelhantering i molnet. I den här arkitekturen används den för att lagra hemligheter och nycklar så att systemets logik kan interagera med externa tjänster där hanterad identitet inte är tillgänglig.
Azure Monitor är en omfattande övervakningslösning för att samla in, analysera och svara på övervakningsdata från molnmiljöer och lokala miljöer. I den här arkitekturen är den här tjänsten den primära observerbarhetsplattformen för arbetsbelastningen.
Information om scenario
Den här arkitekturen visar ett system som bearbetar en videoström i realtid, jämför extraherade realtidsdata med en uppsättning referensdata och fattar beslut baserat på resultaten. Det kan till exempel användas för att tillhandahålla schemalagda inspektioner av en inhägnad perimeter runt en säker plats.
Arkitekturen använder Azure Stack Edge för att säkerställa att de mest resursintensiva processerna utförs lokalt, nära videons källa. Den här designen förbättrar avsevärt systemets svarstid, vilket är viktigt när ett omedelbart svar på en avvikelse är kritiskt.
Eftersom delar av systemet distribueras som oberoende containrar i ett Kubernetes-kluster kan du bara skala de nödvändiga undersystemen enligt efterfrågan. Om du till exempel ökar antalet kameror för videoflödet kan du skala containern som ansvarar för videoinmatning och bearbetning för att hantera efterfrågan men behålla resten av klustret på den ursprungliga nivån.
Om du avlastar objektidentifieringsfunktionen till Azure AI-tjänster minskar den expertis som du behöver för att distribuera den här arkitekturen avsevärt. Såvida inte dina krav för objektidentifiering är mycket specialiserade är den färdiga metoden du får från tjänsten Bildanalys tillräcklig och kräver inte kunskaper om maskininlärning.
Potentiella användningsfall
Övervaka säkerheten för en perimeter
Identifiera en osäker arbetsmiljö i en fabrik
Identifiera avvikelser i en automatiserad sammansättningsrad
Upptäcka brist på avsöndringsvätska på flygplan
Att tänka på
Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som du kan använda för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.
Tillförlitlighet
Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör gentemot dina kunder. Mer information finns i Översikt över tillförlitlighetspelare.
En av de största fördelarna med att använda Azure Stack Edge är att du får fullständigt hanterade komponenter på din lokala maskinvara. Alla fullständigt hanterade Azure-komponenter är automatiskt motståndskraftiga på regional nivå.
Om du kör systemet i ett Kubernetes-kluster kan du dessutom avlasta ansvaret för att hålla undersystemen felfria för Kubernetes-orkestreringssystemet.
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.
Microsoft Entra-hanterade identiteter ger säkerhet för alla komponenter i den här arkitekturen. Med hanterade identiteter eliminerar du behovet av att lagra hemligheter i kod- eller konfigurationsfiler. Det förenklar åtkomstkontroll, hantering av autentiseringsuppgifter och rolltilldelning.
Kostnadsoptimering
Kostnadsoptimering handlar om att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.
Om du vill se ett prisexempel för det här scenariot använder du Priskalkylatorn för Azure. De dyraste komponenterna i scenariot är Azure Stack Edge och Azure Kubernetes Service. Dessa tjänster ger kapacitet för att skala systemet för att hantera ökad efterfrågan i framtiden.
Kostnaden för att använda Azure AI-tjänster för objektidentifiering varierar beroende på hur länge systemet körs. Föregående prisexempel baseras på ett system som producerar en avbildning per sekund och fungerar i 8 timmar per dag. En FPS räcker för det här scenariot. Men om systemet behöver köras under längre tidsperioder är kostnaden för att använda Azure AI-tjänster högre:
Prestandaeffektivitet
Prestandaeffektivitet handlar om att effektivt skala arbetsbelastningen baserat på användarnas behov. Mer information finns i Översikt över grundpelare för prestandaeffektivitet.
Eftersom koden distribueras i ett Kubernetes-kluster kan du dra nytta av fördelarna med det här kraftfulla orkestreringssystemet. Eftersom de olika undersystemen är uppdelade i containrar kan du bara skala de mest krävande delarna av programmet. På en grundläggande nivå, med ett inkommande videoflöde, kan systemet bara innehålla en nod i ett kluster. Den här designen förenklar avsevärt den inledande konfigurationen. När efterfrågan på databehandling växer kan du enkelt skala klustret genom att lägga till noder.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudförfattare:
- Nick Sologoub | Huvudansvarig programvaruutvecklingsledare
Övriga medarbetare:
- Mick Alberts | Teknisk författare
- Frédéric Le Coquil | Huvudprogramtekniker
Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.
Nästa steg
Produktdokumentation:
- Objektidentifiering
- Ansvarsfull användning av AI
- Vad är Azure Stack Edge Pro 2?
- Azure Kubernetes Service
- Översikt över Azure Arc
Guidad utbildningsväg:
- Ta Azure-innovation till dina hybridmiljöer med Azure Arc
- Introduktion till Azure Kubernetes Service
- Introduktion till Azure Stack
- Analysera bilder med tjänsten Visuellt innehåll