Noțiuni de bază privind TinyML − Explorarea kiturilor de evaluare

by donpedro

În acest ultim articol, care explorează TinyML, evidențiem doar câteva dintre kiturile hardware de evaluare disponibile pentru a vă ajuta să începeți prima aplicație de învățare automată bazată pe microcontroler.

Figura 1: Kitul de viziune Google AIY (© Google) 

Partea 2 a acoperit câteva dintre bibliotecile populare de învățare automată și resursele de flux de lucru pentru utilizare cu TinyML, inclusiv Google TensorFlow Lite pentru microcontrolere și Edge Impulse. Kiturile de dezvoltare și plăcile de evaluare prezentate în acest articol sunt susținute de aceste resurse, ceea ce le face un punct de plecare ideal pentru primul vostru proiect.

Aplicațiile potențiale pentru TinyML sunt practic nelimitate. În fiecare zi, inovatorii și inginerii transformă ideile în realitate cu ajutorul microcontrolerelor de mică putere. Abilitatea de a efectua inferențe pe microcontrolere cu resurse minime este responsabilă pentru generarea unei creșteri a dispozitivelor edge IIoT (Industry Internet of Things). Un exemplu este un senzor wireless de monitorizare a stării motorului alimentat de la baterie, care utilizează un accelerometru MEMS (micro-electro-mechanical system) compact și un algoritm de rețea neurală pentru a măsura modificările semnăturilor de vibrații. Deoarece utilizează o baterie și nu necesită o rețea de comunicație prin cablu și nici alimentare de la rețea, implementarea este fără efort și implică costuri minime. Un alt exemplu este un dispozitiv compact de monitorizare a culturilor. Utilizarea unei rețele de comunicație cu rază lungă de acțiune și cu consum redus de putere (LPWAN), cum ar fi LoRaWAN, este ideală pentru implementarea la distanță a unor astfel de senzori.

Platforme TinyML

Kitul de viziune Google AIY

Poate că cea mai integrată și gata de a construi o platformă de învățare automată este kitul de viziune Google AIY − vezi figura 1.

Este livrat într-o carcasă de carton robustă, dar simplă, și include popularul calculator pe o singură placă Raspberry Pi Zero. Kitul conține toate componentele hardware, cablajul și firmware-ul pentru a crea un dispozitiv de viziune cu rețea neurală care poate detecta fețele, determina emoțiile și recunoaște un set de 1.000 de obiecte cotidiene. Pe lângă Raspberry Pi Zero, kitul cuprinde o cameră Raspberry Pi V2, o placă Google Vision Bonnet (Hat), precum și toate cablurile de care aveți nevoie. Google Vision Bonnet utilizează o unitate de procesare vizuală (VPU) Intel Movidius Myriad 2 MA2450 cu consum redus de putere pentru a efectua sarcini de inferență de procesare a imaginilor. Un LED multicolor și o sonerie piezoelectrică oferă ieșiri vizuale și sonore din kit.

Figura 2: Ieșirile terminalului de clasificare a imaginilor (© Google)

Nu este necesară nicio conexiune la internet pentru ca algoritmii de detecție vizuală să funcționeze. Un site web de asistență oferă un tutorial pas cu pas pentru configurarea kitului și implementarea tuturor exemplelor de rețele neurale Google TensorFlow Lite furnizate.

Primul demo abordat în tutorial este modelul de detectare a bucuriei. LED-ul de pe kit se aprinde odată ce camera a detectat fața unei persoane. Un zâmbet schimbă culoarea LED-ului în galben, iar o încruntare transformă LED-ul în albastru. Dacă zâmbetul este larg, atunci soneria piezoelectrică emite un sunet. Dacă sunt detectate mai multe fețe, ieșirile LED și piezo corespund scorurilor agregate ale tuturor expresiilor faciale.

Demonstrația de recunoaștere a imaginilor obiectelor necesită o conexiune la Raspberry Pi pentru a primi mesajele de ieșire. Utilizatorii pot realiza acest lucru prin conectarea unui ecran HDMI la Raspberry Pi sau prin realizarea unei conexiuni SSH de la un alt computer. Tutorialul acoperă ambele metode de conectare. În cazul în care se utilizează un ecran HDMI, vor fi necesare și o tastatură și un mouse.

Figura 2 ilustrează ieșirea terminalului de la algoritmul de clasificare a imaginilor care arată probabilitățile.

Figura 3: Placa de dezvoltare SparkFun 15170 (© SparkFun)

Placa de dezvoltare SparkFun 15170

O altă platformă de evaluare care trebuie evidențiată este placa de dezvoltare SparkFun 15170 − vezi figura 3. Proiectată în cadrul unei colaborări comune TinyML cu Google, această placă consumă considerabil mai puțină putere decât kitul Google AIY.

Sistemul 15170 utilizează microcontrolerul Ambiq Apollo3 Blue ARM Cortex pe 32-biți cu consum ultra-redus de putere, care încorporează tehnologia SPOT (Subthreshold Power Optimised Technology) patentată de Ambiq. Funcționând la o frecvență de 48 MHz, cu posibilitatea de a crește la 96 MHz în modul ‘burst’, profilul consumului de putere este de 6uA/MHz. Alături de microcontroler se află și un transceiver wireless BLUETOOTH® Low Energy (BLE5). Placa integrează în plus un accelerometru cu 3 axe ST LIS2DH de la STMicroelectronics și două microfoane MEMS de la Knowles. Un conector OV7670 pentru cameră, patru pini GPIO, patru LED-uri de utilizator, un buton pentru utilizator și un conector FTDI pentru programare serială au fost, de asemenea, adăugate pe placă. Platforma poate opera timp de zece zile fiind alimentată de la o singură baterie tip monedă, datorită unui consum de curent de 1,6 mA la 3V.

