ID.nl logo
Huis

Corrigeer de kleuren van je video

De meeste videobewerkingsprogramma’s voor consumenten beschikken niet over de juiste middelen om kleuren in video te kunnen corrigeren. Maar er is een goed gratis alternatief; Davinci Resolve Lite.

Om een videomontage te perfectioneren is kleurcorrectie vrijwel altijd noodzakelijk. Het stelt je niet alleen in staat om de belichting te veranderen, contrasten te vergroten of om kleurzwemen te corrigeren, maar ook om een geheel eigen sfeer te creëren door kleuren te veranderen.
Davinci Resolve Lite is een kleurcorrectiepakket dat je gratis kunt downloaden op blackmagicdesign.com. Dit pakket biedt zoveel professionele mogelijkheden om kleuren te corrigeren, dat geen enkel consumentenvideobewerkingspakket hieraan kan tippen. Davinci Resolve Lite beschikt over verschillende scopes om helderheid en kleuren te kunnen beoordelen en je kunt zowel primaire als secundaire kleurcorrecties uitvoeren.
In deze workshop zullen we de basisworkflow van het pakket beschrijven aan de hand van een aantal oefeningen. Om het je makkelijker te maken deze workshop te volgen, kan je op pcmweb.nl/davinci de oefenbestanden waarmee we werken downloaden.

Als je klaar bent met het project, dan kan je klikken op het tabblad Deliver om de clips te exporteren. Standaard exporteer je de tijdlijn als geheel, maar als je onder de Output de optie Individual Source clips selecteert, dan worden alle clips apart geëncodeerd.


Het Quicktime H.264-formaat is meestal de handigste optie om naartoe te exporteren.

 

Het werken met verschillende Nodes voor verschillende correcties bespaart je tijd, doordat je niet elke keer opnieuw hoeft te beginnen als er iets mis gaat. Dat neemt niet weg dat je desondanks vaak veel tijd kwijt bent aan het perfectioneren van je correctie, doordat je verschillende waarden uitprobeert. Door gebruik te maken van extreme waarden in combinatie met de Gain van de Key, kan je deze workflow sterk vereenvoudigen.
Klik op de clip met de vrouw in het weiland. Corrigeer als eerste het contrast en de helderheid. Nadat je dit gedaan hebt, zal je constateren dat het gezicht veel te donker is en dat de ogen nauwelijks te zien zijn. Maak een nieuwe Serial Node met Alt+S. Open het Window-venster en selecteer onder Style de cirkel om een kader te kunnen trekken rond haar gezicht en hals. Verhoog daarna met het draaiwiel onder Gamma de helderheid zeer extreem. Zorg dat de waarden op 0.50 uitkomen. Maak daarna een nieuwe Serial Node aan met Alt+S.
Gebruik het kleurwiel bij Gamma om de midtones een warme kleur te geven door de muis naar oranje te bewegen. Ga ook hier voor flink extreme waarden, bijvoorbeeld rood 0.17, groen -0.02 en blauw -0.15. Maak weer een nieuwe Serial Node aan. Als laatste ga je nu de helderheid van de highlights extreem verlagen. Dit doe je door het draaiwiel onder de Gain naar rechts te bewegen.
Alle correcties die je hebt gedaan kan je nu afstemmen door de Gain in de Key aan te passen. Open het Key-venster met het vijfde pictogram boven het Curves-venster. Aan de rechterkant in dit venster zie je onder Output Gain staan. Door deze waarde te verhogen of te verlagen kan je per Node de instellingen aanpassen totdat je het gewenste effect hebt bereikt. Als je het resultaat met het origineel wilt vergelijken, dan kan je alle Nodes in één keer deactiveren met de toetsencombinatie Alt+D.




Gebruik extreme waarden om deze later eenvoudig te kunnen bijstellen.


Door te spelen met belichting, contrasten en kleuren creëer je een ander beeld.

 

Klik op de clip van de rode auto. De kleur van de auto gaan we veranderen. Pas eerst met behulp van de waveform-monitor het contrast aan. Gebruik het draaiwiel bij Lift zodat de waveform de nullijn aanraakt, en aan het draaiwiel bij Gamma om de helderheid van de midtones iets te verhogen. Maak een nieuwe Node aan met Alt+S en activeer het venster Window met het derde pictogram boven het Curves-venster. Klik bij Style op de eerste cirkel en trek een kader rond de rode auto. Zorg dat de Soft 1 in het Window-venster op nul staat. Selecteer de Qualifier en gebruik de Picker om de rode kleur van de auto te selecteren. Zet onder Selection Range de Key aan en verfijn deze in de Qualifier. Keer daarna terug naar het gewone beeld door de Key weer uit te zetten. De kleur van de auto kan je nu veranderen door de waarde bij Hue onderin het venster van de Color Wheels aan te passen. Gebruik desgewenst het draaiwiel bij Gamma om de helderheid van de kleur te veranderen.


