13.6. Edge Impulse¶
Edge Impulse is een end-to-end platform voor het bouwen van machine-learning-modellen die op microcontrollers draaien: verzamel en label data, ontwerp en train een model in de browser, en laat het optimaliseren zodat het past op een apparaat met geheugen gemeten in kilobytes. Het deployt rechtstreeks naar OpenMV – met een paar klikken wordt een getraind model omgezet in bestanden die klaar zijn om op de camera te draaien. De eigen documentatie van Edge Impulse gaat dieper in op elke stap.
13.6.1. Data binnenkrijgen¶
Een model presteert het best op het soort afbeeldingen waarop het is getraind, dus leg de dataset vast met de camera die het zal uitvoeren. De dataset-editor van de IDE is hier precies voor gemaakt – maak klassemappen aan, leg gelabelde afbeeldingen vast vanuit de live framebuffer en upload de dataset vervolgens rechtstreeks naar een Edge Impulse-project via het Export-submenu (log daar eerst in op je account). Vanaf dat moment werk je in Edge Impulse Studio.
Zie ook
De eigen OpenMV Cam-installatiehandleiding van Edge Impulse voor het installeren van de tools en het aansluiten van de camera.
13.6.2. Trainen¶
Het trainen gebeurt volledig in de browser: ontwerp een impulse (de invoer-, verwerkings- en leerblokken), train deze, en controleer de nauwkeurigheid op de achtergehouden testdata.
Twee modeltypen passen bij de camera. Een afbeeldingsclassificator geeft een lijst met klassescores als uitvoer, die je rechtstreeks uit de uitvoer van het model afleest – er is geen post-processor nodig. FOMO, een snelle objectdetector ontworpen voor microcontrollers, vereist één decoderingsstap, en de camera wordt geleverd met een post-processor daarvoor (ml.postprocessing.edgeimpulse), dus ook die modellen draaien zonder extra code.
13.6.3. Deployen naar de camera¶
Wanneer het trainen klaar is, open je de Deployment-pagina van het project, kies je het doel OpenMV Library en klik je op Build. De download is een zip met het getrainde model (trained.tflite), de bijbehorende labels (labels.txt) en een voorbeeldscript. Het model is integer-gekwantiseerd. Edge Impulse behandelt dit en het alternatief met aangepaste firmware in zijn handleiding voor draaien op OpenMV.
Voeg het .tflite-bestand toe aan de camera met de ROMFS-editor van de IDE, die het converteert voor de NPU van het board als die aanwezig is, en laad het in een script met ml.Model. Modellen draaien ook vanaf de flashschijf van de camera – kopieer de bestanden over en wijs ml.Model naar het pad – maar ROMFS is de betere plek: modellen daar worden rechtstreeks vanuit het flashgeheugen uitgevoerd zonder kopie in RAM.
Zie ook
Het hoofdstuk over machine learning voor het draaien van modellen met de ml-module – laden, de inferentiepijplijn en het decoderen van de uitvoer.