Cititorii pot găsi un exemplu de aplicație de declanșare prin comandă vocală pe baza plăcii 15170 în arhiva CodeLab de la Google. Exemplul utilizează TensorFlow Lite pentru microcontrolere explicat în partea 2 a seriei − TinyML. Acesta folosește o rețea neurală convoluțională pentru a detecta “da” și “nu” și aprinde un LED diferit pentru a indica rezultatul.

Cei care doresc să exploreze alte exemple de aplicații TinyML le pot găsi în cartea TinyML scrisă de Pete Warden și Daniel Situnayake. Cititorii vor găsi, de asemenea, multe resurse și cursuri valoroase vizitând site-ul web al TinyML Foundation.

Figura 4: Kitul Discovery 32F746G de la STMicroelectronics (© STMicroelectronics)

Kitul Discovery 32F746G de la STMicroelectronics

O altă placă de dezvoltare evidențiată în cartea TinyML este STM 32F746G Discovery Kit − vezi figura 4. Deși este dotată cu mult mai multe resurse decât necesită un dispozitiv cu senzori edge, aceasta este o platformă excelentă pentru a proiecta o aplicație TinyML. Placa utilizează microcontrolerul STM32F746NGH6 prevăzut cu mai multe funcții de consum redus de putere și moduri de veghe, acesta fiind ideal pentru dezvoltarea și implementarea dispozitivelor edge cu consum redus de putere. Caracteristicile cheie ale kitului Discovery includ un ecran tactil capacitiv LCD-TFT color de 4,3 inch 480 × 272, două microfoane STM MEMS, 128 Mbiți de memorie Quad-SPI Flash și 64 Mbiți de memorie SDRAM, o interfață de depanare ST-Link și ieșiri de difuzoare stereo. Interfețele periferice și conectivitatea includ USB, port COM virtual, SPDIF, conectori Arduino Uno V3 și o mufă Ethernet. Placa oferă suport prin intermediul STM32Cube IDE de la ST și prin setul cuprinzător de biblioteci CubeMX. Un videoclip introductiv care prezintă această placă de evaluare este disponibil pe canalul YouTube al Mouser.

Ecranul LCD este deosebit de util pentru proiectele de învățare automată care necesită o indicație vizuală mai mare a rezultatelor unui model propus în timpul antrenării și testării.

Figura 5: Kitul de start pentru dezvoltarea de dispozitive IoT − Thunderboard Sense 2 (© Silicon Labs)

Kit de dezvoltare IoT Thunderboard Sense 2 de la Silicon Labs

Ultima placă de dezvoltare TinyML evidențiată în acest articol este Thunderboard Sense 2 de la Silicon Labs − vezi figura 5. În centrul Thunderboard Sense 2 se află sistemul pe cip (SoC) wireless EFR32 Mighty Gecko de la Silicon Labs. Radioul de 2,4 GHz suportă mai multe protocoale, inclusiv BLE, Thread și Zigbee. Microcontrolerele din seria EFR32 oferă un consum de putere extrem de redus și sunt ideale pentru multe aplicații IIoT/IoT. Placa găzduiește, de asemenea, o gamă completă de senzori, inclusiv de umiditate relativă și temperatură, de presiune atmosferică, de calitate a aerului interior și pentru emisii de gaze, de lumină ambientală și UV, microfoane digitale, un senzor cu efect Hall și un senzor MEMS cu 6 axe cu giroscop și accelerometru. Caracteristicile suplimentare ale Sense 2 includ un depanator Segger J-Link, un port COM virtual USB și LED-uri de înaltă luminozitate.

Figura 6

Thunderboard Sense 2 este una dintre plăcile de dezvoltare acceptate de Edge Impulse, o platformă integrată care permite instruirea, testarea și implementarea aplicațiilor de învățare automată cu microcontrolere încorporate.

În cadrul Edge Impulse, sunt disponibile numeroase modele cu care puteți experimenta, de exemplu, recunoașterea continuă a mișcării în vederea recunoașterii gesturilor. Figura 6 evidențiază abordarea utilizată pentru a ghida inovatorul prin procesul de dezvoltare.

Pentru a pregăti placa țintă pentru utilizarea cu Edge Impulse este necesară găzduirea mai multor instrumente pe computerul de dezvoltare pentru a asista procesul de achiziție a datelor. Colectarea datelor poate fi realizată, de asemenea, utilizând diverse surse − vezi figura 7.

Figura 7: Opțiunile de achiziție de date ale Edge Impulse (© Edge Impulse)

TinyML − Sunteți pregătit să începeți?

În această serie de articole am prezentat conceptele TinyML, am explicat resursele, bibliotecile și metodele online și am evidențiat plăcile de dezvoltare adecvate.

Oricare ar fi ‘aplicația edge’ pe care doriți să o realizați, veți descoperi că una dintre plăcile evidențiate în acest articol ar trebui să se potrivească cerințelor voastre. Dacă aveți nevoie de mai multă inspirație, s-ar putea să vă fie de ajutor unele dintre exemplele de proiecte de învățare automată de la Mouser. Un exemplu este o aplicație de verificare a poziției etichetelor pentru utilizare pe o linie de ambalare care folosește platforma Edge Impulse.

Este timpul să începeți dezvoltarea!


Autor
:
Mark Patrick

 

 

Mouser Electronics
Authorised Distributor
www.mouser.com
Urmărește-ne pe Twitter

S-ar putea să vă placă și