22. oktobra, 2020

Enostavno prepoznavanje predmetov z izvajanjem kode strojnega učenja v ugnezdenem IoT vozlišču

Revija logo digikey 300x150 - Enostavno prepoznavanje predmetov z izvajanjem kode strojnega učenja v ugnezdenem IoT vozliščuDigi-Key Electronics
Avtor: Rolf Horn
2020_290_

Omrežja interneta stvari (IoT), ki delujejo v dinamičnih okoljih, se razširjajo onkraj zaznavanja predmetov, da bi vključevala vizualno prepoznavanje predmetov v aplikacijah, kot so varnost, okoljski nadzor, zaščita in industrijski IoT (IIoT). Ker je prepoznavanje predmetov prilagodljivo in vključuje uporabo modelov strojnega učenja (ML), gre za zapleteno polje, zato pri učenju z ničle in učinkoviti implementaciji lahko pride do težav.

Težavnost izvira iz tega, da je model ML le toliko dober, kot je dober njegov nabor podatkov. Ko enkrat pridobite pravilne podatke, morate sistem pravilno usposobiti, da jih bo uporabljal, če želite, da bo praktičen.

V tem članku bo razvijalcem predstavljeno, kako uporabiti model Google TensorFlow Lite for Microcontrollers ML pri mikrokontrolerjuMicrochip Technology. Nato bo razloženo, kako priučene nabore podatkov o klasifikaciji slik in prepoznavanju predmetov uporabiti z modelom TensorFlow Lite, da bi lahko enostavno prepoznali predmete z minimalno količino kodiranja po meri.

Nato bo predstavljen začetni komplet TensorFlow Lite ML proizvajalca Adafruit Industries, prek katerega lahko razvijalci spoznajo osnove ML.

ML za ugnezdene sisteme vida

V širšem smislu ML računalniku ali ugnezdenemu sistemu omogoča podobne zmožnosti prepoznavanja vzorcev, kot jih ima človek. S stališča človeškega zaznavanja to pomeni uporabo senzorjev, na primer mikrofonov in kamer, za posnemanje človeškega zaznavanja – poslušanja in gledanja. Uporaba senzorjev za zajem zvočnih in vizualnih podatkov je enostavna, vendar ko so podatki enkrat digitalizirani in shranjeni, jih je treba obdelati tako, da se jih lahko združi s shranjenimi vzorci v pomnilniku, ki predstavljajo znane zvoke ali predmete. Izziv je v tem, da se slikovni podatki, ki jih na primer zajame kamera za vizualni predmet, ne bodo povsem ujemali s shranjenimi podatki za predmet v pomnilniku. Aplikacija ML, ki mora vizualno prepoznati predmet, mora podatke obdelati tako, da lahko vzorec, ki ga zajame kamera, natančno in učinkovito združi z vzorcem, shranjenim v pomnilniku.

Za ujemanje podatkov, ki jih zajamejo senzorji, se uporabljajo različne knjižnice ali stroji. TensorFlow je odprtokodna knjižnica, ki se uporablja za ujemanje vzorcev. Knjižnica kod TensorFlow Lite for Microcontrollers je posebej zasnovana, da se izvaja v mikrokontrolerju ter ima posledično manjše zahteve po pomnilniku in CPE, da se lahko izvaja z bolj omejeno strojno opremo. Povedano podrobneje, zahteva 32-bitni mikrokontroler in uporablja manj kot 25 kilobajtov (Kb) Flash pomnilnika.

Vseeno pa velja, da medtem ko je TensorFlow Lite for Microcontrollers ML okolje, sistem še vedno potrebuje podatkovni nabor za učenje vzorcev, ki jih mora prepoznati. Ne glede na to, kako dobro je ML okolje, je sistem dober tako, kot je dober njegov podatkovni nabor za učenje, in za vizualne predmete se lahko zgodi, da nekateri podatkovni nabori za učenje potrebujejo več gigabajtov podatkov za številne velike modele. Več podatkov zahteva večjo zmogljivost CPE za hitro iskanje natančnega ujemanja, zaradi česar te vrste aplikacij normalno delujejo v zmogljivih računalnikih ali bolj kakovostnih prenosnikih.

