277 letture

Come e perché ho creato AI Shazam for Art per preservare l'arte africana

di Adetolani Eko7m2025/02/03
Read on Terminal Reader

Troppo lungo; Leggere

Questo è un articolo su come ho costruito una piattaforma che utilizza l'intelligenza artificiale per identificare l'artista che ha realizzato un dipinto
featured image - Come e perché ho creato AI Shazam for Art per preservare l'arte africana
Adetolani Eko HackerNoon profile picture
0-item


"Oh, quindi è come Shazam, ma per l'arte?" mi ha chiesto un amico dopo che avevo trascorso gli ultimi due minuti a spiegare il mio ultimo progetto.


Si trattava di una piattaforma che avrebbe potuto aiutare gli appassionati d'arte a identificare l'artista che aveva realizzato un dipinto e lei lo aveva appena spiegato in 5 parole: "Come Shazam, ma per l'arte".


Questo articolo spiega perché ho avviato il progetto e anche come ho realizzato la prima versione.


Perché?

Ho amato l'arte per tutta la vita.


Ho trascorso anni a fare ricerche sui movimenti artistici, a creare ed esporre le mie opere d'arte e, in generale, a frequentare artisti e gallerie. Nel tempo, ho sviluppato la capacità di indovinare (con alti livelli di accuratezza) quale artista ha realizzato un dipinto, soprattutto se si trattava di un artista africano.


Nel rinascimento dell'intelligenza artificiale del 2022, mi sono sentito ispirato e ho pensato che sarebbe stato divertente vedere se potevo addestrare i computer a raggiungere lo stesso obiettivo, così ho avviato un piccolo progetto personale.


Mentre ci lavoravo, mi sono reso conto rapidamente che c'erano problemi più grandi. Problemi riguardanti la documentazione, il riconoscimento e la condivisione della conoscenza dell'arte africana. Ad esempio, ci sono vecchi maestri africani i cui dipinti sono difficili da trovare online. Devi andare su vecchi libri di testo d'arte o collezioni personali per trovarli. Ho iniziato a preoccuparmi che, man mano che il mondo si sposta completamente sul digitale, molte di queste opere potrebbero andare perse nella storia.


Questa sfida mi ha spinto a decidere di rendere pubblico il progetto e di estenderlo alla conservazione digitale e alla condivisione della conoscenza sull'arte e sugli artisti africani.


Mi sono concentrato sull'arte africana perché sapevo che nessun altro l'avrebbe fatto, ma era necessario farlo, quindi dovevo iniziare da me.


Come funziona

Utilizzare la piattaforma è semplice.


Carichi la foto di un dipinto o scegli una delle immagini campione disponibili.


Pagina iniziale



La piattaforma elabora l'immagine, identifica gli artisti il cui stile artistico è più simile all'opera d'arte caricata, crea un punteggio di affidabilità per ciascun artista in base a quanto la foto caricata è simile al suo stile artistico e seleziona l'artista con il punteggio di affidabilità più alto.

Le informazioni sull'artista vengono quindi visualizzate nel formato seguente.



Pagina dei risultati della ricerca delle immagini



Il punteggio di confidenza viene reso pubblico per mostrarti come si è giunti a quella previsione e per consentirti di decidere come utilizzare il risultato fornito.

C'è anche una sezione di feedback (pollice in su o in giù) in modo che tu possa contribuire al progetto e aiutare a migliorare il modello.

Questa è una spiegazione semplificata di come funziona la piattaforma. Di seguito sono riportate altre informazioni (con il minor gergo tecnico possibile) su come è stata costruita.


La preparazione tecnica/dei dati

Raccolta ed elaborazione dei dati

Non era il mio primo progetto ML, quindi sapevo che il succo sarebbe stato nei dati di training. Dovevo trovare e preparare abbastanza dati di alta qualità per il modello per ottenere buoni risultati. Si è rivelato più difficile di quanto pensassi.


Ho iniziato a raccogliere e categorizzare i dati di formazione, ma mi sono reso conto rapidamente che ci avrebbe voluto molto tempo, quindi ho chiesto a mia sorella e a due stagisti di lavorare con me per alcuni mesi. (Sono stati pagati per il loro lavoro)


Il passo successivo è stato la pulizia e la standardizzazione dei dati.


  • Rimozione dei duplicati e normalizzazione dei dati
  • Garantire che i dati siano stati etichettati correttamente
  • Assicurarsi che ogni artista avesse all'incirca la stessa quantità di dati di formazione per evitare distorsioni nel modello dovute allo squilibrio delle classi.
  • Assicurarsi che i dati di formazione su ciascun artista includessero sufficienti variazioni dei loro diversi stili e tecniche pittoriche, per evitare un eccessivo adattamento a un determinato stile/tecnica di un artista.
  • Assicurare che le foto di formazione presentassero dipinti in contesti diversi. Foto di dipinti in ambienti diversi, foto di dipinti capovolti, versioni in bianco e nero dei dipinti ecc. Questa diversità aiuterebbe il modello a comportarsi bene nella maggior parte delle situazioni.


È stato un duro lavoro, ma se tutto fosse andato bene, il modello avrebbe funzionato bene.


Una volta completato il processo di preparazione dei dati, ho suddiviso i dati in dati di addestramento e dati di test (controllo) per semplificarne l'utilizzo e verificarne l'accuratezza.


