Rularea codurilor de învățare automatizată într-un nod IoT integrat pentru identificarea simplă a obiectelor

By Bill Giovino

Contributed By DigiKey's North American Editors

Rețelele Internet of Things (IoT) care funcționează în medii dinamice sunt extinse dincolo de detectarea obiectelor, pentru a include identificarea vizuală a obiectelor în aplicații precum securitate, monitorizare de mediu, siguranță și Industrial IoT (IIoT). Deoarece identificarea obiectelor este adaptivă și implică utilizarea modelelor de învățare automatizată (ML), este un domeniu complex care poate fi dificil de învățat de la zero și de implementat eficient.

Dificultatea rezultă din faptul că un model ML depinde de setul său de date, iar după ce se obțin datele corecte, sistemul trebuie instruit în mod corect pentru a putea acționa în baza acestora și pentru a fi practic.

Acest articol va arăta dezvoltatorilor cum să implementeze modelul ML TensorFlow Lite pentru microcontrolere de la Google într-un microcontroler Microchip Technology. Apoi va explica modul de utilizare a seturilor de date de învățare pentru clasificarea imaginilor și detectarea obiectelor cu TensorFlow Lite, pentru identificarea simplă a obiectelor, cu scriere minimă de coduri personalizate.

Ulterior va introduce un kit de începători ML TensorFlow Lite de la Adafruit Industries, care îi poate ajuta pe dezvoltatori să se familiarizeze cu elementele de bază ale ML.

ML pentru sistemele de vedere încorporate

Într-un sens amplu, ML oferă unui computer sau unui sistem încorporat aceleași capacități de recunoaștere a tiparelor ca și ale unui om. Din perspectiva senzorială umană, acest lucru înseamnă utilizarea senzorilor precum microfoanele și camerele video pentru imitarea percepțiilor senzoriale umane ale auzului și văzului. În timp ce senzorii sunt ușor de utilizat pentru înregistrarea datelor audio și vizuale, după digitalizarea și stocarea datelor, acestea trebuie să fie procesate pentru a se putea compara cu tiparele stocate în memorie, care reprezintă sunete sau obiecte cunoscute. Provocarea constă în faptul că datele de imagine înregistrate de o cameră video pentru un obiect vizual, de exemplu, nu se va potrivi exact cu datele stocate în memorie pentru un obiect. O aplicație ML care trebuie să identifice vizual obiectul trebuie să proceseze datele pentru a putea potrivi precis și eficient tiparul capturat de camera video cu un tipar stocat în memorie.

Există biblioteci sau motoare diferite utilizate pentru potrivirea datelor înregistrate de senzori. TensorFlow este o bibliotecă de coduri open-source care este utilizată pentru a găsi tipare similare. Biblioteca de coduri TensorFlow Lite pentru microcontrolere este concepută special pentru a rula pe un microcontroler, iar, drept urmare, are cerințe reduse de memorie și CPU, pentru a putea rula pe hardware mai limitat. În mod special, aceasta necesită un microcontroler de 32 de biți și utilizează mai puțin de 25 kiloocteți (Kbytes) de memorie flash.

Totuși, în timp ce TensorFlow Lite pentru microcontrolere este motorul ML, sistemul încă are nevoie de un set de date de învățare pentru tiparele pe care trebuie să le identifice. Indiferent de cât de bun este motorul ML, sistemul este doar la fel de bun ca și setul său de date de învățare, iar pentru obiectele vizuale, unele seturi de date de învățare pot necesita mai mulți gigaocteți de date pentru multe tipare de mari dimensiuni. Mai multe date necesită o performanță mai mare a CPU-ului, pentru a găsi rapid o potrivire corectă, acesta fiind motivul pentru care aceste tipuri de aplicații rulează în mod normal pe computere puternice sau laptopuri high-end.

Pentru o aplicație a sistemelor încorporate, ar trebui să fie necesară stocarea doar a acelor modele specifice într-un set de date de învățare care sunt necesare pentru aplicație. Dacă un sistem trebuie să recunoască instrumente și hardware, atunci modelele care reprezintă fructe și jucării pot fi eliminate. Acest lucru reduce dimensiunea setului de date de învățare, care, în schimb, scade cerința de memorie a sistemului încorporat, îmbunătățind astfel performanța și reducând costurile.