Gebruik de Key om selecties te kunnen beoordelen en bij te stellen.


Een rode auto van kleur laten veranderen is eenvoudig.

 

De aanpassingen die je zojuist hebt gedaan, kunnen een goed uitgangspunt vormen voor andere clips van gelijke strekking. Met de clip van de straat nog actief, klik je in het menu op Color, Memories, Save Memory A. Hiermee sla je de bewerking op in de Gallery, die zichtbaar is bovenin in het midden van het scherm. Klik nu op de clip met de boten. Zie dat er maar één Node is, zonder correcties. Ga nu weer naar het menu Color, Memories, maar kies nu Load Memory A. De Nodes van de straatclip worden nu toegepast op deze clip. Door te dubbelklikken op een Node kan je deze selecteren. Klik je met de rechtermuisknop op een geselecteerde Node, dan krijg je de optie om hem te verwijderen. Corrigeer nu deze clip door de tweede Node te verwijderen en de andere twee aan te passen.

 

Het volgende wat je kunt doen is de verzadiging van het dak wat verhogen, zodat de clip iets meer kleur krijgt. Omdat het een nieuwe bewerking betreft, maak je daarvoor een nieuwe Node aan met de toetsencombinatie Alt+S.
Omdat je niet wilt dat de rest van de kleuren worden beïnvloed, moet je de kleur van het dak isoleren. Dit doe je door eerst een Window te maken waar het dak binnenvalt en vervolgens baken je met de Qualifier de kleur af. Druk op het derde pictogram Window boven het Curves-venster en klik op het vierkantje onder Style. In het beeld verschijnt nu een kader met puntjes, waarmee je het kader kunt aanpassen. Zorg dat hetgeen wat je wilt afbakenen, in dit geval het dak, binnen het groene kader valt. Trek daarna de buitenste gele lijnen naar op het groene kader, zodat er geen verloop optreedt.
Klik nu op het tweede pictogram boven het Curves-venster om de Qualifier zichtbaar te maken. Klik op de Picker onder Selection Range en klik daarmee op het rode dak. Druk daarna onder Selection Range op het meest rechtse pictogram Highlight, waardoor de Key zichtbaar wordt met alleen de kleur die jij hebt gekozen. Je kunt het bereik van die kleur vergroten of verkleinen door met de muis de waarden te beïnvloeden bij Hue (kleur), Sat (verzadiging) en Lum (helderheid). Als je tevreden bent over de selectie, klik je nogmaals op het pictogram Highlight om het gewone beeld weer terug te krijgen.
Nu kan je de kleur van het dak iets meer verzadigen door de kleurwielen bij Gamma en Gain te gebruiken. Daarvoor plaats je de muisaanwijzer in het kleurwiel, druk je de muisknop in en verplaats je de muisaanwijzer in de richting van de kleur die je wilt. Het is dus niet noodzakelijk om het cirkeltje in het kleurwiel vast te pakken. Gebruik de toetsencombinatie Ctrl+D om de Node met deze correctie in en uit te schakelen.
Als laatste kan je voor deze clip nog de lucht wat blauwer maken. Maak daarvoor eerst een nieuwe Serial Node met Alt+S. Baken de lucht af door een Window te maken. Zorg dat de onderste groene lijn stopt boven de boom rechts in beeld en boven het dak links in beeld. Trek daarna de onderste gele lijn naar beneden zodat je het onderste gedeelte van de lucht omkadert. Klik met de Picker onder Qualifier op de lucht en trek het kleurwiel bij Gain naar blauw. De clip is nu helemaal klaar.


Met de Qualifier baken je kleuren af die je wilt corrigeren.


Onder het Windows-venster staat de optie om kaders te maken waarmee je specifieke delen in het beeld kunt markeren.


De gecorrigeerde foto van de straat.

 