Mia sorella, ovviamente della Generazione Z, ci ha fornito un aggiornamento sulla situazione degli artisti su cui avevamo raccolto dati e ci ha anche parlato delle difficoltà incontrate nel reperire dati su altri artisti.



Costruzione/Addestramento dei modelli

Quando ho pensato ai modelli, avevo due opzioni.


È possibile basarsi su un modello di base open source oppure affidarsi a un modello proprietario basato sul cloud, ad esempio AutoML di GCP.


Ho provato entrambi gli approcci, ma poiché inizialmente il progetto avrebbe dovuto essere una prova di fattibilità, la gestione dei costi è stato il fattore più importante da considerare.


Alla fine ho deciso di usare il modello di fondazione open source, EfficientNet. È gratuito, è efficace nell'identificare le caratteristiche nei dati, non richiede molta elaborazione per l'esecuzione, offre flessibilità nell'implementazione e in passato l'avevo già usato.



Scalabilità del modello EfficientNet Credito: paperswithcode.com


Ho trovato un'implementazione Tensorflow di EfficientNet e l'ho usata come spina dorsale del modello. Supportava Keras, quindi aiutava anche a gestire la complessità.


Era sufficientemente efficiente da permettermi di testare le versioni su un Macbook M1 Pro con 16 GB di RAM (anche se ho dovuto fare i conti con il fatto che il mio portatile ogni tanto si bloccava).


Sotto il cofano, il modello elabora le foto per identificare caratteristiche chiave come pennellate, schemi di colori, composizione ecc. e condensa le informazioni per mantenere le parti importanti. Utilizza queste informazioni per identificare somiglianze tra le foto di dipinti appena fornite e i suoi dati di addestramento.


Ho sperimentato vari valori di epoca e arresti anticipati per vedere cosa funzionava meglio e alla fine ho trovato metriche interessanti.


Prime metriche delle prestazioni per la v1 del modello


Ho continuato ad aggiungere altri artisti e a sperimentare valori diversi per ottenere qualcosa di sufficientemente preciso con cui partire.


L'implementazione finale ha coinvolto due modelli. Uno per il riconoscimento dello stile pittorico e un altro per il riconoscimento del medium pittorico.

Ho ricevuto aiuto per perfezionare ulteriormente i modelli e infine distribuirli con wrapper API.


Progettazione e sviluppo dell'applicazione

Una volta ordinati i modelli, il resto della piattaforma è stato semplice da costruire. L'implementazione finale si presentava così:


Diagramma dell'architettura della soluzione finale



Piattaforma Backend/API : ho creato il backend/API con Laravel per gestire in modo efficiente le richieste di logica e routing ai modelli effettivi. Questo livello gestisce tutta l'elaborazione delle immagini, l'archiviazione, la convalida, le informazioni sull'artista e il triage delle richieste, ovvero il controllo delle richieste inviate ai modelli.


Frontend : il frontend è stato creato con React. Non mi piace molto scrivere codice frontend, quindi ho chiesto aiuto per creare questa parte. Fondamentalmente controlla la visualizzazione delle informazioni e delle richieste degli utenti inviate al backend.


Server/Hosting: ho ospitato l'intera applicazione su Heroku (modelli inclusi). Ho scelto Heroku perché mi ha permesso di ottenere molti servizi e supporto già pronti a un costo gestibile. Dopo mesi di lavoro per raccogliere dati, addestrare i modelli e costruire la piattaforma principale, non volevo altro lavoro, volevo solo andare in diretta!


Note finali

Etica

Ho addestrato i modelli esclusivamente su dati disponibili al pubblico.


Mentre sviluppavo il progetto, ho anche contattato vari artisti per vedere se avevano problemi con il progetto e non ho ricevuto alcun rifiuto. Tuttavia, se un artista che ho incluso nel progetto desidera essere escluso, fatemelo sapere. Lo farò immediatamente.


Progetti futuri

Vedo molti casi d'uso per questo nell'istruzione, nella scoperta dell'arte, nel turismo e nel commercio. Ci sono anche un paio di funzionalità a cui ho pensato: una directory di artisti, giochi d'arte basati sul web, raccomandazioni di artisti e molto altro.


Il mio piano è quello di continuare a migliorare il progetto e di scoprire cosa artisti, stakeholder del settore e appassionati d'arte desiderano vedere in futuro.


Sono davvero felice di aver iniziato questo progetto. Da un lato, mi ha dato un'opportunità unica di combinare due cose che mi appassionano (arte + tecnologia), dall'altro, mi ha sfidato e costretto a pensare in modo creativo a vari problemi. Sento anche di contribuire attivamente alla crescita e alla conservazione dell'arte africana, e questo mi fa sentire bene.


Link al progetto (beta) : https://beta.whomadethisartwork.com/


Nota *: La versione beta è riservata a 100 artisti africani e si prevede di includerne altri a breve.*


Dimostrazione :




Se ti è piaciuto leggere questo articolo è perché ho usato una tecnica di scrittura chiamata "la china scivolosa" per renderlo divertente da leggere. È una tecnica usata da molti grandi autori e anche copywriter. Questa tecnica e molto altro vengono insegnate in un corso chiamato CopyThat , ed è l'unico corso di scrittura di cui avrai mai bisogno. La parte migliore è che ci vogliono solo 10 giorni per completarlo. 10 giorni per essere un bravo scrittore. Visita subito CopyThat per iniziare il tuo viaggio per diventare un grande scrittore.






Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks