← Back to list

Bocconi Alumni “The AI fashion side. Snapfeet and Lorica cases.” — Trascrizione del mio intervento

Riporto la trascrizione del mio intervento avvenuto il 16 marzo all’evento qui citato. Ho arricchito la trascrizione con il materiale…

Giorgio Raccanelli · 2021-04-21 10:46 · 0 claps · 7.7 min read
#machine-learning #augmented-reality #bocconi
Open on Medium ↗
Wiki topics: ML · Machine Learning EDU · Education & Learning 👗 · Fashion

Bocconi Alumni “The AI fashion side. Snapfeet and Lorica cases.” — Trascrizione del mio intervento

Riporto la trascrizione del mio intervento avvenuto il 16 marzo all’evento qui citato. Ho arricchito la trascrizione con il materiale multimediale che ho presentato al pubblico

[embed]The AI fashion side. Snapfeet and Lorica cases. | LinkedIn When​ 16 March 2021 - at 6:30 PM - 7:45 PM​ ​ Where​ Online webinar​ ​ This webinar, held in Italian, is organized by…www.linkedin.com

Oggi si parla molto di intelligenza artificiale e tutti noi siamo coscienti di che cosa si tratti a grandi linee. Sappiamo per esempio che le piattaforme social fanno uso dell’intelligenza artificiale per proporci contenuti, sappiamo per esempio che gli algoritmi di riconoscimento facciale ricorrono all’intelligenza artificiale e così via. Molti di noi, anche se non addetti ai lavori, hanno idea di che cosa sia l’intelligenza artificiale e molti di noi avranno anche letto qualche articolo divulgativo sui suoi principi.

Io propongo di trattare l’argomento da un punto di vista secondo me meno esplorato, ossia vorrei affrontare l’intelligenza artificiale dal punto di vista economico e organizzativo. In altre parole attraverso il racconto di una storia reale di sviluppo di una tecnologia di intelligenza artificiale penetrerò dietro le quinte del palco scenico del software per portare alla luce la lista dei lavori che sostengono lo sviluppo di questo tipo di tecnologia, vedendoli dal punto di vista della pianificazione delle risorse (risorse economiche, umane, tempo ecc) e della generazione di asset.

Innanzitutto chiarisco che quando parliamo di intelligenza artificiale in riferimento alle tecnologie con cui veniamo quotidianamente a contatto stiamo parlando di machine learning, quindi di una specifica branca dell’intelligenza artificiale. In breve stiamo parlando di tecniche che si basano sull’analisi di grandi moli di dati per estrarre informazioni utili.

L’algoritmo che prendo ad esempio è quello che ci permette di mostrare una scarpa in realtà aumentata sovrapposta al proprio piede.

[embed]Questo video è stato registrato dal telefono cellulare dell’autore. Inizialmente l’auitore inuqadra con la fotocamera del telefono i propri piedi in modo che il fruitore del video possa vedere che i piedi sono privi di scarpe e vestono solo dei calzini scuri. Poi l’autore attiva l’app di realtà aumentata, sceglie un modello di scarpe e mostra come appare l’inquadratura dei propri piedi “arricchiti” di un elemento virtuale, ossia le scarpe.

Questa tecnologia è stata totalmente sviluppata da noi.

La caratteristica peculiare dell’algoritmo è che per ogni fotogramma del frame video deve:

  • decidere se è presente un piede nella scena
  • individuare il piede
  • stimare dal fotogramma in 2D la rotazione del piede rispetto al mondo 3D.

Questi task sono stati risolti utilizzando il machine learning.

Come si procede in fase di pianifica: definito l’obiettivo con un esperto del settore, si stabilisce il dataset necessario. Nel nostro caso, per esempio, per poter allenare un algoritmo per individuare un piede all’interno di un fotogramma servono foto di piedi: piedi che calzano scarpe, piedi senza scarpe ma con calzini e piedi nudi; questi infatti sono i casi possibili di utilizzo finale della tecnologia.

