Voer de code voor machinaal leren uit in een ingebed IoT-knooppunt om eenvoudig objecten te identificeren.
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2020-10-08
Internet of Things (IoT)-netwerken die in dynamische omgevingen opereren, worden uitgebreid met visuele objectidentificatie in toepassingen zoals beveiliging, milieumonitoring, veiligheid en het industriële IoT. Omdat objectidentificatie adaptief is en gebruik maakt van machine learning (ML) modellen, is het een complex veld dat moeilijk kan zijn om van nul te leren en efficiënt te implementeren.
De moeilijkheid vloeit voort uit het feit dat een ML-model slechts zo goed is als zijn dataset, en zodra de juiste gegevens zijn verkregen, moet het systeem goed worden getraind om daarnaar te handelen om praktisch te zijn.
Dit artikel laat ontwikkelaars zien hoe ze Google's TensorFlow Lite voor Microcontrollers ML-model kunnen implementeren in een Microchip Technology-microcontroller. Het zal dan uitleggen hoe de beeldclassificatie en de leersets voor objectdetectie met TensorFlow Lite kunnen worden gebruikt om eenvoudig objecten te identificeren met een minimum aan aangepaste codering.
Het zal dan een TensorFlow Lite ML starterskit introduceren van Adafruit Industries die de ontwikkelaars vertrouwd kan maken met de basis van ML.
ML voor ingebedde vision-systemen
ML in brede zin geeft een computer of een ingebed systeem vergelijkbare patroonherkenningsmogelijkheden als een mens. Vanuit het oogpunt van de menselijke zintuigen betekent dit het gebruik van sensoren zoals microfoons en camera's om de menselijke zintuiglijke waarneming van het gehoor en het zien na te bootsen. Hoewel de sensoren gemakkelijk te gebruiken zijn voor het vastleggen van audio- en visuele gegevens, moeten de gegevens na digitalisering en opslag worden verwerkt, zodat ze kunnen worden vergeleken met opgeslagen patronen in het geheugen die bekende geluiden of objecten weergeven. De uitdaging is dat de beeldgegevens die door een camera voor een visueel object worden vastgelegd, bijvoorbeeld, niet exact overeenkomen met de opgeslagen gegevens in het geheugen voor een object. Een ML-toepassing die het object visueel moet identificeren, moet de gegevens verwerken zodat het nauwkeurig en efficiënt het door de camera vastgelegde patroon kan afstemmen op een patroon dat in het geheugen is opgeslagen.
Er zijn verschillende bibliotheken of motoren die worden gebruikt om de gegevens die door de sensoren worden vastgelegd te matchen. TensorFlow is een open-source codebibliotheek die wordt gebruikt om patronen te matchen. De TensorFlow Lite voor de codebibliotheek van microcontrollers is speciaal ontworpen om op een microcontroller te draaien, en heeft als gevolg daarvan minder geheugen- en CPU-vereisten om op beperktere hardware te draaien. In het bijzonder heeft het een 32-bits microcontroller nodig en gebruikt het minder dan 25 kilobytes (Kbytes) aan flash-geheugen.
Hoewel TensorFlow Lite voor microcontrollers de ML-engine is, heeft het systeem nog steeds behoefte aan een leerset van de patronen die het moet identificeren. Hoe goed de ML-engine ook is, het systeem is slechts zo goed als zijn leerdataset, en voor visuele objecten kunnen sommige van de leerdatasets meerdere gigabytes aan data nodig hebben voor veel grote modellen. Voor meer gegevens zijn hogere CPU-prestaties nodig om snel een nauwkeurige match te vinden. Daarom draaien dit soort toepassingen normaal gesproken op krachtige computers of high-end laptops.
Voor een ingebedde systeemtoepassing zou het alleen nodig moeten zijn om die specifieke modellen in een leerdataset op te slaan die nodig zijn voor de toepassing. Als een systeem verondersteld wordt om gereedschap en hardware te herkennen, dan kunnen modellen die fruit en speelgoed voorstellen worden verwijderd. Dit vermindert de omvang van de lesdataset, wat op zijn beurt de geheugenbehoeften van het ingebedde systeem verlaagt, waardoor de prestaties worden verbeterd en de kosten worden verlaagd.
Een ML-microcontroller
Om TensorFlow Lite voor microcontrollers uit te voeren, is Microchip Technology gericht op machinaal leren in microcontrollers met de Arm® Cortex®-M4F-gebaseerde ATSAMD51J19A-AFT-microcontroller (Afbeelding 1). Het heeft 512 Kbytes aan flashgeheugen met 192 Kbytes aan SRAM-geheugen en draait op 120 megahertz (MHz). De ATSAMD51J19A-AFT maakt deel uit van de Microchip Technology ATSAMD51 ML-microcontrollerfamilie. Het voldoet aan de AEC-Q100-klasse 1 kwaliteitsnormen voor auto's en werkt tussen -40 °C tot +125 °C, waardoor het geschikt is voor de zwaarste IoT- en IIoT-omgevingen. Het is een laagspanningsmicrocontroller en werkt op 120 MHz van 1,71 tot 3,63 volt.
Afbeelding 1: De ATSAMD51J19A is gebaseerd op een Arm Cortex-M4F-kern die op 120 MHz draait. Het is een volwaardige microcontroller met 512 Kbytes flash en 192 Kbytes SRAM. (Bron afbeelding: Microchip Technology)
De ATSAMD51J19A-netwerkopties omvatten CAN 2.0B voor industriële netwerken en 10/100 Ethernet voor de meeste bekabelde netwerken. Hierdoor kan de microcontroller op verschillende IoT-netwerken functioneren. Een USB 2.0-interface ondersteunt zowel de host- als de apparaatmodus en kan worden gebruikt voor het debuggen van apparaten of voor systeemnetwerken.
Een 4 Kbyte gecombineerde instructie- en gegevenscache verbetert de prestaties bij de verwerking van ML-code. Een floating point unit (FPU) is ook nuttig voor het verbeteren van de prestaties van de ML-code en het verwerken van ruwe sensordata.
Opslag van leergegevenssets
De ATSAMD51J19A heeft ook een QSPI-interface voor de opslag van externe programma's of gegevens. Dit is nuttig voor extra gegevensopslag van leerdatasets die de capaciteit van het on-chip flash-geheugen te boven gaan. De QSPI heeft ook eXecute in Place (XiP) ondersteuning voor uitbreiding van het externe hogesnelheidsprogrammageheugen.
De ATSAMD51J19A heeft ook een SD/MMC-geheugenkaart-hostcontroller (SDHC) die zeer nuttig is voor ML-toepassingen, omdat deze het mogelijk maakt om eenvoudig de ML-code en leerdatasets in het geheugen uit te wisselen. Terwijl de TensorFlow Lite voor microcontrollers motor kan draaien in de 512 Kbytes aan flash op de ATSAMD51J19A, kunnen de leerdatasets regelmatig worden geüpgraded en verbeterd. De leergegevensset kan worden opgeslagen in een externe QSPI-flash of QSPI EEPROM en kan, afhankelijk van de netwerkconfiguratie, op afstand worden geüpgraded via het netwerk. Voor sommige systemen kan het echter handiger zijn om een geheugenkaart fysiek uit te wisselen met een andere die een verbeterde leergegevensset heeft. In deze configuratie moet de ontwikkelaar beslissen of het systeem moet worden ontworpen om de geheugenkaart te hot-swappen, of dat het IoT-knooppunt moet worden afgesloten.
Als het IoT-knooppunt extreem beperkt is in de ruimte, dan zou het voordelig zijn om in plaats van extern geheugen zoveel mogelijk van de toepassing in het microcontrollergeheugen te plaatsen. De Microchip Technology ATSAMD51J20A-AFT is vergelijkbaar met en is pin compatibel met de ATSAMD51J19A, behalve dat het 1 Mbyte flash en 256 Kbytes SRAM heeft, waardoor er meer opslagruimte op de chip is voor het leren van datasets.
Ontwikkelen met TensorFlow Lite voor microcontrollers
Adafruit Industries ondersteunt de ontwikkeling van de ATSAMD51J19A met de 4317 TensorFlow Lite voor microcontrollersontwikkelingskit (Afbeelding 2). Het bord heeft 2 Mbytes aan QSPI-flash die gebruikt kunnen worden om leerdatasets op te slaan. De kit wordt geleverd met een microfoonaansluiting voor ML-audioherkenning. Zijn 1,8 inch kleur 160 x 128 TFT LCD kan worden gebruikt voor ontwikkeling en debugging. Het display kan ook worden gebruikt voor spraakherkenningsdemo's wanneer TensorFlow Lite voor microcontrollers wordt gebruikt met een spraakherkenningsleergegevensset. Aangezien de applicatie verschillende woorden herkent, kunnen deze op het scherm worden weergegeven.
De Adafruit Industries kit heeft ook acht drukknoppen, een drie-assige versnellingsmeter, een lichtsensor, een mini-luidspreker en een lithium-poly-batterij. De USB 2.0-poort op de ATSAMD51J19A wordt aangesloten op een connector voor het opladen van de batterij, debuggen en programmeren.
Afbeelding 2: De Adafruit Industries 4317 TensorFlow Lite for microcontrollersontwikkelingskit wordt geleverd met een kleuren TFT LCD voor ontwikkeling en kan de resultaten van ML-bewerkingen weergeven. (Bron afbeelding: Adafruit Industries)
De Adafruit kit wordt geleverd met de nieuwste versie van TensorFlow Lite voor microcontrollers. Leerdatasets kunnen via de USB-poort in de 512 Kbytes flashgeheugen van de ATSAMD51J19A-microcontroller worden geladen of in het externe 2 Mbytes QSPI-geheugen worden geladen.
Voor de evaluatie van de beeldherkenning kan de TensorFlow-objectdetectie-leerset op het ontwikkelbord worden geladen. Het ontwikkelbord heeft poorten voor aansluiting op de parallelle en seriële poorten van de microcontroller, waarvan er veel gebruikt kunnen worden voor aansluiting op een externe camera. Met de leerset voor objectdetectie die op de microcontroller is geladen, kan het LCD-scherm worden gebruikt om de uitvoer van de resultaten van de ML-verwerking van de objectdetectie te tonen, dus als het een banaan herkent, kan het TFT-display de herkende objecten weergeven, samen met een procentuele vertrouwenswaarde. Een voorbeeld van een resultaatweergave kan worden weergegeven als:
Banaan: 95%
Sleutel: 12%
Bril: 8%
Kam: 2%
Voor de ontwikkeling van ivd-objectdetectietoepassingen kan dit de ontwikkeling versnellen en helpen bij de diagnose van onjuiste detectieresultaten.
Conclusie
ML is een groeiend gebied dat gespecialiseerde vaardigheden vereist om microcontrollermotoren en -modellen van de grond af aan te ontwikkelen en efficiënt te implementeren. Het gebruik van een bestaande codebibliotheek zoals TensorFlow Lite voor microcontrollers op goedkope, zeer efficiënte microcontrollers of ontwikkelingskaarten bespaart echter tijd en geld, wat resulteert in een hoogwaardig ML-systeem dat kan worden gebruikt om objecten in een IoT-knooppunt snel, betrouwbaar en efficiënt te detecteren.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.


