In dit artikel wordt beschreven hoe u een mobiele robot gebruikt met een livestreamcamera om verschillende gebruiksvoorbeelden te implementeren. De oplossing implementeert een systeem dat lokaal wordt uitgevoerd in Azure Stack Edge om de videostream en Azure AI-services op te nemen en te verwerken die objectdetectie uitvoeren.
Architectuur
Een Visio-bestand van deze architectuur downloaden.
Workflow
In deze werkstroom wordt beschreven hoe het systeem de binnenkomende gegevens verwerkt:
Een camera die in realtime is geïnstalleerd op de robotstreaming video met behulp van Real Time Streaming Protocol (RTSP).
Een container in het Kubernetes-cluster in Azure Stack Edge leest de binnenkomende stream en splitst video in afzonderlijke afbeeldingen. Een opensource-softwareprogramma met de naam FFmpeg neemt de videostream op en verwerkt deze.
Installatiekopieën worden opgeslagen in het lokale Azure Stack Edge-opslagaccount.
Telkens wanneer een nieuw sleutelframe wordt opgeslagen in het opslagaccount, wordt deze opgehaald door een AI Vision-container. Zie scenariodetails voor meer informatie over de scheiding van logica in meerdere containers.
Wanneer er een sleutelframe uit de opslagcontainer wordt geladen, verzendt de AI Vision-container deze naar Azure AI-services in de cloud. Deze architectuur maakt gebruik van Azure AI Vision, waarmee objectdetectie via afbeeldingsanalyse mogelijk is.
De resultaten van afbeeldingsanalyse (gedetecteerde objecten en een betrouwbaarheidsclassificatie) worden verzonden naar de anomaliedetectiecontainer.
In de container anomaliedetectie worden de resultaten van afbeeldingsanalyse en anomaliedetectie opgeslagen in het lokale Azure SQL Database-exemplaar van Azure Stack Edge voor toekomstig gebruik. Het gebruik van een lokaal exemplaar van de database verbetert de toegangstijd, waardoor vertragingen in gegevenstoegang worden geminimaliseerd.
Gegevensverwerking wordt uitgevoerd om afwijkingen in de binnenkomende realtime videostream te detecteren. Als afwijkingen worden gedetecteerd, wordt in een front-endgebruikersinterface een waarschuwing weergegeven.
Onderdelen
Azure Stack Edge is een door Azure beheerd apparaat dat de rekenkracht, opslag en intelligentie van Azure naar de rand brengt. Deze architectuur gebruikt deze om on-premises Azure-services te hosten, dicht bij de locatie waar anomaliedetectie plaatsvindt, wat de latentie vermindert.
Azure Kubernetes Service (AKS) in Azure Stack Edge. Azure Kubernetes Service (AKS) is een beheerde Kubernetes-service die u kunt gebruiken voor het implementeren en beheren van toepassingen in containers. In deze architectuur gebruiken we een versie van AKS die wordt uitgevoerd op een Azure Stack Edge-apparaat om containers te beheren die verantwoordelijk zijn voor de logica van het systeem.
Azure Arc is een brug die Azure-services uitbreidt naar de rand. Door Azure Arc in deze architectuur te gebruiken, kunnen we edge-services beheren via de cloudportal.
Azure AI Vision is een geïntegreerde service die computer vision-mogelijkheden biedt. In deze architectuur wordt de functie afbeeldingsanalyse gebruikt om objecten in belangrijke frames van de videostream te detecteren.
Azure Blob Storage is een Microsoft-oplossing voor objectopslag voor de cloud. In deze architectuur wordt het gebruikt voor het opslaan van afbeeldingen van sleutelframes die zijn geëxtraheerd uit de videostream.
Azure SQL Edge is een kleine, edge-geoptimaliseerde SQL-engine met ingebouwde AI. In deze architectuur hebben we specifiek de edge-versie van sql-engine gebruikt om metagegevens van afbeeldingsanalyse op te slaan, zodat deze dicht bij de service blijft die gebruikmaakt van en verwerkt.
Azure Container Registry is een register van Docker- en Open Container Initiative-installatiekopieën (OCI), met ondersteuning voor alle OCI-artefacten. In deze architectuur worden Docker-containerinstallatiekopieën opgeslagen voor anomaliedetectie en AI Vision-containers.
Azure Key Vault is een service voor veilig sleutelbeheer in de cloud. In deze architectuur wordt het gebruikt om geheimen en sleutels op te slaan om de logica van het systeem te laten communiceren met externe services waar beheerde identiteit niet beschikbaar is.
Azure Monitor is een uitgebreide bewakingsoplossing voor het verzamelen, analyseren en reageren op bewakingsgegevens uit uw cloud- en on-premises omgevingen. In deze architectuur is deze service het primaire waarneembaarheidsplatform voor de workload.
Scenariodetails
Deze architectuur demonstreert een systeem dat een realtime videostream verwerkt, de geëxtraheerde realtimegegevens vergelijkt met een set referentiegegevens en beslissingen neemt op basis van de resultaten. Het kan bijvoorbeeld worden gebruikt om geplande inspecties van een omheinde omtrek rond een beveiligde locatie te bieden.
De architectuur maakt gebruik van Azure Stack Edge om ervoor te zorgen dat de meest resource-intensieve processen on-premises worden uitgevoerd, dicht bij de bron van de video. Dit ontwerp verbetert de reactietijd van het systeem aanzienlijk, wat belangrijk is wanneer een onmiddellijke reactie op een anomalie kritiek is.
Omdat de onderdelen van het systeem worden geïmplementeerd als onafhankelijke containers in een Kubernetes-cluster, kunt u alleen de vereiste subsystemen schalen op basis van de vraag. Als u bijvoorbeeld het aantal camera's voor de videofeed verhoogt, kunt u de container schalen die verantwoordelijk is voor videoopname en -verwerking om de vraag af te handelen, maar de rest van het cluster op het oorspronkelijke niveau behouden.
Het offloaden van de functionaliteit voor objectdetectie naar Azure AI-services vermindert aanzienlijk de expertise die u nodig hebt om deze architectuur te implementeren. Tenzij uw vereisten voor objectdetectie zeer gespecialiseerd zijn, is de out-of-the-box-benadering die u krijgt van de Image Analysis-service voldoende en is geen kennis van machine learning vereist.
Potentiële gebruikscases
De beveiliging van een perimeter bewaken
Een onveilige werkomgeving in een fabriek detecteren
Afwijkingen in een geautomatiseerde assemblylijn detecteren
Detecteren van een gebrek aan de icing vloeistof op vliegtuigen
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.
Betrouwbaarheid
Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.
Een van de grootste voordelen van het gebruik van Azure Stack Edge is dat u volledig beheerde onderdelen op uw on-premises hardware krijgt. Alle volledig beheerde Azure-onderdelen zijn automatisch tolerant op regionaal niveau.
Bovendien kunt u met het uitvoeren van het systeem in een Kubernetes-cluster de verantwoordelijkheid voor het in orde houden van de subsystemen naar het Kubernetes-indelingssysteem offloaden.
Beveiliging
Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.
Door Microsoft Entra beheerde identiteiten bieden beveiliging voor alle onderdelen van deze architectuur. Als u beheerde identiteiten gebruikt, hoeft u geen geheimen op te slaan in code- of configuratiebestanden. Het vereenvoudigt toegangsbeheer, referentiebeheer en roltoewijzing.
Kostenoptimalisatie
Kostenoptimalisatie gaat over het verminderen van onnodige uitgaven en het verbeteren van operationele efficiëntie. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.
Als u een prijsvoorbeeld voor dit scenario wilt zien, gebruikt u de Azure-prijscalculator. De duurste onderdelen in het scenario zijn Azure Stack Edge en Azure Kubernetes Service. Deze services bieden capaciteit voor het schalen van het systeem om in de toekomst te voldoen aan de toegenomen vraag.
De kosten voor het gebruik van Azure AI-services voor objectdetectie variëren afhankelijk van hoe lang het systeem wordt uitgevoerd. Het voorgaande prijsvoorbeeld is gebaseerd op een systeem dat één installatiekopieën per seconde produceert en gedurende 8 uur per dag werkt. Eén FPS is voldoende voor dit scenario. Als uw systeem echter langer moet worden uitgevoerd, zijn de kosten voor het gebruik van Azure AI-services hoger:
Prestatie-efficiëntie
Prestatie-efficiëntie is de mogelijkheid om op efficiënte wijze uw werkbelasting te schalen om te voldoen aan de vereisten die gebruikers eraan stellen. Zie overzicht van de pijler Prestatie-efficiëntie voor meer informatie.
Omdat de code is geïmplementeerd in een Kubernetes-cluster, kunt u profiteren van de voordelen van dit krachtige indelingssysteem. Omdat de verschillende subsystemen zijn onderverdeeld in containers, kunt u alleen de meest veeleisende onderdelen van de toepassing schalen. Op basisniveau, met één binnenkomende videofeed, kan het systeem slechts één knooppunt in een cluster bevatten. Dit ontwerp vereenvoudigt de eerste configuratie aanzienlijk. Naarmate de vraag naar gegevensverwerking toeneemt, kunt u het cluster eenvoudig schalen door knooppunten toe te voegen.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Nick Sologoub | Principal Software Engineering Lead
Andere Inzenders:
- Mick Alberts | Technische schrijver
- Microsoft Le Coquil | Principal Software Engineer
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
Productdocumentatie:
- Objectdetectie
- Verantwoordelijk gebruik van AI
- Wat is Azure Stack Edge Pro 2?
- Azure Kubernetes Service
- Overzicht van Azure Arc
Begeleide leertraject:
- Azure-innovatie naar uw hybride omgevingen brengen met Azure Arc
- Inleiding tot Azure Kubernetes Service
- Inleiding tot Azure Stack
- Afbeeldingen analyseren met de Computer Vision-service