La prima domanda che ci siamo fatti è stata se esistono dei dataset disponibili. In rete si trovano foto di vario tipo che possono essere liberamente usate per motivi tecnico-scientifici, tuttavia sono spesso dati di bassa qualità o troppo disomogenei per essere utili in un progetto di tipo professionale. I progetti universitari sono spesso fonte di ottimo materiale, sapete infatti che uno dei risultati di un progetto di ricerca riconosciuti dalla comunità scientifica è proprio la produzione di dataset riutilizzabili in diversi ambiti.

Non abbiamo trovato nessun dataset utile alla nostra causa, di conseguenza abbiamo dovuto pensare noi stessi alla creazione di un dataset.

Come si organizza la creazione di un dataset? Si inizia elencando le informazioni in ingresso e il tipo di variabilità che bisogna dare ai dati. Nel caso dell’applicazione di realtà aumentata che vi ho mostrato prima le informazioni in ingresso sono di due tipi:

  1. le foto stesse
  2. il camera pose (ossia i parametri di posizione della fotocamera del telefono da cui viene scattata ciascuna foto).

Per quanto riguarda la variabilità delle informazioni possiamo, semplificando, individuare:

  • la necessità di variare il soggetto (persone diverse, con scarpe diverse, calzini diversi, piedi diversi)
  • la necessità di variare il background (il pavimento che fa da sfondo)
  • la necessità di variare l’illuminazione
  • la necessità di avere piedi posizionati in molti modi diversi
  • la necessità di fare foto con dispositivi diversi
  • la necessità di fare foto da distanze diverse
  • la necessità di prendere le foto da posizioni (relativamente al device che fa la foto) diverse.

Inoltre di che numeri stiamo parlando? Quante foto servono. Non esiste una risposta univoca a questa domanda, a parte la poco informativa “tanti più dati hai, meglio è”, la quale però non ci permette di fare una pianifica.

Per certo possiamo dire che:

  1. qualche centinaio di immagini non è un numero sufficiente per nessuna applicazione
  2. il numero di foto dipende dalla variabilità di dati che si sta considerando
  3. qualche migliaio di foto per ogni specifico scenario è una buona linea guida.

Noi abbiamo stimato che per coprire la variabilità di cui avevamo bisogno, bisognava raggiungere almeno le 10.000 foto, per cui abbiamo fissato come obiettivo una forbice dalle 10.000 alle 15.000 foto.

Mi fermo ora un attimo per presentare un altro aspetto fondamentale della questione: il framework temporale. I progetti di machine learning hanno la peculiarità della raccolta massiccia di dati e tale attività può richiedere molto tempo.

Nel caso specifico che sto raccontando possiamo dare il seguente orizzonte temporale:

  • La decisione strategica di uscire a mercato con una applicazione di realtà aumentata è stata presa nel giugno del 2019
  • La deadline per avere gli algoritmi pronti è stata fissata per fine 2019

di conseguenza la raccolta dati si sarebbe dovuta fare tra inizio settembre e fine ottobre del 2019.

Fatta quindi la presentazione del problema, è chiaro che non si poteva procedere con “family and friends” ma era necessario implementare una procedura sistematica che permettesse di raccogliere le foto in un tempo concentrato.

L’idea è stata di partecipare ad una grande manifestazione sportiva, dove fosse possibile venire in contatto in poco tempo con una grande mole di pubblico e che il pubblico fosse predisposto a farsi fotografare i piedi.

Grazie alla nostra lunga esperienza di raccolta dati siamo andati subito sul sicuro e abbiamo scelto di partecipare all’Expo della maratona di Venezia (ottobre 2019): i runner sono una categoria che conosciamo bene, sono persone molto sensibili alle calzature per cui predisposti a collaborare a progetti del settore, sono molti e si recano nel venerdì e sabato precedenti alla maratona a ritirare il pacco gara e quindi transitano attraverso l’expo dove è possibile insediare una postazione.