Un microcontroler ML

Pentru a rula TensorFlow Lite pentru microcontrolere, Microchip Technology vizează învățarea automatizată în microcontrolere, cu microcontrolerul ATSAMD51J19A-AFT bazat pe Arm® Cortex®-M4F (Figura 1). Acesta are 512 Kbytes de memorie flash, cu 192 Kbytes de memorie SRAM și rulează la 120 megahertzi (MHz). ATSAMD51J19A-AFT face parte din familia de microcontrolere ML ATSAMD51 de la Microchip Technology. De asemenea, acesta respectă standardele de calitate AEC-Q100 de gradul 1 pentru industria auto și funcționează la temperaturi cuprinse între -40 °C și +125 °C, ceea ce îl face potrivit pentru cele mai solicitante medii IoT și IIoT. Este un microcontroler de joasă tensiune și funcționează în intervalul cuprins între 1,71 și 3,63 volți, la 120 MHz.

Schema ATSAMD51J19A Microchip se bazează pe un nucleu Arm Cortex-M4F (faceți clic pentru a mări imaginea)Figura 1: ATSAMD51J19A se bazează pe un nucleu Arm Cortex-M4F care funcționează la 120 MHz. Este un microcontroler cu funcții complete, cu 512 Kbytes de memorie flash și 192 Kbytes de memorie SRAM. (Sursă imagine: Microchip Technology)

Opțiunile de conectare în rețea ale ATSAMD51J19A includ CAN 2.0B pentru rețele industriale și 10/100 Ethernet pentru majoritatea rețelelor prin cablu. Acest lucru permite microcontrolerului să funcționeze într-o varietate de rețele IoT. O interfață USB 2.0 acceptă modurile de funcționare atât pentru gazdă, cât și pentru dispozitiv și poate fi utilizată pentru depanarea dispozitivelor sau conectarea în rețea a sistemului.

O memorie cache combinată pentru instrucțiuni și date, de 4 Kbyte, îmbunătățește performanța în timpul procesării codului ML. De asemenea, o unitate cu punct flotant (FPU) este utilă pentru îmbunătățirea performanței unui cod ML, precum și pentru procesarea datelor neprelucrate ale senzorilor.

Stocarea seturilor de date de învățare

ATSAMD51J19A are și o interfață QSPI pentru stocarea programelor sau a datelor în memorie externă. Acest lucru este util pentru stocarea suplimentară a datelor de învățare care depășesc capacitatea memoriei flash integrate. QSPI are și compatibilitate eXecute in Place (XiP) pentru expansiunea memoriei externă pentru programe de viteză ridicată.

ATSAMD51J19A are și un controler de găzduire a cardului de memorie SD/MMC (SDHC), care este foarte util pentru aplicațiile ML, deoarece permite comutarea simplă a memoriei pentru codul ML și a seturilor de date de învățare. În timp ce motorul TensorFlow Lite pentru microcontrolere poate rula cu 512 Kbytes de memorie flash pe ATSAMD51J19A, seturile de date de învățare pot fi supuse upgrade-urilor și îmbunătățite în mod regulat. Setul de date de învățare poate fi stocat pe o memorie flash QSPI externă sau pe QSPI EEPROM, și, în funcție de configurarea rețelei, se poate face upgrade la distanță pentru acesta, prin rețea. Totuși, pentru unele sisteme poate fi mai simplu să se schimbe fizic cardul de memorie cu un altul care are un set de date de învățare îmbunătățit. În această configurație, dezvoltatorul trebuie să decidă dacă sistemul trebuie conceput pentru schimbarea cardului de memorie fără oprire, sau dacă nodul IoT trebuie oprit.

