Kør maskinlæringskode i en indlejret IoT-node for let at identificere objekter

Af Bill Giovino

Bidraget af DigiKeys nordamerikanske redaktører

Internet of Things (IoT) -netværk, der fungerer i dynamiske miljøer, udvides ud over objektdetektering til at omfatte visuel objektidentifikation i applikationer såsom sikkerhed, miljøovervågning, sikkerhed og Industrial IoT (IIoT). Da objektidentifikation er adaptiv og involverer brug af maskinlæring (ML) -modeller, er det et komplekst felt, der kan være svært at lære fra bunden og implementere effektivt.

Vanskeligheden stammer fra det faktum, at en ML-model kun er så god som dens datasæt, og når de korrekte data er erhvervet, skal systemet trænes korrekt til at reagere på det for at være praktisk.

Denne artikel viser udviklere, hvordan man implementerer Googles TensorFlow Lite for Microcontrollers ML-model i enMicrochip Technology mikrocontroller. Derefter forklares det, hvordan man bruger billedklassifikations- og objektdetekteringsindlæringsdatasættene med TensorFlow Lite til let at identificere objekter med et minimum af brugerdefineret kodning.

Derefter introduceres et TensorFlow Lite ML-startsæt fraAdafruit Industries der kan gøre udviklere fortrolig med det grundlæggende i ML.

ML til indlejrede vision-systemer

ML i bred forstand giver en computer eller et integreret system lignende mønstergenkendelsesfunktioner som et menneske. Fra et menneskeligt sensorisk synspunkt betyder det at bruge sensorer såsom mikrofoner og kameraer til at efterligne menneskelige sensoriske opfattelser af hørelse og se. Mens sensorer er nemme at bruge til at optage lyd og visuelle data, skal dataene først behandles, når dataene er digitaliseret og gemt, så de kan matches med gemte mønstre i hukommelsen, der repræsenterer kendte lyde eller objekter. Udfordringen er, at de billeddata, der er optaget af et kamera til et visuelt objekt, f.eks. Ikke nøjagtigt svarer til de lagrede data i hukommelsen for et objekt. Et ML-program, der skal identificere objektet visuelt, skal behandle dataene, så det nøjagtigt og effektivt kan matche det mønster, der er fanget af kameraet, til et mønster, der er gemt i hukommelsen.

Der er forskellige biblioteker eller motorer, der bruges til at matche de data, der er fanget af sensorerne. TensorFlow er et open source-kodebibliotek, der bruges til at matche mønstre. TensorFlow Lite for Microcontrollers kodebibliotek er specielt designet til at køre på en mikrocontroller og har som følge heraf reduceret hukommelses- og CPU-kravene til at køre på mere begrænset hardware. Specifikt kræver det en 32-bit mikrocontroller og bruger mindre end 25 kilobyte (Kbytes) flashhukommelse.

Mens TensorFlow Lite til Microcontrollers er ML-motoren, har systemet dog stadig brug for et læringsdatasæt af de mønstre, det skal identificere. Uanset hvor god ML-motoren er, er systemet kun så godt som dets indlæringsdatasæt, og for visuelle objekter kan nogle af indlæringsdatasættene kræve flere gigabyte data til mange store modeller. Flere data kræver højere CPU-ydeevne for hurtigt at finde et nøjagtigt match, hvorfor disse typer applikationer normalt kører på kraftige computere eller high-end bærbare computere.

For en integreret systemapplikation skal det kun være nødvendigt at gemme de specifikke modeller i et læringsdatasæt, der er nødvendige for applikationen. Hvis et system skal genkende værktøjer og hardware, kan modeller, der repræsenterer frugt og legetøj, fjernes. Dette reducerer størrelsen på indlæringsdatasættet, hvilket igen sænker hukommelsesbehovet i det integrerede system, hvilket forbedrer ydeevnen, samtidig med at omkostningerne reduceres.

En ML-mikrocontroller