Het is tijd om de eerste clip, van de straat, te corrigeren. Klik op de clip in de tijdlijn en hij verschijnt in de monitor. De clip ziet er flets uit; er is weinig contrast en alle kleuren neigen naar grijs. Als eerste ga je het contrast en de helderheid herstellen. Open de scopes door onder View, Video Scopes op On/Off te klikken.
Voor het herstellen van de helderheid en het contrast gebruik je de Waveform. Deze kent een schaal van 0 tot 1023 bij 10-bit kleuren en van 0 tot 255 bij 8-bit kleuren. De nullijn representeert zwart, de bovenlijn wit. Zoals je kunt zien in de waveform, heeft deze clip eigenlijk geen donkere delen en begint de waveform pas bij een waarde van ongeveer 138. Je moet dit dus herstellen.
De donkere delen van een clip beïnvloed je met de kolom Lift in de Color Wheels. Het kleurwiel gebruik je om de donkere kleuren te veranderen, waar je het horizontale draaiwiel daaronder gebruikt om de helderheid aan te passen. Beweeg dit draaiwiel met de muis naar links, totdat de pieken van de waveform de nullijn aanraken. Gebruik de toetsenbordcombinatie Ctrl+D om de eerste Node met deze correctie tijdelijk uit te schakelen en zie het verschil. Schakel de Node weer in met Ctrl+D.
Om te bepalen waar de top van de waveform moet komen te liggen, is het in het begin handig om het zonesysteem van Fotograaf Ansel Adams te gebruiken. Als je even googelt, heb je het zo gevonden. Dit systeem geeft je een handreiking om je contrast te optimaliseren. Onder punt acht op deze schaal staat bij voorbeeld dat een muur in zonlicht ongeveer hierop moet uitkomen.
Op de clip zie je helemaal links een muur, die verlicht wordt door het zonlicht. In de waveform wordt die muur helemaal links weergegeven. De piek daarvan ligt rond de 768 en kan dus iets worden verhoogd. De highlights kan je aanpassen met het horizontale draaiwiel onder Gain in het Color Wheels-venster. Beweeg met de muis dit wiel naar rechts om de piek in de waveform iets te verhogen. De helderheid en het contrast heb je nu gecorrigeerd.


Het zonesysteem van Ansel Adams helpt je om de waveform goed te gebruiken.

 

De Master Timeline wordt direct getoond in het tabblad Conform. Hierop staan automatisch alle clips uit de Media Pool. Op de Master Timeline zijn videoclips niet te trimmen of te verplaatsen. Wil je dat wel, dan moet je eerst een nieuwe tijdlijn aanmaken, door in het Timelines-venster te rechtsklikken en te kiezen voor Create New Timeline. Geef de tijdlijn een naam en klik op Create New Timeline. Er wordt nu een kopie gemaakt van de Master Time Line. De clips op deze tijdlijn kan je wel verplaatsen, inkorten of verwijderen. Klik nu op het tabblad Color om te starten met het corrigeren van de clips.



Alle bestanden die je wilt corrigeren, plaats je op de tijdlijn onder het tabblad Conform.

Voordat we met de eerste clip aan de gang gaan, zullen we eerst even kort de interface doornemen van het tabblad Color. Links bovenin zie je de monitor. Deze laat het beeld zien dat is geselecteerd op de tijdlijn in het midden van de layout. Rechts van de monitor staat het Gallery-venster. Dit venster zal je gaan gebruiken om bewerkingen of stills op te slaan. Helemaal links bovenin is het venster van de Nodes. Een Node kan je zien als een schil die over de video heen ligt en waaraan een bepaalde correctie is toegekend. Je kunt meerdere Nodes maken, wat het eenvoudiger maakt om correcties te herstellen naar een eerdere fase.
Links onderin staat het venster Color Wheels, waarmee je de helderheid of de kleur van het totale beeld kunt veranderen. Rechts daarvan staat het venster met de Curves. Die gebruik je om subtielere veranderingen aan te brengen in de helderheid of de kleuren. Beide vensters beschikken over een uitklapmenu rechts bovenin waarmee je nog meer vensters tevoorschijn kunt toveren. Boven de Color Wheels en de Curves staat een balk met een aantal pictogrammen, waarvan het goed is als je die nu alvast even bekijkt. Een aantal van die functies zal je later in deze workshop nog tegenkomen. Het enige venster wat niet standaard zichtbaar is, zijn de scopes. Je opent dit venster door in het navigatiemenu op View, Video Scopes, On/Off te klikken. Dit venster is schaalbaar, maar kan je desgewenst ook op een tweede monitor plaatsen.



Het tabblad Color ziet er zeer indrukwekkend uit.



De videoscopes geven je houvast bij het beoordelen van videoclips.

