Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

Hoe AI of Things (AIoT) op MCU's te implementeren

In mijn vorige artikel heb ik gewezen op de groeiende trend om steeds meer kunstmatige intelligentie (AI) in internet of (IoT) things-apparaten intelligente 'AIoT'-apparaten te laten maken, en de verschillende toepassingen profiteren van deze intelligente apparaten. Deze leren van data en nemen autonome beslissingen zonder menselijke tussenkomst, waardoor producten meer logische, mensachtige interacties hebben met hun omgeving.

De combinatie van AI en IoT heeft nieuwe markten geopend voor MCU's (microcontrollers). Het heeft een toenemend aantal nieuwe toepassingen en use-cases mogelijk gemaakt die eenvoudige MCU's kunnen gebruiken in combinatie met AI-versnelling om intelligente besturing te vergemakkelijken. Deze AI-compatibele MCU's bieden een unieke mix van DSP-mogelijkheden voor compute en machine learning (ML) voor inferentie en worden nu gebruikt in toepassingen die zo divers zijn als het spotten van trefwoorden, sensorfusie, trillingsanalyse en spraakherkenning. MCU's met hogere prestaties maken complexere toepassingen in visie en beeldvorming mogelijk, zoals gezichtsherkenning, vingerafdrukanalyse en autonome robots.

AI-technologieën

Hier zijn enkele technologieën die AI in IoT-apparaten mogelijk maken:

Machine learning (ML) :Machine learning-algoritmen bouwen modellen op basis van representatieve gegevens, waardoor apparaten automatisch patronen kunnen identificeren zonder menselijke tussenkomst. ML-leveranciers bieden algoritmen, API's en tools die nodig zijn om modellen te trainen die vervolgens in embedded systemen kunnen worden ingebouwd. Deze ingebedde systemen gebruiken vervolgens de vooraf getrainde modellen om gevolgtrekkingen of voorspellingen te genereren op basis van nieuwe invoergegevens. Voorbeelden van toepassingen zijn sensorhubs, keyword-spotting, predictive maintenance en classificatie.

Deep learning :Deep learning is een klasse van machine learning die een systeem traint door vele lagen van een neuraal netwerk te gebruiken om steeds hogere functies en inzichten uit complexe invoergegevens te extraheren. Deep learning werkt met zeer grote, diverse en complexe invoergegevens en stelt systemen in staat om iteratief te leren, waardoor het resultaat bij elke stap verbetert. Voorbeelden van toepassingen die gebruik maken van deep learning zijn beeldverwerking, chatbots voor klantenservice en gezichtsherkenning.

Natuurlijke taalverwerking (NLP) :NLP is een tak van kunstmatige intelligentie die zich bezighoudt met interactie tussen systemen en mensen met behulp van natuurlijke taal. NLP helpt systemen menselijke taal (tekst of spraak) te begrijpen en te interpreteren en op basis daarvan beslissingen te nemen. Voorbeelden van toepassingen zijn spraakherkenningssystemen, machinevertaling en voorspellend typen.

Computervisie :Machine/computer vision is een gebied van kunstmatige intelligentie dat machines traint om beeldgegevens te verzamelen, interpreteren en begrijpen, en op basis van die gegevens actie te ondernemen. Machines verzamelen digitale afbeeldingen/video's van camera's, gebruiken deep learning-modellen en beeldanalysetools om objecten nauwkeurig te identificeren en te classificeren, en ondernemen actie op basis van wat ze 'zien'. Voorbeelden zijn foutdetectie op de lopende band van de productie, medische diagnostiek, gezichtsherkenning in winkels en testen van auto's zonder bestuurder.

AIoT op MCU's