For at køre TensorFlow Lite for Microcontrollers er Microchip Technology målrettet maskinindlæring i mikrocontrollere medArm® Cortex®-M4F-baseretATSAMD51J19A-AFT mikrokontroller (figur 1). Den har 512 kbyte flashhukommelse med 192 kbyte SRAM-hukommelse og kører ved 120 megahertz (MHz). ATSAMD51J19A-AFT er en del af Microchip TechnologyATSAMD51 ML-mikrocontroller-familie. Den er i overensstemmelse med AEC-Q100 kvalitetsstandarder til bilindustrien og fungerer over -40 ° C til + 125 ° C, hvilket gør den anvendelig til de hårdeste IoT- og IIoT-miljøer. Det er en lavspændingsmikrocontroller og fungerer fra 1,71 til 3,63 volt, når den kører ved 120 MHz.

Diagram over mikrochip ATSAMD51J19A er baseret på en Arm Cortex-M4F-kerne (klik for at forstørre)Figur 1: ATSAMD51J19A er baseret på en Arm Cortex-M4F-kerne, der kører ved 120 MHz. Det er en fuldt udstyret mikrocontroller med 512 Kbytes flash og 192 Kbytes SRAM. (Billedkilde: Microchip Technology)

ATSAMD51J19A-netværksindstillingerne inkluderer CAN 2.0B til industrielt netværk og 10/100 Ethernet til de fleste kabelforbundne netværk. Dette gør det muligt for mikrocontrolleren at fungere på en række IoT-netværk. En USB 2.0-grænseflade understøtter både værts- og enhedstilstand og kan bruges til fejlfinding af enheder eller systemnetværk.

En 4 Kbyte kombineret instruktions- og datacache forbedrer ydeevnen ved behandling af ML-kode. En floating point-enhed (FPU) er også nyttig til at forbedre ydeevnen af ML-kode samt til behandling af rå sensordata.

Lagring af læringsdatasæt

ATSAMD51J19A har også et QSPI-interface til eksternt program- eller datahukommelseslagring. Dette er nyttigt til ekstra datalagring af indlæringsdatasæt, der overstiger kapaciteten på flash-hukommelsen på chip. QSPI har også eXecute in Place (XiP) understøttelse af ekstern højhastigheds-programhukommelsesudvidelse.

ATSAMD51J19A har også en SD / MMC-hukommelseskort-controller (SDHC), hvilket er meget nyttigt til ML-applikationer, da det giver mulighed for let hukommelsesbytte af ML-kode og indlæringsdatasæt. Mens TensorFlow Lite for Microcontrollers-motoren kan køre i 512 Kbyte flash på ATSAMD51J19A, kan læringsdatasættene opgraderes og forbedres regelmæssigt. Læringsdatasættet kan gemmes i en ekstern QSPI-flash eller QSPI EEPROM og kan, afhængigt af netværkskonfigurationen, opgraderes eksternt via netværket. For nogle systemer kan det imidlertid være mere praktisk at fysisk bytte et hukommelseskort ud med et andet, der har et forbedret læringsdatasæt. I denne konfiguration skal udvikleren beslutte, om systemet skal designes til hot-swap-hukommelseskortet, eller om IoT-noden skal lukkes ned.

Hvis IoT-noden er ekstremt pladsbegrænset, ville det i stedet for at bruge ekstern hukommelse være fordelagtigt at lægge så meget af applikationen som muligt i mikrocontrollerhukommelsen. Microchip Technology ATSAMD51J20A-AFT ligner og er pin-kompatibel med ATSAMD51J19A, bortset fra at den har 1 MB flash og 256 Kbytes SRAM, hvilket giver mere on-chip-lagring til indlæring af datasæt.

Udvikling med TensorFlow Lite for Microcontrollers