Un’altra possibile opzione è quella di creare un’app civetta, ma magari lo vediamo dopo.

Il primo step quindi è stato l’acquisto di uno spazio espositivo presso l’Expo della Maratona di Venezia. Volendo dare i primi numeri in fatto di costi, lo stand è costato 2562€ (iva compresa) (i prezzi erano pubblici quindi li posso riportare).

Per fare le foto serve personale: abbiamo creato un team formato da 4 dipendenti e da 4 standiste. Calcolando un costo del lavoro di 20€/ora, 8 persone, 16 ore otteniamo altri 2560€ a cui aggiungere pasti costi di trasferta.

Il costo vivo dell’operazione di raccolta dati era quindi stimato essere sui 5500€.

Ed ora veniamo all’ultimo aspetto, ma molto importante che riguarda i dati.

I dati crudi raramente sono utili al training degli algoritmi di machine learning, i dati devono essere dotati di una informazione, in inglese label oppure tag, informazione che viene processata insieme ai dati stessi.

Per fare un esempio, se io voglio insegnare ad una software a distinguere in modo automatico le foto che contengono volti, devo fornire alla macchina un set di esempi positivi e uno di esempi negativi, quindi non solo devo dare le foto, ma devo segnare le foto come contenenti un volto oppure no.

Per il nostro progetto abbiamo deciso di scattare le foto ai piedi dei maratoneti usando una apposita app per gestire i dati. L’app era dotata di una semplice interfaccia che permetteva all’operatore di segnare in modo veloce se la foto era di un piede che calzava scarpe, oppure calzini oppure se si trattava di un piede nudo; con un altro pulsante si segnava se il piede fotografato era il destro o il sinistro oppure entrambi. Inoltre, l’app salvava per ciascuna foto i dati di camera pose leggendoli dai sensori del telefono.

Il fatto di avere i dati di posizione della fotocamera è stato determinante per decidere che la raccolta foto avrebbe dovuto avvenire attraverso una apposita app: se i dati del primo tipo (scarpa si/no, destro/sinistro ecc ecc) possono essere aggiunti a posteriori da un operatore che guarda le foto, i dati di camera pose non sono recuperabili.

Abbiamo quindi commissionato lo sviluppo di una app prototipale ad un fornitore esterno, l’app non è mai stata pubblicata ma è stata installata direttamente nei telefoni aziendali.

Il costo dello sviluppo dell’app prototipale è stato di 3300€; i lavoro è stato discusso e commissionato nel mese di settembre 2019 e l’app è stata consegnata a metà ottobre del 2019.

Alla Maratona di Venezia sono state raccolte in due giorni, venerdì 25 e sabato 26 ottobre, 18.000 fotografie ciascuna della quelli accompagnate da un preziosissimo file di informazioni descrittive della foto (camera pose, piede destro/sinistro ecc).

In loco ha lavorato un team di 4 interni e 3 standiste.

Lunedì 28 ottobre 2019, nei server di TRYA era presente tutto il materiale fotografico già pre-processato.

Come abbiamo detto all’inizio il nostro algoritmo finale deve però essere in grado di individuare il piede nella foto stimare dal fotogramma in 2D la rotazione del piede rispetto al mondo 3D, quindi i dati andavano arricchiti ti altre informazioni.

Come si insegna ad un software a localizzare oggetti in una foto? Bisogna fornire delle foto di esempio dove si segmenta (ossia si scontorna) il soggetto di interesse.

Esempio di segmentazione: a sinistra l’immagine originale, a destra la segmentazione del piede destro. Nell’immagine segmentata sono stati messi a 1 i pixel appartenenti al piede (la parte di interesse viene detta foreground) e a 0 i pixel non appartenenti al piede (la parte che non è di interesse viene detta background).