Vroeger was AI de bevoegdheid van MPU's en GPU's met krachtige CPU-cores, grote geheugenbronnen en cloudconnectiviteit voor analyses. In de afgelopen jaren beginnen we echter te zien dat MCU's worden gebruikt in embedded AIoT-applicaties, met een trend naar meer intelligentie aan de rand. De overstap naar de edge wordt gedreven door latentie- en kostenoverwegingen en houdt in dat de berekening dichter bij de gegevens komt te liggen. AI op op MCU gebaseerde IoT-apparaten maakt realtime besluitvorming en snellere reactie op gebeurtenissen mogelijk, en heeft de voordelen van lagere bandbreedtevereisten, lager stroomverbruik, lagere latentie, lagere kosten en hogere beveiliging. AIoT wordt mogelijk gemaakt door een hogere rekencapaciteit van recente MCU's en door de beschikbaarheid van dunne neurale netwerkframeworks (NN) die meer geschikt zijn voor MCU's met beperkte middelen die in deze eindapparaten worden gebruikt.

Een neuraal netwerk is een verzameling knooppunten, gerangschikt in lagen die invoer van een vorige laag ontvangen en een uitvoer genereren die wordt berekend op basis van een gewogen en vooringenomen som van de invoer. Deze output wordt via al zijn uitgaande verbindingen doorgegeven aan de volgende laag. Tijdens de training worden de trainingsgegevens ingevoerd in de eerste of de invoerlaag van het netwerk en de uitvoer van elke laag wordt doorgegeven aan de volgende. De laatste laag of de uitvoerlaag levert de voorspellingen van het model op, die worden vergeleken met de bekende verwachte waarden om de modelfout te evalueren. Het trainingsproces omvat het verfijnen of aanpassen van de gewichten en vooroordelen van elke laag van het netwerk bij elke iteratie met behulp van een proces dat backpropagation wordt genoemd, totdat de output van het netwerk nauw correleert met de verwachte waarden. Met andere woorden, het netwerk "leert" iteratief van de invoergegevensset en verbetert geleidelijk de nauwkeurigheid van de uitvoervoorspelling.

De training van het neurale netwerk vereist zeer hoge rekenprestaties en geheugen en wordt meestal in de cloud uitgevoerd. Na de training wordt dit vooraf getrainde NN-model ingebed in de MCU en gebruikt als een inferentie-engine voor nieuwe binnenkomende gegevens op basis van de training.

Deze inferentiegeneratie vereist veel lagere rekenprestaties dan de training van het model en is dus geschikt voor een MCU. De gewichten van dit vooraf getrainde NN-model zijn vast en kunnen in flash worden geplaatst, waardoor de benodigde hoeveelheid SRAM wordt verminderd en dit geschikt is voor MCU's met meer middelen.

Implementatie op MCU's

De AIoT-implementatie op MCU's omvat een paar stappen. De meest gebruikelijke benadering is om een ​​van de beschikbare neurale netwerk (NN) raamwerkmodellen zoals Caffe of Tensorflow Lite te gebruiken, geschikt voor op MCU gebaseerde eindapparaatoplossingen. De training van het NN-model voor machine learning wordt in de cloud gedaan door AI-specialisten met behulp van tools van AI-leveranciers. De optimalisatie van het NN-model en de integratie op de MCU gebeurt met behulp van tools van de AI-leverancier en de MCU-fabrikant. Inferentie wordt gedaan op de MCU met behulp van het vooraf getrainde NN-model.

De eerste stap in het proces gebeurt volledig offline en omvat het vastleggen van een grote hoeveelheid data van het eindapparaat of de applicatie, die vervolgens wordt gebruikt om het NN-model te trainen. De topologie van het model wordt gedefinieerd door de AI-ontwikkelaar om optimaal gebruik te maken van de beschikbare gegevens en om de output te leveren die nodig is voor die toepassing. Het trainen van het NN-model wordt gedaan door de datasets iteratief door het model te leiden met als doel de fout aan de output van het model continu te minimaliseren. Er zijn tools beschikbaar met het NN framework die hierbij kunnen helpen.

In de tweede stap worden deze vooraf getrainde modellen, geoptimaliseerd voor bepaalde functies zoals trefwoordherkenning of spraakherkenning, omgezet in een formaat dat geschikt is voor MCU's. De eerste stap in dit proces is om het te converteren naar een plat bufferbestand met behulp van de AI-conversietool. Dit kan optioneel door de quantizer worden geleid om de grootte te verkleinen en te optimaliseren voor de MCU. Dit platte bufferbestand wordt vervolgens geconverteerd naar C-code en overgebracht naar de doel-MCU als een uitvoerbaar runtime-bestand.