Als je Davinci Resolve voor het eerst start, wordt je gevraagd een gebruikersnaam en wachtwoord op te geven. Na het inloggen verschijnt de Project Manager. Hier kan je nieuwe projecten aanmaken of bestaande projecten openen. Het eerste wat je moet doen is een verwijzing aanmaken naar de map op de harde schijf waar de bestanden staan waarmee je wilt werken. Druk daarvoor op Ctrl+komma. Het venster van de System Overview wordt getoond.
Onder Media Storage heb je de optie om verschillende verwijzingen naar mappen aan te maken. De eerste map waarnaar je verwijst, wordt gebruikt als een cachefolder voor Davinci Resolve. De tweede map kan je laten verwijzen naar je bestanden. Herstart daarna het programma om de wijzigingen door te voeren en log in. Maak daarna een project aan door op het plusteken te klikken onderin het venster en geef een naam aan het project. Rechtsklik op het pictogram van het zojuist aangemaakt project en kies uit het menu de optie Config.
Stel hier de resolutie en de framerate in waarmee je wilt werken. Kies voor deze workshop als resolutie 1920 x 1080 en als framerate 25. Vergeet niet dezelfde instellingen te selecteren bij Video monitoring format. Klik op Apply om de instellingen op te slaan en sluit het venster af door op het kruis linksboven te klikken. Dubbelklik tenslotte op het Project om de interface te laden.

Je komt altijd binnen op het eerste tabblad Media. De tabbladen staan centraal onder in beeld. Linksboven zie je de Library met een verwijzing naar de map met bestanden. Als de bestanden niet zichtbaar zijn, betekent dit dat je bestanden niet worden ondersteund. Davinci Resolve ondersteunt voornamelijk mov-bestanden en ongecomprimeerde bestandsformaten. Een lijst met de ondersteunde codecs vind je op de website van Blackmagicdesign in het Support Center.
Werk je vooral met avchd-video in een mts-container, dan zal je de bestanden eerst moeten converteren. Het is handig om daarvoor de gratis Avid DNxHD Codec 2.3.8 te downloaden en te installeren. Je krijgt dan bij de export naar Quicktime de optie om deze codec te selecteren, waardoor je met behoud van kwaliteit en met zeer hoge bitrates je avchd-bestanden kunt omzetten. De dpx-fotobestanden voor deze workshop, kan je zonder problemen importeren.
De bestanden in de Library zijn te bekijken in de monitor of je kunt er metadata aan toekennen. Om bestanden te kunnen corrigeren, moet je ze eerst toevoegen aan de Media Pool, door ze er naartoe te slepen. Klik daarna op het tabblad Conform om de bestanden op een tijdlijn te plaatsen.



Importeren en beoordelen van bestanden op het Media-tabblad.

▼ Volgende artikel
Van neuraal netwerk tot deep learning: experimenteren met AI
© svitlini - stock.adobe.com
Huis

Van neuraal netwerk tot deep learning: experimenteren met AI

Dagelijks hoor en lees je over artificiële intelligentie (AI). Daarbij worden vaak termen als neuraal netwerk en deep learning gebruikt. In dit artikel vertellen je hier meer over en gaan we ook zelf met AI aan de slag. We doen dit via TensorFlow Playground en Google Teachable Machine.

In dit artikel laten we zien hoe je zelf kunt experimenteren met kunstmatige intelligentie:

  • Bouw met TensorFlow Playground een neuraal netwerk
  • Maak je eigen beeldherkenningsmodel met Google Teachable Machine
  • Train de AI met foto's van jezelf via je webcam
  • Pas de AI toe in een educatieve setting, zonder programmeerkennis

Ook bijzonder interessant: Makkelijk switchen tussen AI-taalmodellen? Maak kennis met Jan

Het begrip artificiële intelligentie verwijst naar de mogelijkheid om zelfstandig kennis op te nemen, problemen op te lossen en beslissingen te nemen, net zoals een mens. Het woord ‘artificieel’ duidt erop dat deze vorm van intelligentie door mensen is ontworpen en door computers of machines wordt uitgevoerd en dus niet door een biologisch brein.

Veel AI-toepassingen, zoals beeld- en spraakherkenning en taalverwerking, maken hierbij gebruik van zogenoemde neurale netwerken. Deze zijn namelijk uitstekend geschikt voor het herkennen van complexe patronen in grote hoeveelheden ongestructureerde data.

Zo’n digitaal neuraal netwerk (DNN) is gebaseerd op de werking en structuur van het menselijke brein, maar het blijft niet meer dan een abstracte vereenvoudiging. Het menselijke brein is tenslotte (vooralsnog) aanzienlijk complexer, flexibeler en vooral ook energiezuiniger met een maximaal verbruik van circa 20 watt. Ons brein is bovendien superieur in creativiteit, contextueel begrip en emotionele verwerking. 

Biologisch neuraal netwerk

