13.6. Edge Impulse¶
Edge Impulse este o platformă completă pentru construirea de modele de învățare automată care rulează pe microcontrolere: colectarea și etichetarea datelor, proiectarea și antrenarea unui model în browser și optimizarea acestuia pentru a încăpea pe un dispozitiv măsurat în kiloocteți. Se implementează direct pe OpenMV – câteva clicuri transformă un model antrenat în fișiere gata de rulat pe cameră. Propria documentație a Edge Impulse detaliază fiecare etapă.
13.6.1. Aducerea datelor¶
Un model funcționează cel mai bine pe tipul de imagini pe care a fost antrenat, așa că surprindeți setul de date cu camera care îl va rula. Editorul de set de date din IDE este conceput exact pentru asta – creați foldere de clase, capturați imagini etichetate din tamponul de cadre (frame buffer) live, apoi încărcați setul de date direct într-un proiect Edge Impulse din submeniul Export (autentificați-vă mai întâi în contul vostru de acolo). Din acel moment lucrați în Edge Impulse Studio.
Vezi și
Propriul ghid de configurare OpenMV Cam al Edge Impulse pentru instalarea instrumentelor și conectarea camerei.
13.6.2. Antrenare¶
Antrenarea are loc în întregime în browser: proiectați un impulse (blocurile de intrare, procesare și învățare), îl antrenați și verificați acuratețea pe datele de test reținute.
Două tipuri de modele se potrivesc camerei. Un clasificator de imagini produce o listă de scoruri de clasă, pe care le citiți direct din ieșirea modelului – fără a fi necesar un post-procesor. FOMO, un detector de obiecte rapid conceput pentru microcontrolere, are nevoie de o etapă de decodare, iar camera include un post-procesor pentru el (ml.postprocessing.edgeimpulse), așa că acele modele rulează tot fără cod suplimentar.
13.6.3. Implementarea pe cameră¶
Când antrenarea se încheie, deschideți pagina Deployment a proiectului, alegeți ținta OpenMV Library și faceți clic pe Build. Descărcarea este un fișier zip care conține modelul antrenat (trained.tflite), etichetele sale (labels.txt) și un script exemplu. Modelul este cuantizat pe întregi. Edge Impulse acoperă acest aspect și alternativa cu firmware personalizat în ghidul său de rulare pe OpenMV.
Adăugați fișierul .tflite pe cameră cu editorul ROMFS din IDE, care îl convertește pentru NPU-ul plăcii atunci când aceasta are unul, și încărcați-l într-un script cu ml.Model. Modelele rulează și de pe unitatea flash a camerei – copiați fișierele și indicați calea către ml.Model – dar ROMFS este locul mai potrivit: modelele de acolo se execută direct din memoria flash, fără o copie în RAM.
Vezi și
Capitolul despre învățarea automată pentru rularea modelelor cu modulul ml – încărcarea, conducta de inferență și decodarea ieșirii.