Neurale beeldbewerking
De neurale beeldbewerking van de toekomst
Neurale netwerken maken beeldbewerking intuïtief. Ze leren fotorealistische beelden te produceren en zijn met simpele, ook door beginners te bedienen tools geschikt voor complexe bewerkingen.
Kunstmatige intelligentie is binnengedrongen in het dagelijks leven van mensen. Of dat nu is als de onvermoeibare assistente Siri of als fotozoekmachine met kennis over foto's. De meeste van die systemen kunnen de wereld alleen nog beschrijven en interpreteren, maar niet maken. Maar dat verandert op dit moment fundamenteel: met name op het gebied van beeldbewerking hebben wetenschappers de afgelopen tijd opmerkelijke vooruitgang geboekt. Sommige technieken staan op het punt ingevoerd te worden, andere zullen pas over een paar jaar marktrijp zijn.
De laatste demonstratie van Adobe laat bijvoorbeeld de app Photoshop
Touch zien met een automatische portretoptimaliseerder. Die vervormt een smartphonefoto zo dat een licht teleeffect ontstaat, maakt het hoofd vrijstaand, vervaagt de achtergrond en geeft het geheel de look van een professioneel geoptimaliseerde foto. De techniek daarachter komt net uit het AIlaboratorium en zal waarschijnlijk snel in een definitieve versie van de app of op de desktop verschijnen.
Nog erg experimenteel, maar extreem fascinerend, zijn neurale fotogeneratoren die helpen bij het retoucheren,vervormen en zelfs uitbreiden van beelddelen. Ze reduceren het aantal speciale tools dat beeldbewerkingsprogramma's normaal nodig hebben tot een enkel interactief penseel dat 'merkt' welke correcties in de betreffende context nodig zijn. De aanpassingen op een bepaald punt werken dan automatisch door op andere punten. Hierdoor blijft de totaalindruk gelijk, bijvoorbeeld de belichting van een landschapscène of de mimiek in een portret. We hebben de techniek van de nabije en verre toekomst eens dichterbij bekeken.
Neuraal hart
Het centrale deel van elke beeldbewerkingsfunctie is een speciaal geconstrueerd kunstmatig neuraal netwerk dat de manier simuleert waarop mensen visuele stimuli verwerken: een zogeheten Deep Convolutional Neural Network (Deep CNN). Dat bestaat uit meerdere lagen met neuronen, die via gewogen synapsen met elkaar ver bonden zijn. Een dergelijk netwerk kan verschillende beeldbewerkingstaken op zich nemen, bijvoorbeeld objecten herkennen, de belangrijkste delen van een foto markeren (segmentering) en de gescande scène beschrijven. Het bijzondere hieraan is dat niemand die mogelijkheden expliciet geprogrammeerd heeft. Een neuraal netwerk leert zelfstandig door het bekijken van talloze beeldvoorbeelden welke kenmerken en details hem helpen om de gestelde taak te vervullen.
De eerste lagen van een netwerk specialiseren zich er bijvoorbeeld in om een beeld te ontleden in ontelbare basiskenmerken zoals randen in verschillende richtingen, patronen van verschillende detailniveaus en (kleur)verlopen van alle tinten. Om levende wezens van planten te kunnen onderscheiden, moeten die kenmerken op een diepere laag weer tot karakteristieke onderdelen als ogen, neus, mond, blad, tak, stam et cetera samengevoegd worden. Zo ontstaat uiteindelijk een schematische representatie die geen onbelangrijke informatie meer bevat. Op die manier kunnen mensen onafhankelijk van hun haar en huidskleur, lengte en houding herkend worden.
Deep CNN's kunnen inmiddels echter meer dan alleen simpele beslissingen maken. Ze kunnen ook de parameters van een complexe kleur en helderheidstransformatie berekenen – een methode die bij de individuele autocorrectie van foto's gebruikt wordt. Een combinatie van netwerken kan ook maskers voor het vrijma ken van objecten of inkleuringen voor de hoofddelen van een foto genereren.
Hoe krijg je een aanvankelijk talentloos neuraal netwerk ertoe zich te specialiseren in objectherkenning of autocorrectie? Daarvoor zorgen met name de trainingsfoto's en de trainingsmethode. Om bijvoorbeeld expert in objectherkenning te worden, moet een Deep CNN per categorie een paar honderd voorbeeldfoto's bekijken die van tevoren door mensen geclassificeerd zijn. Voor elke foto moet het netwerk inschatten met welke kans die tot een van tevoren bepaalde categorie behoort. Omdat de echte categorie bekend is, kan met een foutfunctie makkelijk berekend worden hoe sterk de inschatting afwijkt van de waarheid. Op basis van die fouten wordt de invloed van bepaalde synapsen vergroot of verminderd en dan begint de hele procedure met een nieuwe voorbeeldfoto weer vooraan.
In een op katten getraind netwerk krijgen de neurale conglomeraten die gevoelig reageren op vachtstructuren en patronen tijdens de training steeds meer invloed, terwijl bij een tulpendetector de delen sterker worden die op felle kleuren reageren. Als de fouten op een bepaald moment niet meer kleiner worden, heeft het netwerk genoeg foto's gezien. Die methode om een netwerk een zo groot mogelijk aantal geclassificeerde voorbeelden voor te schotelen heet overigens supervised learning. Hij is prima geschikt als er voor elke input een exacte uitkomst te definiëren is.