De menselijke hersenen zijn opgebouwd uit een biologisch neuraal netwerk. Dat bestaat uit tientallen miljarden neuronen of zenuwcellen. Deze sturen signalen naar elkaar door via minuscule ruimtes tussen de neuronen, synapsen genoemd. Binnen een neuron (tussen het cellichaam en het uiteinde van de zenuwvezel) gebeurt dit elektrisch. Bij de overgang naar een ander neuron verloopt dit chemisch. Er worden signaalstoffen (neurotransmitters, zoals glutamaat, dopamine en serotonine) vrijgegeven. Deze binden zich aan receptoren van het ontvangende neuron.

Laten we dit verduidelijken. Wanneer je een dier ziet, sturen je ogen het beeld via het neurale netwerk naar je hersenen, door talrijke lagen van neuronen. Elke laag zoekt naar specifieke kenmerken, zoals oren, lichaamsgrootte en vacht. Door eerdere ervaringen zijn sommige neuronen getraind om bijvoorbeeld katten te herkennen, andere honden. Herkent het netwerk meer kenmerken van een kat, dan worden de bijbehorende neuronen sterker geactiveerd. Worden in de uitvoerlaag meer ‘kat-neuronen’ dan ‘hond-neuronen’ actief, dan beslissen je hersenen dat het om een kat gaat. Vergis je je, dan onthouden je hersenen dit en passen de verbindingen tussen neuronen zich aan (neuroplasticiteit): je leert.

Neurotransmitters zetten het signaal via de synaps over naar het ontvangende neuron.

Digitaal neuraal netwerk

Een digitaal neuraal netwerk (DNN) werkt net als het biologisch brein met neuronen (zie bovenstaand tekstkader). Alleen in een DNN gaat het hierbij om wiskundige rekeneenheden die informatie verwerken. Elk neuron ontvangt invoer, vermenigvuldigt deze met een gewicht om de relevantie te bepalen en telt daar een compensatiewaarde, de zogeheten bias, bij op. Samen vormen deze gewichten en biases de ‘parameters’. GPT-4 bevat er naar schatting 1,7 biljoen.

De informatie stroomt door een of meer verborgen lagen tussen de invoer- en uitvoerlaag. Elke verborgen laag verwerkt de gegevens verder, waardoor complexere patronen worden herkend. Hiervoor gebruikt elk neuron een zogeheten activatiefunctie, die bepaalt of en in welke mate de uitvoer wordt doorgegeven. Zonder activatiefuncties zou het netwerk alleen eenvoudige wiskundige verbanden leren, zoals rechte lijnen, terwijl het nu ook met complexe, gebogen of gelaagde patronen overweg kan.

Een eenvoudig digitaal neuraal netwerk, met één verborgen laag.

Sturing en zelflering

Mensen sturen het DNN indirect aan door het bepalen van het aantal lagen, het aantal neuronen per laag en het type activatiefunctie. Verder kiezen ze hoe het netwerk moet leren, bijvoorbeeld door te bepalen hoeveel data het ziet en hoe complex de gegevens zijn, hoe vaak het leert en hoe groot de aanpassingen mogen zijn. Tijdens deze training worden de parameters automatisch aangepast door het netwerk om optimaal patronen te herkennen en voorspellingen te doen.

Vereenvoudigd komt het hierop neer: nadat het netwerk een voorspelling heeft gedaan, wordt berekend hoe ver deze afwijkt van de juiste waarde, waartoe het netwerk tijdens de training toegang heeft. Deze afwijking wordt vervolgens teruggestuurd door het netwerk, van de uitvoer- naar de invoerlaag. Onderweg berekent het netwerk hoeveel elke verbinding (gewicht) en extra waarde (bias) heeft bijgedragen aan de fout. Daarop past het netwerk de parameters aan om de fout kleiner te maken. Dit proces herhaalt zich vele malen, zodat het netwerk steeds accurater wordt. Dit principe wordt ‘backpropagation’ genoemd (letterlijk: achterwaartse terugkoppeling) en maakt dat het netwerk grotendeels zelflerend is.

©Vallabh soni - stock.adobe.com

Backpropagation: het netwerk stuurt zelf bij op basis van de vastgestelde afwijking.

TensorFlow Playground

Spelen met werking DNN

Het wordt interessanter wanneer je zelf experimenteert met de principes en werking van een DNN. Ga naar https://playground.tensorflow.org. Hier herken je de lagen met neuronen: een invoerlaag, twee verborgen lagen en een uitvoerlaag. Bij DATA is al een specifieke dataset geselecteerd. Zodra je op Run (het pijltje) klikt, probeert het netwerk het patroon in de gekozen dataset te herkennen. Het resultaat verschijnt onder Output.