Dacă nodul IoT este foarte limitat de spațiu, atunci în loc de utilizarea memoriei externe ar fi mai avantajos să se stocheze cât mai mult posibil din aplicație în memoria microcontrolerului. ATSAMD51J20A-AFT de la Microchip Technology este similar cu ATSAMD51J19A, și este compatibil cu configurația pinilor acestuia, cu excepția faptului că are 1 Mbyte de memorie flash și 256 Kbytes de SRAM, oferind mai mult spațiu de stocare integrat pentru seturile de date de învățare.

Dezvoltarea cu TensorFlow Lite pentru microcontrolere

Adafruit Industries susține dezvoltarea pe ATSAMD51J19A cu kitul de dezvoltare 4317 TensorFlow Lite pentru microcontrolere (Figura 2). Placa are 2 Mbytes de memorie flash QSPI, care se poate utiliza pentru stocarea seturilor de date de învățare. Kitul este prevăzut cu un conector Jack de microfon pentru recunoașterea audio ML. Ecranul său color LCD TFT de 1,8 inch, 160 x 128, poate fi utilizat pentru dezvoltare și depanare. De asemenea, afișajul poate fi utilizat și pentru demonstrațiile de recunoaștere vocală atunci când TensorFlow Lite pentru microcontrolere se utilizează cu un set de date de învățare pentru recunoaștere vocală. În timp ce aplicația recunoaște diferite cuvinte, acestea pot fi și afișate pe ecran.

În plus, kitul Adafruit Industries are și opt butoane de apăsare, un accelerometru cu trei axe, un senzor de lumină, o mini-boxă și baterie cu polimer de litiu. Portul USB 2.0 de pe ATSAMD51J19A este extins la un conector pentru încărcarea bateriei, depanare și programare.

Imagine cu 4317 TensorFlow Lite pentru microcontrolere de la Adafruit IndustriesFigura 2: kitul de dezvoltare 4317 TensorFlow Lite pentru microcontrolere Adafruit Industries este prevăzut cu un ecran LCD TFT color pentru dezvoltare pe care se pot afișa rezultatele operațiunilor ML. (Sursă imagine: Adafruit Industries)

Kitul Adafruit este prevăzut cu cea mai recentă versiune a TensorFlow pentru microcontrolere Seturile de date de învățare pot fi încărcate prin portul USB în memoria flash de 512 Kbytes a microcontrolerului ATSAMD51J19A sau pot fi încărcate în memoria QSPI externă de 2 Mbytes.

Pentru evaluarea recunoașterii imaginilor, setul de învățare pentru detectarea obiectelor TensorFlow poate fi încărcat în placa de dezvoltare. Placa de dezvoltare are porturi pentru conectarea la porturile în paralel și în serie ale microcontrolerului, multe dintre care pot fi utilizate pentru conectare la o cameră video externă. După ce s-a încărcat setul de învățare pentru detectarea obiectelor pe microcontroler, LCD-ul poate fi utilizat pentru a afișa ieșirea rezultatelor procesării ML pentru detectarea obiectelor, așadar, dacă se recunoaște o banană, ecranul TFT poate afișa obiectele recunoscute, împreună cu un procent de încredere. Un exemplu de rezultate afișate poate arăta ca mai jos:

Banană: 95%
Cheie franceză: 12%
Ochelari: 8%
Pieptene: 2%

Pentru dezvoltarea aplicațiilor de detectare a obiectelor IoT, acest lucru poate accelera dezvoltarea și poate ajuta la diagnosticarea oricăror rezultate de detectare incorecte.

Concluzie

ML este un domeniu aflat în continuă dezvoltare care necesită abilități specializate pentru dezvoltarea de la zero a motoarelor și modelelor pentru microcontrolere și implementarea acestora în mod eficient pe marginea plăcilor. Totuși, utilizarea unei biblioteci de coduri existente, precum TensorFlow pentru microcontrolere, pe microcontrolerele sau plăcile de dezvoltare ieftine și de eficiență ridicată economisește timp și bani, rezultând într-un sistem ML de performanță ridicată care poate fi utilizat pentru a detecta rapid, sigur și eficient obiectele dintr-un nod IoT.

Pentru mai multe informații despre TensorFlow și ML, accesați maker.io și consultați aceste proiecte:

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.

About this author

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.

About this publisher

DigiKey's North American Editors