13.6. Edge Impulse

Edge Impulse är en heltäckande plattform för att bygga maskininlärningsmodeller som körs på mikrokontroller: samla in och etikettera data, utforma och träna en modell i webbläsaren och få den optimerad för att rymmas på en enhet med minne mätt i kilobyte. Den distribuerar direkt till OpenMV – med några få klick förvandlas en tränad modell till filer som är redo att köras på kameran. Edge Impulses egen dokumentation går djupare in på varje steg.

13.6.1. Få in data

En modell presterar bäst på den typ av bilder den tränades på, så fånga datamängden med den kamera som ska köra den. IDE:ns datamängdsredigerare är byggd just för detta – skapa klassmappar, fånga etiketterade bilder från den direktsända bildbufferten och ladda sedan upp datamängden direkt till ett Edge Impulse-projekt från undermenyn Export (logga in på ditt konto där först). Från den punkten arbetar du i Edge Impulse Studio.

Se även

Edge Impulses egen installationsguide för OpenMV Cam för att installera verktygen och ansluta kameran.

13.6.2. Träning

Träningen sker helt i webbläsaren: utforma en impulse (in-, bearbetnings- och inlärningsblocken), träna den och kontrollera noggrannheten på de undanhållna testdata.

Två modelltyper passar kameran. En bildklassificerare ger en lista med klasspoäng som utdata, vilka du läser direkt från modellens utdata – ingen efterbehandlare behövs. FOMO, en snabb objektdetektor utformad för mikrokontroller, behöver ett avkodningssteg, och kameran levereras med en efterbehandlare för det (ml.postprocessing.edgeimpulse), så även dessa modeller körs utan extra kod.

13.6.3. Distribuera till kameran

När träningen är klar öppnar du projektets sida Deployment, väljer målet OpenMV Library och klickar på Build. Nedladdningen är en zip-fil som innehåller den tränade modellen (trained.tflite), dess etiketter (labels.txt) och ett exempelskript. Modellen är heltalskvantiserad. Edge Impulse behandlar detta och alternativet med anpassad fast programvara i sin guide kör på OpenMV.

Lägg till .tflite-filen till kameran med IDE:ns ROMFS-redigerare, som konverterar den för kortets NPU när det har en sådan, och ladda den i ett skript med ml.Model. Modeller körs också från kamerans flashenhet – kopiera över filerna och peka ml.Model mot sökvägen – men ROMFS är det bättre hemmet: modeller där körs direkt från flashminnet utan en RAM-kopia.

Se även

kapitlet om maskininlärning för att köra modeller med modulen ml – inläsning, inferenspipelinen och avkodning av utdata.