Doorgaan met AI: kleuren herkennen

Duur: ca 8 - 12 minuten

Niveau: gevorderd

Auteur: Sjoerd (Makerscoach)

Overig: Kennis van Scratch is mooi meegenomen!


Nu we weten hoe AI grofweg werkt en we een Google AI-robot hebben getraind, gaan we die techniek nu gebruiken om er een beeldend project van te maken waarmee je je omgeving kunt verrassen/verbazen. We gaan een kameleon programmeren die de kleur aanneemt van het voorwerp dat voor de webcam gehouden wordt. 

API-sleutel

We gebruiken de AI-techniek van Clarifai. Ga naar de site en klik op ‘Start now for free’ en maak een gratis account aan. Indien je dat niet wilt of teveel gedoe vindt, kun je onderaan onze API-code gebruiken (daarover later meer), maar het is echt veel leuker om zelf je robot te ontwikkelen en trainen. Eenmaal aangemeld en ingelogd, zie je al een test-applicatie staan. Deze kun je aanpassen, of een nieuwe aanmaken. Het spreekt allemaal wel voor zich, kom je er toch niet uit, klik dan hier.


Als je klaar bent, klik je op je applicatie en zoekt de code in het venster ‘API Keys’. Dit is een sleutel die verbinding legt met een andere website. Op die manier kun je de robot via een andere site trainen/gebruiken, wat we ook gaan doen. We gebruiken een scratch-achtige omgeving, maar met een paar belangrijke toevoegingen waarmee we de AI-robot kunnen koppelen en gebruiken voor ons experiment. 



Robot creëren en trainen

Ga naar: cognimates.me (een Chrome-based browser wordt aanbevolen) en klik op ‘Train Models’ en ‘Train Vision’. Geef je project een naam, bijv. ‘Kameleon’ en voer daaronder de API-sleutel in. Klik bij beide op set en maak vervolgens de categorieën aan. We gaan de robot dit keer drie kleuren leren: rood, groen en blauw bijvoorbeeld. Zorg in elk geval voor kleuren die ver van elkaar af staan. Als je bijv. Paars en Blauw gebruikt, kan het moeilijker worden voor de robot om het (juist) te herkennen. Dit is ook sterk afhankelijk van de foto’s die je de robot ‘voedt’ en de hoeveelheid foto’s. Je kunt op meer manieren trainen, waarbij de laatste de moeilijkste, maar wel de leukste is:

1. Naast je webcam te gebruiken, kun je ook foto’s uploaden. Je kunt simpel via internet op zoek gaan naar een rood, groen en blauw vlak. Download ze naar je computer en upload ze vervolgens in je model.

2. Wat spannender is om verschillende foto’s te gebruiken. Download verschillende foto’s van het internet in die kleur (of verander de kleur van gewone foto’s met Photoshop of het gratis Pixlr.com) en upload ze.

3. Nog leuker is om de foto’s zelf te maken! (Vooral ook om even off-screen te zijn). Bewerk ze met filters, Photoshop of Pixlr.

Test je robot!

Nu is het tijd om de robot te testen, waarvoor Cognimates je meteen een optie geeft. Je kunt weer een afbeelding uploaden, of meteen naar een bestand op het internet linken. Handig!

Vervolgens druk je op ‘Predict’, waarna de AI gaat voorspellen welke kleur er in de foto zit.

En dan… de grote vraag: Is het gelukt?

Het leuke is dat hij meteen aangeeft hoe zeker de AI-bot van zijn zaak is. Dit kan zeker voor bedrijven erg belangrijk zijn. Wil je dat hij heel zeker/nauwkeurig is, zul je meer foto’s moeten aanbieden om te trainen.


