Il progetto che vi presentiamo è frutto della curiosità.
Si sente parlare sempre più spesso di AI e di Machine Learning, di come le macchine stiano sempre più prendendo piede nella nostra vita quotidiana.
E quindi ci siamo detti: ok, vogliamo provare il machine learning, ma in un ambito più vicino a noi: il logo design.
Cosa realizzerà la macchina? Che loghi creerà? Quali suggerimenti possiamo cogliere, sfruttare? Ci sono delle lezioni che possiamo imparare da un freddo circuito e dai suoi oscuri calcoli?
Seguiteci e scopritelo!
Per prima cosa: cos'è il Machine Learning?
Citando a braccio Wikipedia, leggiamo che è una branca dell'intelligenza artificiale con la quale sfruttiamo la potenza di calcolo di una o più macchine per creare un output predittivo.
Più semplicemente, diamo alla macchina dati (più o meno puliti) e le insegniamo, iterazione dopo iterazione, a migliorare la sua previsione.
Come succede con il deepfake: prendiamo un modello (faccia A) sul quale vogliamo appoggiare una nuova faccia (Faccia B). Prendiamo quindi un cluster di facce del modello B e le facciamo elaborare alla macchina, in modo che possa predire, con precisione crescente in dipendenza dalla potenza di calcolo a disposizione, le varie espressioni di B. Una volta che il modello è pronto, lo mettiamo sulla nostra faccia A e ci godiamo il risultato.
In termini generali, sembra semplice... ma a parte il software corretto dobbiamo avere una notevole potenza di calcolo. Modelli migliori hanno bisogno di un batch molto grande: possiamo immaginare il batch come lo spazio dove l'algoritmo si muove per elaborare i nostri dati di partenza. Più è grande, meglio si muove il calcolo e più preciso sarà il risultato. Ma più è grande, più pesa in termini di risorse. Si parla di giorni (se non settimane) di calcoli continuativi su macchine con più di una GPU installata, tanto per capirci...
Intuito a grandi linee come funziona un Machine Learning di questo tipo, entriamo più nel dettaglio del nostro esperimento.
Quello che vogliamo fare è permettere alla macchina di creare un logo. Un logo nuovo, un logo design “artificiale”, diciamo. Ma come possiamo unire Machine learnign e Logo Design?
Per farlo abbiamo bisogno di tre cose:
una piattaforma di calcolo,
di un codice con cui far girare il modello
e tanti, tantissimi loghi da dare in pasto alla macchina per permetterle di capire cosa intendiamo come “logo”.

LA PIATTAFORMA
Abbiamo utilizzato Runway. Abbiamo sfruttato la licenza beta gratuita e abbiamo poi acquistato circa 50$ di crediti per poter continuare con le iterazioni. La versione base permette, infatti, di fare solo un primo training a 3.000 iterazioni. Per darvi un ordine di grandezza, tornando sul deepfake, modelli “buoni” si aggirano attorno alle 100.000 iterazioni...
Grazie a questi crediti, abbiamo potuto spingere il sistema a circa 17.000 iterazioni che per il nostro obiettivo di machine learning utilo al logo design speriamo siano sufficienti.
IL CODICE
Abbiamo sfruttato un codice pre-esistente che si basa sul famoso STYLEGAN di Nvidia. Essenzialmente il codice crea qualcosa di “nuovo” partendo da un pool di dati. Non siamo programmatori e quindi ci siamo basati sui risultati del codice su altri modelli e ci è sembrato il più corretto per la nostra operazione.
I LOGHI
Che loghi avremmo dato in pasto alla macchina? Per poter girare bene il sistema necessita di un minimo di 500 dati di partenza fino ad un massimo di 5000. La nostra ricerca si è spinta fino a 1700. Abbiamo raccolto millesettecento tra i loghi esistenti più famosi al mondo. Sono tutti loghi in bassa (per ovvie ragioni di reperibilità), ma è una cosa che non ci interessava. Il risultato non deve essere “in alta” risoluzione. Deve solo assomigliare a un “logo”.
I più raffinati tra di voi potrebbero obiettare che non è stata una scelta molto corretta in termini di metodo: avremmo dovuto fare una pulizia di questi dati. Come fa la macchina a capire che tutti quei “disegni” si definiscono loghi? Sono tutti diversi: ci sono quelli rotondi, con forme geometriche, solo lettering, a colori, in bianco e nero...
Metterli tutti insieme non è un'operazione corretta al 100%, ma è un limite intrinseco del nostro metodo di lavoro.
Fare una cernita iniziale avrebbe infatti creato due problemi:
- Segmentando i loghi in base a parametri come forma/colore o altro avremmo drasticamente ridotto il nostro pool di dati, rendendo impossibile l'elaborazione di un modello.
- Avremmo dato alla macchina una prima classificazione arbitraria su cosa sia o non sia un logo. E questa è una forzatura molto forte in termini di metodo. Tutti i loghi che abbiamo inserito nel modello sono “loghi”. Tutti. Il fatto che siano rotondi, quadrati, colorati, in bianco e nero, verticali, con o senza payoff non implica che NON siano loghi. Classificarli in base a qualche parametro visivo non avrebbe che inficiato il nostro intento. Volevamo che la macchina restituisse la sua “idea di logo” dopo averne visti tanti.
Qui potete vedere uno screen dei primi loghi inseriti.