Hoe langer je het proces laat lopen, hoe hoger het aantal trainingscycli (hier epochs genoemd) en hoe accurater de ruimte-indeling of dataclassificatie in de output: blauwe achtergrond voor blauwe punten en oranje achtergrond voor oranje punten. Omdat het standaard om een eenvoudig datapatroon gaat, zal de Training loss waarschijnlijk 0.000 zijn. Dit betekent dat het netwerk het patroon vrijwel meteen correct herkent op basis van de ingestelde parameters, zodat er nauwelijks of geen backpropagation nodig is.

Met de standaardinstellingen kan dit neurale netwerk moeiteloos overweg.

Verdere aansturing

Je kunt het netwerk flink uitdagen door enkele instellingen aan te passen. We geven je enkele mogelijkheden die zeker leerzaam kunnen zijn. Activeer in de invoerlaag bijvoorbeeld alleen de bovenste eigenschap X1. Het netwerk classificeert dan uitsluitend op basis van de horizontale posities van de punten. Voor de derde dataset (linksonder) kan dit voldoende zijn, maar voor andere niet. Probeer het gerust zelf uit. Je zult ook merken dat hoe meer features je inschakelt, hoe meer informatie het netwerk gebruikt en hoe beter het complexe patronen kan herkennen.

Verhoog eens Noise (ruis) met de schuifknop om het leerproces te bemoeilijken. De datapunten worden hierdoor minder gestructureerd, wat je meteen terugziet in de Output. Verminder nu eens het aantal neuronen (via de minknop boven elke laag) om het netwerk minder complexe beslissingen te laten nemen. Minder verborgen lagen verlaagt eveneens de capaciteit om diepere datapatronen te leren.

Nog steeds te makkelijk? Verlaag dan de Learning rate naar bijvoorbeeld 0.0001. Een lagere leerratio betekent tenslotte kleinere stappen bij het aanpassen van de gewichten (wat zich hier visueel vertaalt als minder snel aangepaste lijndiktes tussen de neuronen), waardoor het netwerk langzamer leert.

Experimenteer gerust verder met andere, ook meer geavanceerde instellingen om het netwerk – en jezelf – uit te dagen.

Met deze instellingen wordt de training van het neurale netwerk nagenoeg onmogelijk.

Deep learning

Een DNN is een van de meest effectieve methoden of algoritmen binnen machine learning (ML), waarbij computers leren van data zonder ze expliciet te moeten programmeren. Het is vooral geschikt voor complexe taken zoals beeldherkenning, spraakherkenning en taalverwerking.

Eenvoudige ML-modellen hebben meestal een of enkele verborgen lagen. Bij een complexere architectuur met meerdere verborgen lagen, die in staat is complexere patronen en relaties te herkennen, spreekt men van deep learning (DL). Deep learning is daarmee een subonderdeel van machine learning, al is het onderscheid niet altijd scherp te maken.

Bij DL gebruikt het neurale netwerk logischerwijze meer parameters, wat meteen ook een grotere hoeveelheid data vereist om het effectief te kunnen trainen. Meer data en parameters vereisen uiteraard ook meer rekenkracht, waarvoor vaak talrijke gpu’s (Graphics Processing Units) of gespecialiseerde processors als Googles TPU’s (Tensor Processing Units) nodig zijn.

Een Google TPU op een PCIe-kaart.

Google Teachable Machine

Experimenten met AI

Het zal je nauwelijks verbazen dat je, behalve geavanceerde kennis, frameworks als TensorFlow of PyTorch nodig hebt om een DL-model te ontwikkelen. Wil je hier desondanks toch mee experimenteren, dan biedt Googles Teachable Machine een uitstekende omgeving. Dit project heeft namelijk een interface waarmee je zonder technische expertise toch een AI-model kunt trainen.

Het platform is gebaseerd op DL-technieken en gebruikt neurale netwerken om patronen en kenmerken in diverse datasets te herkennen. Het werkt met voorgetrainde modellen, maar je kunt ook eigen gegevens toevoegen om een aangepast model te trainen. Na training kun je het model exporteren in verschillende formaten en inzetten in een web-app, mobiele app of op toestellen als Raspberry Pi, Arduino of IoT-apparaten.

Via deze GitHub-pagina vind je talrijke leuke projecten met Teachable Machine (van Bananameter tot Snake Game), evenals tutorials. Maar laten we nu vooral zelf aan de slag gaan met een bescheiden project.

Dit model heeft meteen door dat deze banaan overrijp is.

Starten met project