Deze MCU, uitgerust met het vooraf getrainde embedded AI-model, kan nu worden ingezet in het eindapparaat. Wanneer er nieuwe gegevens binnenkomen, wordt deze door het model gehaald en wordt er een gevolgtrekking gegenereerd op basis van de training. Wanneer er nieuwe dataklassen binnenkomen, kan het NN-model worden teruggestuurd naar de cloud voor hertraining en kan het nieuwe opnieuw getrainde model op de MCU worden geprogrammeerd, mogelijk via OTA (over-the-air) firmware-upgrades.

Er zijn twee verschillende manieren waarop een op MCU gebaseerde AI-oplossing kan worden ontworpen. Voor deze discussie gaan we uit van het gebruik van Arm Cortex-M-kernen in de doel-MCU's.

Bij de eerste methode wordt het geconverteerde NN-model uitgevoerd op de Cortex-M CPU-kern en versneld met behulp van de CMSIS-NN-bibliotheken. Dit is een eenvoudige configuratie die kan worden afgehandeld zonder extra hardwareversnelling en die geschikt is voor de eenvoudigere AI-toepassingen zoals het spotten van trefwoorden, trillingsanalyse en sensorhubs.

Een meer geavanceerde en betere prestatieoptie omvat het opnemen van een NN-versneller of micro neurale verwerkingseenheid (u-NPU) hardware op de MCU. Deze u-NPU's versnellen machine learning in IoT-eindapparaten met beperkte resources en ondersteunen mogelijk compressie die het vermogen en de grootte van het model kan verminderen. Ze ondersteunen operators die de meeste gangbare NN-netwerken volledig kunnen uitvoeren voor audioverwerking, spraakherkenning, beeldclassificatie en objectdetectie. De netwerken die niet door de u-NPU worden ondersteund, kunnen terugvallen op de belangrijkste CPU-kern en worden versneld door de CMSIS-NN-bibliotheken. Bij deze methode wordt het NN-model uitgevoerd op de uNPU.

Deze methoden laten slechts een paar manieren zien om AI in op MCU gebaseerde apparaten op te nemen. Naarmate MCU's de prestatiegrenzen naar hogere niveaus verleggen, dichter bij wat van MPU's wordt verwacht, verwachten we dat volledige AI-mogelijkheden, inclusief lichtgewicht leeralgoritmen en inferentie, rechtstreeks op MCU's worden gebouwd.

AI aan de rand is de toekomst

De implementatie van AI op MCU's met beperkte middelen zal in de toekomst exponentieel toenemen en we zullen nieuwe toepassingen en use-cases blijven zien verschijnen naarmate MCU's de grens op het gebied van prestaties verleggen en de grens tussen MCU's en MPU's vervagen, en meer en meer "dunne" NN modellen, geschikt voor apparaten met beperkte middelen, komen beschikbaar.

In de toekomst, met een toename van de MCU-prestaties, zullen we waarschijnlijk de implementatie van lichtgewicht leeralgoritmen zien naast inferentie, die rechtstreeks op de MCU worden uitgevoerd. Dit zal nieuwe markten en toepassingen openen voor MCU-fabrikanten en zal een gebied van aanzienlijke investeringen voor hen worden.


Internet of Things-technologie

  1. Hoe cloudtechnologie te beveiligen?
  2. Gegevensbeheer stimuleert machine learning en A.I. in IIOT
  3. Hoe u het meeste uit uw gegevens haalt
  4. Hoe AIoT slimme verkeersoplossingen mogelijk maakt
  5. Hoe het internet der dingen de toeleveringsketen transformeert:deel 2, toekomstige oplossingen
  6. Hoe mobiele technologie reisbelemmeringen wegneemt
  7. Hoe data science en machine learning kunnen helpen bij het stimuleren van website-ontwerp
  8. Het internet der dingen:de toestroom van gegevens beheren
  9. Machine learning gebruiken in de hedendaagse zakelijke omgeving
  10. Hoe IoT het voertuigvolgsysteem mogelijk maakt?
  11. Hoe OEM's van medische apparatuur industrie 4.0-bedrijfsmodellen kunnen implementeren