Roderick's moeder

Welkom kinderen. Vandaag gaan we picture style mergen. Nee Kimberly, geen kleurplaten dus. We moeten met onze tijd mee. Handen omhoog als je weet wat picture style merging is. Niemand? Valt me een beetje tegen kinders. Dylan, jij vond jezelf zo’n grote jongen toen je tafel van 3 had geleerd, waarom hoor ik je nu dan niet? Goed, maakt ook niet uit, ik zal het jullie uitleggen. Bij picture style merging neem je de inhoud van het ene plaatje, bijvoorbeeld een schattig konijntje, en dat voeg je samen met de stijl van een ander plaatje, bijvoorbeeld de schilderstijl van Vincent van Gogh. Zo maak je een nieuw plaatje met de inhoud van de één en de stijl van de ander: een schattig konijn in de schilderstijl van Vincent van Gogh's Sterrennacht bijvoorbeeld.

bunny

We doen dit met een computer, dus moet de computer begrijpen wat de inhoud van het ene plaatje is, én de stijl uit het andere plaatje kunnen halen. Maar hoe kan een computer zoiets doen?

Hoe zien we plaatjes?

Weet iemand van jullie hoe we de informatie die via onze ogen binnenkomen in onze hersenen omzetten in concepten kinderen? Roderick? ‘Door heel hard na te denken.’ Fijn Roderick, daar hebben we dus niks aan. Ik zal het uitleggen: stel nou dat we Rodericks moeder zien. Als we naar haar kijken komt Rodericks moeder pixel voor pixel binnen in onze hersenen, maar op dat moment hebben we er nog niet één herkenbaar geheel van gemaakt. We hebben immers alleen maar een bak pixels. Niet huilen Roderick, je weet best dat je moeder een bak pixels is. Maar we weten dat die bak met pixels Rodericks moeder representeert, dus gaan we kijken hoe dat precies gebeurt.

 visual-system

Misschien vinden we wel een paar donkere pixels op een rij tussen rijtjes lichtere pixels: dat zou zomaar een lijntje kunnen zijn, zoals in 'Layer 1' op het schema hierboven. En als we dan alle lijntjes hebben gevonden kunnen we kijken welke kant ze op staan: recht, schuin of plat. Als we dan van alle lijntjes weten hoe ze staan gaan we naar een hogere laag, om te kijken of we die lijntjes misschien kunnen samenvoegen tot een vormpje: een cirkel, vierkant of wat dan ook. Nog een laagje verder gaan we de vormpjes aan elkaar plakken, net zo lang tot we bij Rodericks moeder uitkomen. Voor computers is het eigenlijk weinig anders. Het plaatje wordt vertaald naar getalletjes (elke kleur heeft een getal), en de computer kan gaan proberen het plaatje te herkennen, van lijntjes tot vormen tot Rodericks moeder.

Hoe zien computers stijl?

Dus kinderen, we weten al hoe een computer de inhoud van een plaatje kan begrijpen. Maar hoe begrijpt een computer de stijl van een plaatje? Wat is de stijl van een plaatje eigenlijk? Laten we de tekeningen van Lisa en Bert als voorbeelden nemen. Lisa vindt het leuk om bloemen en hartjes te tekenen, en alles wat ze tekent is donzig en rond. Dus als je Lisa’s tekenstijl zou omschrijven zou je misschien zacht, donzig of vloeiend noemen. Bert daarentegen tekent satanische rituelen in z’n eigen bloed. Bert’s lijnen zijn een stuk harder, agressiever, en uit zijn stijl spreekt een stuk meer woede. Wij zien het verschil meteen, maar hoe zou een computer inzicht kunnen krijgen in Bert’s verknipte jeugd?
Om die vraag te beantwoorden moeten we eerst weten wanneer we van een ‘stijl’ spreken. Dat doen we als bepaalde kenmerken, zoals Bert’s bloedvlekken of Lisa’s ronde hartjes, door het hele plaatje heen terugkomen. De computer kan, buiten lijntjes, ook zoeken naar dit soort patronen: zijn er patronen die constant op meerdere plaatsen in het plaatje terugkomen? Als dat zo is kan de computer die patronen vastleggen als een serie getallen, en is de ‘stijl’ van een plaatje gevangen. 

Hoe combineer je dat?

De computer heeft nu dus twee series getallen: ééntje die de moeder van Roderick weergeeft, en ééntje die de tekenstijl die voortvloeide uit de twijfelachtige psychische toestand van Bert weergeeft. Tijd om te combineren. We vertellen de computer dat we graag een nieuw plaatje willen, maar dan met de (aanzienlijke) inhoud van Rodericks moeder, en de stijl van Bert’s interne demonen. We laten de computer een aantal pogingen doen, en na elke poging kijken we in hoeverre het nieuwe plaatje (ook weergegeven door getallen) verschilt van de oorspronkelijke twee plaatjes, bij de eerste op inhoud (waar zitten de lijntjes) en bij de tweede op stijl (welke patronen zitten in het plaatje). En als we tevreden zijn hebben we ons eindresultaat: een combinatie van de twee! Als je computer dat geleerd heeft is het aan jou om te besluiten wat je wilt combineren: of het nou het werk van een kunstenaar, futuristische tekeningen of gewoon je eigen krabbels zijn, je kan het allemaal proberen! 

Dus kinders, schroom je niet om je volgende selfie eens op te leuken door hem te mengen met de schilderstijl van Picasso, of mix de foto van je ex eens met het werk van Hieronymus Bosch. Ik ben benieuwd wat jullie over een paar jaar van jullie dick-pics gaan maken. Veel programmeerplezier!