Za aplikacijo ugnezdenih sistemov bi bilo potrebno te specifične modele shraniti le v podatkovni nabor za učenje, ki je nujen za aplikacijo. Če naj bi sistem prepoznaval orodja in strojno opremo, lahko odstranite modele, ki predstavljajo sadje in igrače. S tem se zmanjša velikost podatkovnega nabora za učenje, kar posledično zmanjša potrebe pomnilnika ugnezdenega sistema in tako izboljša učinkovitost ob zmanjšanih stroških.

ML mikrokontroler

Figure 1 300x294 - Enostavno prepoznavanje predmetov z izvajanjem kode strojnega učenja v ugnezdenem IoT vozlišču

Slika 1: ATSAMD51J19A temelji na jedru ARM Cortex-M4F, ki deluje pri 120 MHz. Gre za mikrokontroler z vsemi funkcijami, 512 Kb Flash pomnilnika in 192 Kb SRAM pomnilnika. (Vir slike: Microchip Technology)

Za izvajanje TensorFlow Lite for Microcontrollers družba Microchip Technology cilja na strojno učenje v mikrokontrolerjih z na ARM Cortex-M4F temelječim mikrokontrolerjem ATSAMD51J19A-AFT (slika 1). Ima 512 Kb Flash pomnilnika s 192 Kb SRAM pomnilnika in deluje pri 120 megahertzih (MHz). ATSAMD51J19A-AFT je del družine Microchip Technology ATSAMD51 ML mikrokontrolerjev. Združljiv je z avtomobilskimi standardi kakovosti AEC-Q100 Grade 1 in deluje v temperaturnem razponu od -40 °C do +125 °C, zaradi česar je primeren za najzahtevnejša okolja IoT in IIoT. Gre za nizkonapetostni mikrokontroler, ki deluje v razponu med 1,71 do 3,63 volta pri 120 MHz.

Omrežne možnosti ATSAMD51J19A vključujejo CAN 2.0B za industrijska omrežja in 10/100 Ethernet za večino žičnih omrežij. To mikrokontrolerju omogoča delovanje v različnih IoT omrežjih. USB 2.0 vmesnik podpira način delovanja gostitelja in naprave ter se lahko uporablja za odpravljanje napak v napravah ali sistemska omrežja.

Kombinirani 4 Kb medpomnilnik za navodila in podatke izboljšuje učinkovitost pri obdelavi kode ML. Koprocesor (FPU) je ravno tako koristen za izboljšanje delovanja ML kode ter za obdelovanje surovih podatkov senzorjev.

Shranjevanje podatkovnih naborov za učenje

ATSAMD51J19A ima tudi QSPI vmesnik za zunanji programski ali podatkovni pomnilnik. To je koristno za dodatni podatkovni pomnilnik za podatkovne nabore za učenje, ki presegajo zmogljivost Flash pomnilnika na vezju. QSPI ima tudi podporo eXecute in Place (XiP) za razširitev zunanjega hitrega programskega pomnilnika.

ATSAMD51J19A ima tudi gostiteljski krmilnik za SD/MMC (SDHC) pomnilniške kartice, ki je zelo uporaben za ML aplikacije, saj omogoča enostavno pomnilniško zamenjavo ML kode in podatkovnih naborov za učenje. Medtem ko lahko TensorFlow Lite for Microcontrollers okolje deluje s 512 Kb Flash pomnilnika na ATSAMD51J19A, je mogoče podatkovne nabore za učenje redno nadgrajevati in izboljševati. Podatkovni nabor za učenje je mogoče shraniti na zunanji Flash QSPI ali QSPI EEPROM pomnilnik, ter ga je odvisno od omrežne konfiguracije mogoče nadgraditi na daljavo prek omrežja. Vendar je pri nekaterih sistemih morda priročnejše fizično zamenjati pomnilniško kartico z drugo, ki ima izboljšan podatkovni nabor za učenje. Pri tej konfiguraciji se mora razvijalec odločiti, ali je treba sistem zasnovati za menjavo pomnilniške kartice med delovanjem ali pa je treba IoT vozlišče zaustaviti.