Klik door naar het codelab van Cognimates. Misschien herken je de omgeving van Scratch. Echter zijn hier een paar belangrijke dingen aan toegevoegd om met AI te kunnen werken. Links bovenin kun je via het wereldbolletje evt. de taal veranderen en daarnaast een bestand van je computer naar de omgeving uploaden. Download het bestand hieronder (credits: skillsdojo) en upload het daar om de afbeeldingen van de kameleon toe te voegen. Maar let op: voer straks wel je eigen API-sleutel en modelnaam die je eerder opgegeven hebt in.



Programmeren

Nu gaan we het programma maken, indien je niet bekend bent hiermee, kun je evt. de tutorial over scratch doorlopen. Omdat het niet helemaal scratch is, hoef je niet in te loggen maar kun je je programma ook moeilijker delen. Ook zie je onderaan een aantal nieuwe code-categoriën. Maar laten we bij het begin beginnen. Zoek een een start-blok en sleep deze naar het werkveld. Ik gebruik hier ‘wanneer w is ingedrukt’ , met de w van webcam. Daarna geven we de opdracht de webcam aan te zetten. Het codeblok daarvan vind je onder ‘Beeldherkenning training’ en dan ‘zet video aan’.

Omdat een computer razendsnel leest, moeten we de computer even de tijd geven om de webcam aan te zetten voordat hij naar het volgende codeblok gaat. Bij mij werkt 3 sec. het beste.


Vervolgens gaan we weer naar de beeldherkennings-blokken en gaan allereerst verbinding met onze AI-robot maken. Voer hier je API-sleutel in. Daarna kiezen we het juiste model (de AI-robot gebruikt standaard meerdere modellen, dus moeten we hier de juiste selecteren). Ik heb deze Karma Kameleon genoemd, voer hier de naam in die je jouw model eerder hebt gegeven. Daarna dragen we op om een foto te maken via de webcam en daarna de webcam uit te zetten.



We zijn er bijna!

Oké, technisch zijn we al een heel eind! Nu nog ervoor zorgen dat we iets met de gemaakte foto kunnen. We gaan daarvoor naar ‘Uiterlijken‘ en laten de kameleon zeggen welke kleur hij ziet op de foto (de achterliggende AI berekent dus met welke categorie de foto het meeste overeenkomt en dat laten we via dit blok lezen). Test dit door het programma af te spelen en iets van rood, blauw of groen voor je webcam te houden (zorg voor goed licht). 

Visueel maken (laatste stap!)

Als dat gelukt is: gefeliciteerd! Alles werkt zoals het zou moeten werken. Om het nog visueler te maken, gaan we de kameleon ook van kleur laten veranderen. Dit gaan we doen door weer bij de beeldherkennings-blokken te zoeken naar het commando “Als het beeld een…” te zoeken. Sleep deze 3x naar je werkveld en geef bij blok een andere categorie (rood, groen, blauw) op. Vervolgens kun je onder uiterlijken bepalen dat het uiterlijk van de kameleon springt naar de kleur die je wilt.


Lukt het toch niet?

Ga dan voor jezelf na waar het mis kan zijn gegaan. Omdat er veel technische elementen in deze tutorial zitten, kan het op veel plaatsen mis zijn gegaan. Misschien moet je AI-robot beter worden getraind. Gaat de webcam aan? Kloppen je code-blokken en je API-sleutel? Etc. Kom je er niet uit? Mag je ons altijd een bericht sturen, dan kijken we met je mee!

Handige bestanden

Deze tutorial is grotendeels gebaseerd op de missie van Skillsdojo, waarvoor veel dank! Zij hebben de mooie kameleon gemaakt en om deze toe te voegen aan Cognimates, download en upload dit bestand. Je kunt natuurlijk ook zelf iets tekenen of kiezen uit de Scratch-databank.

Wil je mijn AI-robot gebruiken (minder leuk wel!), gebruik dan deze API-code : ddc02ac3cfdc4aa1b13864b406b1680c en voer KarmaKameleon in als model.

Ik hoop dat het lukt, laat het me weten! Zo niet, helpen we je verder.