Azure Percept Vision AI-module
Azureeyemodule is de naam van de edge-module die verantwoordelijk is voor het uitvoeren van de AI Vision-workload op Azure Percept DK. Het maakt deel uit van de Azure IoT-suite met Edge-modules en wordt geïmplementeerd op de Azure Percept DK tijdens de installatie. In dit artikel vindt u een overzicht van de module en de architectuur.
Architectuur
De Azure Percept workload op de Azure Percept DK is een C++-toepassing die wordt uitgevoerd in de docker-container azureeyemodule. Er wordt gebruikgemaakt van OpenCV GAPI voor het verwerken van afbeeldingen en het uitvoeren van modellen. Azureeyemodule wordt uitgevoerd op het Operatingr-besturingssysteem als onderdeel van de Azure IoT-suite met modules die op de Azure Percept DK.
De Azure Percept workload is bedoeld om afbeeldingen en uitvoerafbeeldingen en -berichten op te nemen. De uitvoerafbeeldingen kunnen worden gemarkeerd met tekeningen, zoals begrenzendvakken, segmentatiemaskers, labels, en meer. De uitvoerberichten zijn een JSON-stroom van de deferenceresultaten die kan worden opgenomen en gebruikt door downstreamtaken. De resultaten worden aangeboden als een RTSP-stream die beschikbaar is op poort 8554 van het apparaat. De resultaten worden ook verzonden naar een andere module die wordt uitgevoerd op het apparaat, die de RTSP-stroom ingepakt in een HTTP-server, die wordt uitgevoerd op poort 3000. Hoe dan ook, ze zijn alleen te bekijken in het lokale netwerk.
Waarschuwing
Er is geen versleuteling of verificatie met betrekking tot de RTSP-feeds. Iedereen in het lokale netwerk kan precies zien wat de Azure Percept Vision ziet door het juiste adres in een webbrowser of RTSP-mediaspeler te typen.
De Azure Percept workload maakt verschillende functies mogelijk die eindgebruikers kunnen gebruiken:
- Een oplossing zonder code voor veelvoorkomende computer vision-gebruiksgevallen, zoals objectclassificatie en algemene objectdetectie.
- Een geavanceerde oplossing, waarbij een ontwikkelaar een eigen (mogelijk trapsgemodelleerd) getraind model naar het apparaat kan brengen en het kan uitvoeren, waarbij mogelijk resultaten worden doorgeven aan een andere IoT-module van hun eigen creatie die op het apparaat wordt uitgevoerd.
- Een lus voor opnieuw trainen om regelmatig afbeeldingen van het apparaat te halen, het model opnieuw te trainen in de cloud en vervolgens het zojuist getrainde model weer naar het apparaat te pushen. Gebruik de mogelijkheid van het apparaat om modellen op elk apparaat bij te werken en te wisselen.
Ai-workloaddetails
De workloadtoepassing is open source in de github-opslagplaats Azure Percept Advanced Development en bestaat uit veel kleine C++-modules, met een aantal van de belangrijkste:
- main.cpp:stelt alles in en voert vervolgens de hoofdlus uit.
- ioT:deze map bevat modules die binnenkomende en uitgaande berichten van de Azure IoT Edge Hub en de methode voor dubbelupdates verwerken.
- model:deze map bevat modules voor een klassehiërarchie van Computer Vision-modellen.
- kernels:deze map bevat modules voor G-API-kernels, ops en C++-wrapperfuncties.
Ontwikkelaars kunnen aangepaste modules bouwen of de huidige azureeyemodule aanpassen met behulp van deze workloadtoepassing.