Adafruit Industries understøtter udvikling på ATSAMD51J19A med4317 TensorFlow Lite til microcontroller udviklingssæt (figur 2). Kortet har 2 MB QSPI-flash, som kan bruges til at gemme indlæringsdatasæt. Sættet leveres med et mikrofonstik til ML-lydgenkendelse. Dens 1,8 tommer farve 160 x 128 TFT LCD kan bruges til udvikling og fejlretning. Skærmen kan også bruges til stemmegenkendelsesdemoer, når TensorFlow Lite til mikrocontrollere bruges med et indlæringsdatasæt til stemmegenkendelse. Da applikationen genkender forskellige ord, kan de vises på skærmen.

Adafruit Industries-sættet har også otte trykknapper, et tre-akset accelerometer, en lyssensor, en mini-højttaler og et lithium-poly batteri. USB 2.0-porten på ATSAMD51J19A bringes ud til et stik til batteriopladning, debugging og programmering.

Billede af Adafruit Industries 4317 TensorFlow Lite for MicrocontrollersFigur 2: Adafruit Industries 4317 TensorFlow Lite for Microcontrollers udviklingssæt leveres med en farve TFT LCD til udvikling og kan vise resultaterne af ML-operationer. (Billedkilde: Adafruit Industries)

Adafruit-kittet leveres med den nyeste version af TensorFlow Lite for Microcontrollers. Læringsdatasæt kan indlæses ved hjælp af USB-porten i ATSAMD51J19A-mikrocontrollerens 512 kbyte flashhukommelse eller indlæses i den eksterne 2 Mbytes QSPI-hukommelse.

Til evaluering af billedgenkendelse kan TensorFlow-læringssættet til genkendelse af objekter indlæses på udviklingskortet. Udviklingskortet har porte til tilslutning til mikrocontrollerens parallelle og serielle porte, hvoraf mange kan bruges til at oprette forbindelse til et eksternt kamera. Når objektdetekteringsindlæringssættet er indlæst på mikrocontrolleren, kan LCD'et bruges til at vise output af resultaterne af objektdetektering ML-behandlingen, så hvis det genkender en banan, kan TFT-displayet muligvis vise genkendte genstande sammen med en procent tillid. Et eksempel på resultatvisning kan vises som:

Banan: 95%
Skruenøgle: 12%
Briller: 8%
Kam: 2%

Til udvikling af IoT-objektdetekteringsapplikationer kan dette fremskynde udviklingen og hjælpe med at diagnosticere eventuelle forkerte registreringsresultater.

Konklusion

ML er et ekspanderende felt, der kræver specialiserede færdigheder til at udvikle mikrocontrollermotorer og modeller fra bunden og implementere dem effektivt ved kanten. Brug af et eksisterende kodebibliotek som f.eks. TensorFlow Lite for Microcontrollers på billige, meget effektive mikrokontrollere eller udviklingskort sparer dog tid og penge, hvilket resulterer i et højtydende ML-system, der hurtigt kan registrere objekter i en IoT-node, pålideligt og effektivt.

DigiKey logo

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.

Om denne forfatter

Image of Bill Giovino

Bill Giovino

Bill Giovino is an Electronics Engineer with a BSEE from Syracuse University, and is one of the few people to successfully jump from design engineer, to field applications engineer, to technology marketing.

For over 25 years Bill has enjoyed promoting new technologies in front of technical and non-technical audiences alike for many companies including STMicroelectronics, Intel, and Maxim Integrated. While at STMicroelectronics, Bill helped spearhead the company’s early successes in the microcontroller industry. At Infineon Bill orchestrated the company’s first microcontroller design wins in U.S. automotive. As a marketing consultant for his company CPU Technologies, Bill has helped many companies turn underperforming products into success stories.

Bill was an early adopter of the Internet of Things, including putting the first full TCP/IP stack on a microcontroller. Bill is devoted to the message of “Sales Through Education” and the increasing importance of clear, well written communications in promoting products online. He is moderator of the popular LinkedIn Semiconductor Sales & Marketing Group and speaks B2E fluently.

Om udgiveren

DigiKeys nordamerikanske redaktører