Producten herkennen, 4-uur introductietraining Tiny Machine Learning met Arduino/EdgeImpulse

9 februari 2022

Woensdagavond heb ik in een 4 uur durende avondsessie een groep van 7 enthousiaste deelnemers op een praktische wijze kennis laten maken met TensorFlow Lite – Machine Learning. De Arduino TinyML learning kit in combinatie met de online EdgeImpulse toolkit maken een praktische introductie in een avondsessie mogelijk.
Na een globale theoretische introductie neem ik de deelnemers mee in een praktisch rollercoaster langs de accelerator/gyroscoop ‘Magic Wand’ applicatie waar de Harry Potter expelliarmus bewegingen wordt omgezet in een herkende karakters als USB output. Vervolgens wordt met de keyword spotting applicatie ‘Micro Speech’ gebruik gemaakt van de gevoelige MEMS microfoon in een soort ‘Hi Google, Hi Siri, Hi Alexa’ applicatie welke reageert op eigen opgenomen stemmen. Voor de visuele herkenning heb ik een Raspberry PI 4 met webcam aangesloten.

Binnen de online EdgeImpulse toolkit worden 100x beeldopnames gemaakt van 4 producten. Vervolgens doorlopen we de TinyML workflow, kiezen we de processing blocks, learning blocks en worden de output features gedefinieerd. Vanuit de featuredefinitie krijgen we inzicht in de digital signal processing resultaten en kunnen we met de feature explorer zien of de opgenomen fotos voldoende houvast bieden aan het te trainen neurale netwerk. We kiezen voor MobileNetV2 om de input layer van 27.000 features terug te brengen naar een output layer met een 4 classes model.

Nog geen half uur later hebben we een getraind model welke met een nauwkeurigheid van 95,7% kan identificeren welk product er voor de camera gepresenteerd wordt. De quantized int8 modelvoorspelling geeft aan dat er 10x per seconde bepaald kan gaan worden wat voor product er voor de camera staat en dat hiervoor 350kB Ram en 580kB flash geheugen vereist is. Prima uitgangspunten om te kiezen voor een Raspberry 4. We deployen dit getrainde model en gaan naar de presentatieruimte waar de Raspberry opgesteld staat – tezamen met de 4 eerder gefotografeerde producten. Na het runnen van het edge-impulse-linux-runner commando op de Raspberry worden de producten voor de camera direct herkend. En nagenoeg iedere keer met de juiste herkenning!

Dit soort trainingen vind ik erg leuk om te geven. Deelnemers kennis laten maken met nieuwe technieken. Praktisch aan de gang en hands-on neurale netwerken trainen, liefst met eigen geluid, beweging of beeld. Ogen worden geopend, nieuwe toepassingen worden ter plekke bedacht en getest en het creatieve denkproces wordt getriggered.