Surf naar https://teachablemachine.withgoogle.com. Hier leer je een computer trainen om je eigen afbeeldingen, geluiden en houdingen te herkennen. Klik op Aan de slag om een nieuw project te starten en kies uit drie modelopties: Projectafbeelding, Audioproject of Project met houdingen.

Wij nemen het eerste model als voorbeeld. Dit opent een venster waarin je kunt kiezen tussen een Model voor standaard afbeelding (kleur, 224 × 224 pixels) of een Model voor ingesloten afbeelding (grijswaarden, 96 × 96 pixels). Dit laatste, een embedded model, is geschikt voor microcontrollers. Wij kiezen hier voor het wat grotere standaardmodel.

Teachable Machine laat je uit drie grote trainingsmodellen kiezen.

Dataset en klassen aanmaken

Je komt nu terecht op een webpagina waar je eerst je dataset moet aanmaken. In dit geval bestaat deze uit afbeeldingen. Je deelt deze op in twee of meer categorieën, die je ook labelt. Teachable Machine heeft standaard twee categorieën (klassen), maar via +Een klasse toevoegen kun je eenvoudig meer klassen toevoegen.

Het aantal klassen dat je nodig hebt, hangt af van je project. Voor het onderscheiden van bijvoorbeeld QR-codes en zebrapatronen volstaan twee klassen (QR en Zebra). Wil je echter overrijpe, rijpe en rauwe bananen classificeren, dan heb je er minstens drie nodig. Zorg eerst dat het juiste aantal klassen beschikbaar is. Via de knop met drie stippen verwijder je desnoods overtollige klassen. Klik bij elke klasse op het potloodicoon en geef de categorie een zinvolle naam.

Daarna voeg je data toe aan elke klasse via de knop Uploaden of Webcam. Bij gebruik van de webcam moet je de pagina toegang geven tot de aangekoppelde camera. Door op Ingedrukt houden om op te nemen te klikken, stuur je continu snapshots naar Teachable Machine. De afbeeldingen verschijnen vervolgens in de betreffende klasse.

Vul je dataset met voldoende en gevarieerde afbeeldingen, via webcam en/of uploads.

Trainen en testen

Zodra je voldoende en gevarieerde data hebt toegevoegd, kun je het AI-model trainen. Klik op Model trainen om direct te starten of pas eerst enkele instellingen aan via het pijlknopje bij Geavanceerd. Hier kun je Tijdvakken, Batchgrootte en Leersnelheid aanpassen, vergelijkbaar met Epochs, Batch size en Learning rate in TensorFlow Playground. Klik op het vraagteken voor meer uitleg. Bij Geavanceerde opties kun je in een apart venster interessante statistieken over het trainingsproces bekijken. Na afloop verschijnt de melding Model getraind.

Klik rechts op Voorbeeld bekijken, zet Invoer op AAN en kies of je via Webcam of Bestand data wilt aanleveren. Wij kozen voor Webcam en testten met verschillende afbeeldingen van QR-codes en zebra’s. Bij Uitvoer toont Teachable Machine een percentage dat de zekerheid van de classificatie weergeeft.

Een QR-code op de rug van een zebra: daar heeft Teachable Machine niet van terug.

Export

Als alles goed werkt en je het model buiten de Teachable Machine-omgeving wilt gebruiken, klik je op Model exporteren. Kies voor Tensorflow.js, selecteer Downloaden en klik op Mijn model downloaden. Pak het gedownloade zip-bestand uit in een lege submap \my_model. Deze bevat een drietal bestanden, maar niet je trainingsdata. Dit komt doordat de neurale netwerkarchitectuur, geoptimaliseerde gewichten en modelconfiguratie kunnen volstaan voor nieuwe voorspellingen.

Ga vervolgens naar het tabblad Javascript, klik op Kopiëren en plak de code in een teksteditor, zoals Kladblok of Notepad++. Sla dit op als een html-bestand in de map net boven de submap \my_model.

Om lokaal te kunnen testen zonder browserfoutmeldingen zet je eerst een eenvoudige webserver op. Wij gebruikten de gratis Abyss Web Server (voor Windows, macOS en Linux). Plaats het html-bestand samen met de submap \my_model in de standaardmap C:\Abyss Web Server\htdocs. Dubbelklik erop om het in je browser te starten. Als het goed is, kun je nu meteen je AI-model testen. Succes.

Je kunt het model bijvoorbeeld testen via een lokale webserver.

▼ Volgende artikel
Waar voor je geld: 5 draagbare bluetooth-speakers voor minder dan 90 euro
© Olga Demina | stock.adobe.com
Huis

