Utviklerne Oli Callaghan og Finnigan Anderson har opprettet twitterboten Colorisebot, som farglegger svart-hvitt-bilder du tweeter til den – ved å bruke maskinlæring og kunstig intelligens.
Fra C++ og OpenCL til Caffe
I et blogginnlegg på Andersons hjemmeside beskriver de hvordan arbeidet med å utvikle bot-en har forløpt siden april i år, da Anderson så et innlegg med fargelagte bilder fra andre verdenskrig. Målet deres var å ha ferdig et nevralt nettverk som kunne gjøre det samme til DockerCon EU, som gikk av stabelen 16. oktober i år.
– Vi startet med å utvikle et nevralt nettverk fra bunnen av med C++ og OpenCL, skriver Anderson i bloggen.
Men det viste seg raskt at det nevrale nettverket var tregt å lære opp, skriver han videre, og at de to utviklerne ikke hadde nok kjennskap til hvordan de kunne opptimalisere læringen med blant annet «loss functions».
De prøvde å heller gå for å prøve Googles TensorFlow, men også dette var for tregt, skriver Anderson.
Til slutt var det en allerede trent modell skrevet i Caffe som ble løsningen, skriver de. Denne nevrale nettverksmodellen var allerede trent i å gjenkjenne flere millioner bilder av doktorgradsstudenter ved University of Berkeley.
Fargelegging med OpenFaas-funksjon
Anderson skriver at twitterboten består av tre hovedkomponenter:
En såkalt «tweetlistener service» som er deployet på en docker-sverm som lytter etter tweets som oppfyller visse kriterier, lagrer bildet på Minio-datalagringen deres og kaller på den første funksjonen.
Det andre komponentet, selve fargeleggingen, skriver Anderson at er en OpenFaas-funksjon som fargelegger et bilde fra Minio og kaller på tweetpic-funksjonen med filnavnet og twitter-ID-en til det konverterte bildet.
Det tredje som skjer er at tweetpic-funksjonen henter bildet fra Minio og tweeter det tilbake til original-tweeteren.
Les flere detaljer om hele prosjektet på Andersons blogg.
Både gamle og nye bilder
Vi har testet ut Colorise Bot:
Selve responstiden er imponerende, og tar alt fra to til 10 sekunder. Fargeleggingen på dette gamle bildet ser også ganske bra ut, men det kan se ut til at det nevrale nettverket trenger enda litt mer trening i å skille mellom former på bilder.
Også nyere bilder kan fargelegges av Colorise Bot:
Det var et par andre bilder vi forsøkte å fargelegge men som Colorise Bot enten var for opptatt til å fargelegge eller som av uviss grunn ikke oppfylte dens kriterier, så vi fikk ikke noe respons på disse bildene – selv etter ikke etter å ha ventet en stund og forsøkt igjen siden, i fall vi var litt vel ivrige. (En «like» på ett av bildene fikk vi dog av bot-en.)
Men det skorter ikke akkurat på andre eksempler på Twitterbotens profil.