Esempio di segmentazione: a sinistra l’immagine originale, a destra la segmentazione del piede destro. Nell’immagine segmentata sono stati messi a 1 i pixel appartenenti al piede (la parte di interesse viene detta foreground) e a 0 i pixel non appartenenti al piede (la parte che non è di interesse viene detta background).

E come si svolge un lavoro del genere su 18.000 foto?

Questo ve lo dico perché potrebbe esservi utile saperlo, si utilizzano dei servizi globali come Mechanical Turk di Amazon dove migliaia di persone da ogni parte del mondo possono accedere alle foto ed eseguire l’attività di segmentazione per pochi centesimi di dollaro a foto.

Screenshot dell’interfaccia messa a disposizione da Mechanical Turk per etichettare le foto. In questo caso (preso dalla documentazione ufficiale) viene chiesto agli utenti di individuare nelle foto gli uccelli presenti.

Screenshot dell’interfaccia messa a disposizione da Mechanical Turk per etichettare le foto. In questo caso (preso dalla documentazione ufficiale) viene chiesto agli utenti di individuare nelle foto gli uccelli presenti.

Con meno di 1000 dollari siamo riusciti a far segmentare tutte le immagini.

Mechanical Turk è un ottimo servizio, senza un servizio come questo non è pensabile realizzare in tempi brevi e a costi contenuti degli algoritmi di machine learning. Tuttavia non è possibile fare tutto: l’interfaccia permette di fare solo le principali attività di labeling. Come si fanno le attività specifiche come stimare dal fotogramma in 2D la rotazione del piede rispetto al mondo 3D? E’ necessario sviluppare dei tool software per il data processing ad uso interno. In questo caso abbiamo scelto di sviluppare il tool internamente.

Il tool permetteva di caricare una foto, posizionava in modo approssimativo il modello 3D della scarpa sul piede e poi permetteva all’operatore di scalare opportunamente il modello 3D e di ruotarlo in modo da sovrapporlo in modo esatto al piede della foto.

Lo sviluppo del tool è durato 3 settimane.

[embed]In questo video viene ripreso lo schermo del computer in cui sta girando il software per il posizionamento manuale di un modello 3D di una scarpa su una foto. L’operatore devo posizionare il modello 3D della scarpa (che vedete in blu, con una leggera trasparenza), ruotarlo e scalarlo in modo che sembri indossato dalla persona presente nella foto.

Processare i dati è stato molto dispendioso, ad oggi il processo non è terminato, ma ci ha permesso di raggiungere un certo grado di affidabilità.

Siamo quindi alla fine del racconto. Presentiamo il conto!

Screenshot preso dalla relazione finale presentata al management. Nella tabella si vedono le risorse spese per creare il dataset.

Screenshot preso dalla relazione finale presentata al management. Nella tabella si vedono le risorse spese per creare il dataset.

Cosa ha prodotto tutto questo lavoro? L’asset principale frutto del progetto è l’algoritmo di realtà aumentata, ma non è l’unico. Il secondo asset da segnalare è il dataset stesso, che viene attualmente usato per nuovi algoritmi di classificazione del piede. Infine cito il software implementato per fare il tagging posizionale che potrebbe essere condiviso con altre aziende che lavorano su ambiti non concorrenti usando tecnologie simili alla nostra.


메타데이터
post_id
89d353529663
slug
bocconi-alumni-the-ai-fashion-side-snapfeet-and-lorica-cases-trascrizione-del-mio-intervento-89d353529663
url
https://medium.com/@giorgio-raccanelli/bocconi-alumni-the-ai-fashion-side-snapfeet-and-lorica-cases-trascrizione-del-mio-intervento-89d353529663
canonical_url
https://medium.com/@giorgio-raccanelli/bocconi-alumni-the-ai-fashion-side-snapfeet-and-lorica-cases-trascrizione-del-mio-intervento-89d353529663
author_url
https://medium.com/@giorgio-raccanelli
status
ok
fetched_at
2026-07-22 23:41:08