LE PRIME ITERAZIONI
Fino a 3.000 iterazioni, i risultati sono troppi spuri, troppo difficili da interpretare e quindi inutili allo scopo.
Il video che vedete qui sotto è prodotto dalla piattaforma e permette di osservare, in modo più diretto e "grafico", come l'algoritmo iteri tutti gli elementi che sono stati inseriti.
FINO A 10K ITERAZIONI
La situazione è certamente migliorata e riusciamo a riconoscere qualcosa che assomigli a un logo. Il machine learning ha elaborato dei logo design che cominciano a prendere forma.
FINO A 20K ITERAZIONI
Questo è il nostro limite tecnico. Non abbiamo altri fondi per continuare. Necessiteremmo di circa 500$ di ore lavoro sulla piattaforma per arrivare ad abbassare il FDI a livelli che possiamo ritenere buoni.
Possiamo leggere l'FDI come uno scostamento "grafico" dal pool di partenza: più è alto, peggio è. Semplifico: è come se il sistema ci stesse dicendo qual è il suo grado di errore. Sto sbagliando al 200%, sto sbagliando al 110%, sto sbagliando al 97%... e così via. Il nostro FDI finale è 90.35.
Ottimo sarebbe arrivare al 20/10%, ma ci vogliono davvero molte ore di calcolo.
L RISULTATO FINALE
A questo punto, dopo che il modello è arrivato al limite che ci siamo imposti, lo lanciamo, ovvero gli chiediamo: "Bene, ora che sai cosa è un logo... disegnamene uno".
Ed ecco quattro dei risultati più interessanti che abbiamo avuto come risposta. Anche in questo caso, ogni eleaborazione ha un costo... quindi abbiamo cercato di ridurre al mimimo le prove.

Questi quattro "disegni" sono ciò che, grazie il nostro modello, la macchina definisce logo.  Possiamo spingerci allora a intuire quali siano per la macchina gli elementi che rendono un logo... un logo.
Riusciamo ad identificarne due:
- Una parte di script (il lettering?)
- Una parte di segno (l'iconografia?)
Secondo questo iniziale studio, la macchina reputa “logo” qualcosa che viene definito da queste due caratteristiche morfologiche.
Può sembrare una conclusione banale, ma ricordiamo la nostra ipotesi di partenza: è possibile insegnare ad una macchina a riconoscere e quindi replicare un logo? Questi primi output ci dicono che la macchina ha cominciato ad intuire cosa sia un logo. E crediamo che questa sia un primo importante guadagno.
CONCLUSIONI e POSSIBILI MARGINI DI MIGLIORAMENTO
Le conclusioni sulla questione "machine learning e logo design" che abbiamo cercato di affrontare, non sono certamente rivoluzionarie, ma ci permettono di fare un piccolo passo in direzione della macchiana e del nostro rapporto reciproco. Ci sostiutiranno con degli algoritmi anche quando si tratterà di logo design? Dov'è lo "spazio" creativo?
Abbiamo cominciato a sondare un argomento davvero molto interessante e alla domanda “cos'è un logo?”, la macchina ha risposto:
“È un insieme di colori che possiede due parti distinte. Una credo sia un immagine, l'altra credo sia una scritta”.
(Abbiamo parafrasato per rendere il tutto più divertente)
Ma questa sua conclusione, ci trova d'accordo?
In parte, chiaramente. Il logo può avere come connotazione la presenza di questi due elementi. Ma non sono fondamentali, non ne fanno per definizione un logo.
Il logo, come sappiamo, è ben altro e segue percorsi di creazione che non includono per forza di cosa l'emulazione (come nel caso della macchina).
Quando creiamo un logo è possibile trarre ispirazione da altri loghi, realizzati dai giganti prima di noi, ma non esauriamo mai qui il nostro compito.
Guardiamo a storie, a colori, a frasi dette per sbaglio in presentazione. A sogni, desideri.
Quando creiamo un logo cerchiamo di rispettare delle linee grafiche che permettano a tutti di riconoscerlo come tale (da qui segno/lettering, logotipo/naming), ma non possiamo fermarci a quello. Dobbiamo cercare un concetto che elevi questi elementi strutturali per permettere al nostro lavoro di spiccare nel mare di altri lavori tutti uguali.
È chiaro che spingendo il sistema verso iterazioni ancora più dense, siamo certi che il risultato migliorebbe in modo davvero concreto.

BONUS TRACK
La questione per noi non è esaurita con le conclusioni e abbiamo provato a fare il passo successivo che la macchina non ha fatto e, riteniamo, non possa ancora fare. Abbiamo quindi provato a “chiudere” uno degli output suggeriti dal Machine Learning con un logo design partendo, quindi, da un input artificiale invece che da un brief umano.
Ed ecco ciò che la macchina ci ha suggerito e il risultato finale che abbiamo ipotizzato.
Back to Top