Če je IoT vozlišče zelo prostorsko omejeno, je namesto uporabe zunanjega pomnilnika bolje čim več aplikacije prenesti v pomnilnik mikrokontrolerja. Microchip Technology ATSAMD51J20A-AFT je podoben ATSAMD51J19A in ima z njim združljive priključke, razlika je v tem, da ima 1 Mb Flash pomnilnika in 256 Kb SRAM pomnilnika, kar zagotavlja več pomnilniškega prostora na vezju za podatkovne nabore za učenje.

Razvijanje s kompletom TensorFlow Lite for Microcontrollers

Podjetje Adafruit Industries podpira razvoj ATSAMD51J19A z razvojnim kompletom 4317 TensorFlow Lite for Microcontrollers (slika 2). Plošča ima 2 Mb Flash QSPI pomnilnika, ki se ga lahko uporablja za shranjevanje podatkovnih naborov za učenje. Kompletu je priložena vtičnica za mikrofon za prepoznavanje ML zvoka. Njegov 1,8-palčni barvni zaslon 160 x 128 TFT LCD se lahko uporablja za razvijanje in razhroščevanje. Zaslon se lahko uporablja tudi za predstavitvene posnetke prepoznavanja glasu, kadar se TensorFlow Lite for Microcontrollers uporablja s podatkovnim naborom za učenje prepoznavanja glasu. Medtem ko aplikacija prepoznava različne besede, so lahko te besede prikazane na zaslonu.

Figure 2 300x300 - Enostavno prepoznavanje predmetov z izvajanjem kode strojnega učenja v ugnezdenem IoT vozlišču

Slika 2: Kompletu za razvijanje Adafruit Industries 4317 TensorFlow Lite for Microcontrollers je priložen barvni zaslon TFT LCD za razvijanje, ki lahko prikazuje rezultate ML operacij. (Vir slike: Adafruit)

Komplet Adafruit Industries ima tudi osem tipk, triosni merilnik pospeškov, senzor svetlobe, mini zvočnik in litij-polimer baterijo. USB 2.0 vrata na ATSAMD51J19A se povezujejo s priključkom za polnjenje baterije, odpravljanje napak in programiranje.

Kompletu Adafruit je priložena najnovejša različica TensorFlow Lite for Microcontrollers. Podatkovne nabore za učenje je mogoče naložiti prek USB vrat v 512 Kb Flash pomnilnik  ATSAMD51J19A mikrokontrolerja ali naložiti v zunanji QSPI pomnilnik z zmogljivostjo 2 Mb.

Za razvoj prepoznavanja slik je mogoče na razvojno ploščo naložiti TensorFlow komplet za učenje prepoznavanja predmetov. Razvojna plošča ima vrata za povezovanje z vzporednimi in zaporednimi vrati mikrokontrolerja; številna od teh vrat je mogoče uporabiti za povezovanje z zunanjo kamero. Ko je komplet za učenje zaznavanja predmetov naložen na mikrokontroler, lahko LCD zaslon uporabljate za prikaz izhoda ML rezultatov obdelave za zaznavanje predmetov, tako da če je prepoznana banana, bodo morda na TFT zaslonu prikazani zaznani predmeti skupaj z odstotkom zanesljivosti. Primer prikaza rezultatov je lahko naslednji:

banana: 95 % ključ: 12 % očala: 8 % glavnik: 2 %

 

Pri razvoju aplikacij zaznavanja IoT predmetov lahko to pospeši razvoj in pomaga pri diagnosticiranju morebitnih nepravilnih rezultatov zaznavanja.

Zaključek

ML polje, ki se vse bolj širi, zahteva posebne veščine za razvoj okolja mikrokontrolerjev in modelov iz ničle ter njihovo učinkovito uporabo na robu. Vendar pa uporaba obstoječe knjižnice, kot je TensorFlow Lite for Microcontrollers v cenovno ugodnih, visoko učinkovitih mikrokontrolerjih ali razvojnih ploščah prihrani čas in denar, kar ima za rezultat visoko zmogljiv ML sistem, ki se ga lahko uporablja za hitro, zanesljivo in učinkovito zaznavanje predmetov v IoT vozlišču.

www.digikey.com