Waar voor je geld: 5 draagbare bluetooth-speakers voor minder dan 90 euro

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we daarom binnen een bepaald thema naar zulke deals. Ben je op zoek naar een goede bluetooth-speaker voor mee op vakantie? Wij zochten vijf modellen voor je uit voor minder dan 90 euro.

Een draagbare bluetooth-speaker is superhandig als je graag muziek luistert, waar je ook bent. Je koppelt ze in een paar seconden aan je telefoon of tablet, en je kunt meteen je favoriete playlist afspelen – zonder gedoe met kabels of ingewikkelde installatie. Gewoon aanzetten, verbinden en gaan met die beat. Wij zochten vijf modellen voor buiten voor je op, voor minder dan 90 euro.

JBL FLIP 6

Deze Flip 6 van JBL neem je makkelijk overal mee naartoe, maar produceert ondanks zijn compacte formaat toch flink wat geluid. Hij is klein genoeg om in je tas te gooien, maar als je hem aanzet, komt er verrassend veel bas en helderheid uit. Perfect voor op het strand, in het park of gewoon thuis op de keukentafel. Hij kan tegen een stootje – letterlijk – en is helemaal waterdicht. Dus regen of zwembad? Geen probleem. De batterij gaat zo'n 12 uur mee, dus je komt wel een dagje door. En heb je een vriend die ook een JBL-speaker heeft? Dan kun je ze koppelen voor dubbel zoveel geluid.

💪 Gewicht: 941 gram
🌊 Waterdicht: IP67
🔊 RMS-vermogen: 10 watt
🔋 Speelduur: 12 uur

Marshall Willen

De Marshall Willen valt op: niet alleen qua geluid, maar ook door z'n iconische rock-'n-roll-uiterlijk. Hij past makkelijk in je jaszak en maakt indruk met z'n kraakheldere geluid. Ondanks z'n formaat krijg je verrassend veel punch. De accu gaat gerust een hele dag mee en je kunt 'm gewoon meenemen onder de douche of in de regen – hij is namelijk waterdicht. Wat ook fijn is: hij heeft een handige clip waarmee je 'm ergens aan kunt hangen. Ideaal voor onderweg of op de fiets.

💪 Gewicht: 476 gram
🌊 Waterdicht: IP67
🔊 RMS-vermogen: 10 Watt
🔋 Speelduur: 15 uur

Sony ULT Field 1

De Sony ULT Field 1 is compact, makkelijk te dragen en zit verrassend goed in elkaar. Wat echt opvalt is de bas: lekker diep en vol. En als je dat niet genoeg vindt, zet je gewoon de ULT-knop aan voor nog wat extra power. Hij is water- én stofdicht, dus je hoeft 'm niet te sparen. De batterij houdt het een uur of 12 vol, wat prima is voor een dagje buiten. Gewoon een fijne, robuuste speaker die doet wat je nodig hebt.

💪 Gewicht: 650 gram
🌊 Waterdicht: IP67
🔊 RMS-Vermogen: 30 Watt
🔋 Speelduur: 12 uur

Ultimate Ears WONDERBOOM 4

De WONDERBOOM 4 is klein, rond en vrolijk, maar klinkt alsof-ie twee keer zo groot is. Zet hem in het midden van de kamer of je picknickkleed en iedereen hoort even goed wat er speelt, dankzij 360° geluid – en dat werkt verrassend goed. Hij is waterdicht én kan drijven, dus hij mag mee in bad of op een bootje, zolang je 'm maar niet lang onder water houdt. De batterij gaat ongeveer 14 uur mee, en als je er twee hebt, kun je stereo afspelen. Kortom: klein ding, groot geluid, nul zorgen.

💪 Gewicht: 420 gram
🌊 Waterdicht: IP67
🔊 RMS-Vermogen: niet opgegeven
🔋 Speelduur: 14 uur

Denver BTG-615

Denver is misschien nog niet zo bekend als de grote merken, maar deze 15 Watt BTG-615 verrast zeker. Voor een speaker onder de 50 euro krijg je een stevig geluid en een leuke lichtshow dankzij de ingebouwde leds. Perfect voor feestjes in je woonkamer of buiten op het balkon. Hij is spatwaterdicht, dus een beetje regen overleeft-ie wel. De batterij gaat zo'n 5 uur mee - dat is wel een stuk minder dan de andere hier besproken modellen, maar in principe voldoende voor een middagje muziek. En met een handvat bovenop neem je hem zo mee. Geen poespas, gewoon een leuke speaker die doet wat je verwacht.

💪 Gewicht: 2 kg
🌊 Waterdicht: IPX5
🔊 RMS-Vermogen: 15 Watt
🔋 Speelduur: 5 uur