intelligenza artificiale

Ego4D, dataset video in soggettiva

Chi studia le applicazioni di intelligenza artificiale, e più in particolare di computer vision, sa bene che uno dei limiti più importanti nella definizione e apprendimento dei modelli è la disponibilità di dataset normalizzati su cui effettuare la fase di apprendimento e testing.<!–more–>

Per questa ragione, in questo ultimo periodo, molti enti di ricerca si stanno adoperando per realizzare e mettere a disposizione del mondo scientifico tali raccolte, organizzandole su base tematica o disciplinare.

In questo contesto, è stato presentato Ego4D (Egocentric 4D Live Perception), un progetto sviluppato da Facebook insieme ad un consorzio di università internazionali, nato dalla volontà di raccogliere registrazioni video in soggettiva durante le comuni attività giornaliere.

Cosa rende originale Ego4D ?

La scelta di questo POV (point of view) nasce dal fatto che attualmente gran parte dei dataset disponibili è composto da fotografie o video riprese da punti di vista esterni al soggetto che compie l’azione, offrendo agli algoritmi la possibilità di distinguere con maggiore facilità gli elementi costituivi ed il tracking dei soggetti coinvolti.
Nei video in soggettiva, invece, la descrizione visiva di una scena o di una azione cambia totalmente, portando limitazioni e problematiche che attualmente non possono essere affrontate a causa proprio della scarsità di dataset di training.

Una delle novità di questo progetto è proprio la scelta del punto di ripresa.
Infatti, a differenza di quanto avviene normalmente con altre tipologie di raccolte video, in questo caso le registrazioni sono avvenute mediante camere indossabili, posizionate in modo da registrare secondo il punto di vista del soggetto, permettendo così di addestrare futuri modelli AI che possono coadiuvare attività umane mediante sensori “egocentrici”, capaci cioè di percepire la scena dal punto di vista dell’operatore.

Il progetto ha coinvolto oltre 850 partecipanti distribuiti in nove paesi, tra cui l’Italia ,con l’Università di Catania, preservando una eterogeneità di scenari e attività, oltre ovviamente garantendo la privacy dei soggetti ripresi.

I contesti registrati, come detto in precedenza, riguardano attività quotidiane personali (ad esempio cucinare, fare shopping, disegnare, ecc.) e professionali (es. elettricisti, muratori, cuochi, ecc.).

Tale scelta è stata motivata dalla volontà di rendere eterogeneo l’ambiente in cui si svolgono tali azioni, consentendo così che future applicazioni possano essere facilmente predisposte indipendentemente dal contesto in cui si svolgono.

 Raccolta video eterogenea. Sono stati coinvolti 855 partecipanti da 74 location in 9 nazioni differenti.

A partire dal mese di novembre 2021, il database contenente oltre 3.000 ore di video sarà reso disponibile alla comunità scientifica.

I benchmark di Ego4D

Oltre alla creazione della raccolta video, il progetto Ego4D si pone l’obiettivo di verificare 5 benchmark applicativi riguardanti i temi: interazione sociale, interazione mano-oggetto, diarizzazione audiovisiva, memoria episodica e previsione.
Questi obiettivi, rappresentano in modo chiaro la direzione della ricerca applicativa:

  • la possibilità di riconoscere un’azione svolta nel passato, in modo da riconoscere e “ricordare” avvenimenti e azioni svolte
  • comprendere comportamenti e abitudini, in modo da simulare previsioni sociali o sistemiche;
  • apprendere i movimenti e i meccanismi che l’uomo usa per interagire con gli oggetti, in modo da interpretare gesture da integrare nei vari algoritmi;
  • consentire l’utilizzo del suono in soggettiva per migliorare l’apprendimento dell’ambiente e delle azioni che si svolgono;
  • studiare e comprendere l’interazione interpersonale.

L’obiettivo ultimo che si pone il progetto è quello di integrare e migliorare le potenzialità e l’integrazione della computer vision all’interno dei sistemi di automazione

Per approfondire:

Articolo

Facebook AI Research

Pagina web del progetto Ego4D

Super-resolution e machine learning

Quante volte ho sorriso durante la visione di alcuni film nel vedere esperti tecnologi al fianco di detective che riuscivano con pochi click a generare, partendo da un semplice fotogramma di una camera piazzata in un vicolo, un ingrandimento che trasformava magicamente un ammasso di pixel sfocati in una immagina nitida, svelando così il volto dell’assassino o la targa di un veicolo.
Se fino a poco tempo fa potevano essere considerate libertà cinematografiche che rendevano più avvincente la sceneggiatura aggiungendo quel pizzico di fantasy-hi-tech che piace tanto al pubblico, oggi possiamo affermare che è diventata una applicazione possibile.

Tralasciando le applicazioni specifiche in ambito automobilistico (in cui modelli e algoritmi sono calibrati sul riconoscimento specifico di targhe di autoveicoli), uno degli approcci più condivisi fra i ricercatori si chiama Super-resolution e la troviamo, in alcune sue applicazioni primordiali, già utilizzabile all’interno di alcuni prodotti Adobe (es. Photoshop dalla versione 13.2) o di software specifici (oltre ad alcune implementazioni hardware all’interno delle GPU).La sua genesi affonda le radici in sperimentazioni e algoritmi differenti, utilizzati in ambito grafico per assolvere a esigenze differenze.
All’interno dei prodotti Adobe, ad esempio, già da qualche anno troviamo la tecnologia Enhance Details (in cui l’immagine veniva migliorata nella nitidezza e nell’aspetto cromatico, senza alterare la sua risoluzione).

Gli algoritmi di super-resolution che troviamo all’interno dei software Adobe, invece, consentono generalmente un ricampionamento lineare 2x per lato (andando così a raddoppiare la risoluzione totale per un massimo di 4x) mantenendo una migliore qualità dell’immagine rispetto all’utilizzo dei consueti algoritmi di interpolazione (es. linear, nearest-neighbor, bilinear e bicubic).

Super-resolution

La tecnologia super-resolution si basa su algoritmi di machine-learning addestrati opportunamente per interpolare i pixel aggiunti sulla base della tipologia delle forme e dell’immagine su cui viene applicata. Questo consente di evitare i consueti problemi di aliasing generati dai metodi precedenti.

Esempio di ingrandimento classico con l’utilizzo di filtri bicubico.
Si noti sulla destra la presenza di aliasing che fa perdere nitidezza ai contorni.
 Image Credit: Masa Ushioda/Seapics/Solent News

Un esempio di sperimentazione ci viene offerta da alcuni ricercatori di Google che nel 2016 hanno messo a punto un’applicazione di un modello di machine-learning chimato RAISR: Rapid and Accurate Image Super Resolution, che ha consentito di ottenere immagini ingrandite con una ottima resa qualitativa.
Questo approccio ha visto la creazione di un dataset composto da 10.000 coppie di immagini (a bassa e alta risoluzione) utilizzato come training per la calibrazione del modello di machine-learning.

L’ applicazione ha permesso l’affinamento di filtri adattivi non-lineari che, applicati ad una immagine ingrandita con uno dei metodi classici di interpolazione (es. bilinear), consentono un miglioramento dei risultati rappresentativi andando ad diminuire la presenza di artefatti.

I filtri così generati, che basano la loro matematica su alcune peculiarità delle immagini (contorni, gradienti, direzione, forza, coerenza, ecc.), vengono associati tramite funzioni hash alle caratteristiche dell’immagine oggetto di ingrandimento, così da essere utilizzati nei punti e nei modi opportuni.
L’immagine così elaborata viene, infine, “unita” a quella interpolata linearmente in partenza, utilizzando una funzione di media pesata, abbattendo i possibili artefatti generati dai filtri.

Workflow dell’applicazione. A sinistra l’immagine di partenza. Al centro l’immagine ingrandita con un filtro bicubico, a destra l’immagine in output dall’algoritmo RAISR.
Top: Original, Bottom: RAISR super-resolved 2x. Original image from Andrzej Dragan

Super-Resolution via Repeated Refinements

Ma come dicevano all’inizio, i progressi nel campo dell’elaborazione di immagini sintetiche sta facendo passi da gigante, grazie anche all’integrazione di modelli sempre più complessi di machine learning all’interno dei laboratori di ricerca.

Un esempio che oggi voglio descrivere è rappresentato dal Super-Resolution via Repeated Refinements (SR3), un algoritmo sviluppato all’interno dei laboratori Google, che basa la propria funzionalità sul processo di denoising stocastico applicato al resample di un’immagine.

L’ approccio al problema è innovativo. Pur basandosi sempre su modelli di machine-learning, questo algoritmo applica il training su immagini sottoposte a noising progressivo. In questo modo il modello viene calibrato per poter essere successivamente utilizzato in modo inverso, partendo da un noising completo fino all’immagine scalata.

Esempio di Image Super-Resolution via Iterative Refinement
by Chitwan Saharia Jonathan Ho,  William Chan,  Tim Salimans,  David Fleet,  Mohammad Norouzi)
Super Resolution results: (Sopra) 64×64 → 512×512 face super-resolution, (Sotto) 64×64 -> 256×256 natural image super-resolution.

Questo approccio ha dimostrato ottimi risultati di benchmark nella scalatura 4x-8x soprattutto per immagini ritraenti visi umani e immagini naturali. Nell’articolo (che si può leggere tramite i riferimenti in basso), si ipotizza anche la possibilità di superare il confine degli 8x applicando più volte in cascata l’algoritmo stesso, arrivando a raggiungere fattori moltiplicativi più elevati.

E’ facile immaginare che tali applicazioni di sintesi digitale porteranno sempre più applicazioni in ambiti differenti, da quello fotografico a quello medico, consentendo magari anche il riutilizzo di video e foto registrate con apparecchiature hardware con caratteristiche e ottiche obsolete.

Per approfondire:

RAIY. Romano, J. Isidoro and P. Milanfar, “RAISR: Rapid and Accurate Image Super Resolution,” in IEEE Transactions on Computational Imaging, vol. 3, no. 1, pp. 110-125, March 2017, doi: 10.1109/TCI.2016.2629284.

Image Super-Resolution via Iterative Refinement – 2021 – Image and Video Processing (eess.IV); Computer Vision and Pattern Recognition (cs.CV); Machine Learning (cs.LG) – Chitwan Saharia, Jonathan Ho, William Chan, Tim Salimans, David J. Fleet, Mohammad Norouzi

Yulun Zhang, Kunpeng Li, Kai Li, Lichen Wang, Bineng, Zhong, and Yun Fu. Image super-resolution using very deep residual channel attention networks. In Proceedings of the European conference on computer vision (ECCV).

Costruzioni Lego e Intelligenza artificiale

Si chiama BrickIt l’app basata su algoritmi di Intelligenza artificiale che permette di fotografare i pezzi Lego a nostra disposizione e proporci delle originali idee progettuali.

Ok, so bene che in questo caso siamo ai limiti di un articolo “acchiappa click”, come quelli che si trovano spesso nelle riviste generaliste con lo scopo di incuriosire e attirare l’attenzione di un pubblico non specialista utilizzando termini iper-tecnologici per descrivere applicazioni banali.
Ma, sarà forse il mood estivo o la ricerca di nuovi stimoli da parte dei piccoli di casa, ho voluto sperimentare questa nuova App che promette di automatizzare la progettazione di costruzioni Lego sulla base dei pezzi a nostra disposizione.

L’ App in questione si chiama BrickIt (brickit.app) ed è disponibile al momento solo per piattaforma iOs (iPhone) in forma gratuita.
Il funzionamento è davvero semplice ed immediato: si dispongono i pezzi lego su una superficie piana (possibilmente a tinta unita), facendo attenzione a non occludere i pezzi più piccoli sotto quelli più grandi; si fotografa questa disposizione e l’app fa tutto il resto, costruendo dei veri e propri libretti di costruzione che ci guidano nella realizzazione di oggetti alternativi, tutti realizzabili con i pezzi che abbiamo fotografato.


Ma non finisce qui! Infatti durante gli step di costruzione, possiamo chiedere all’App di mostrarci l’area della fotografia in cui è presente il pezzo di cui necessitiamo, facendoci risparmiare lunghi tempi di ricerca.
Tale funzionalità consente anche di scegliere, fra i pezzi presenti, delle alternative cromatiche che possiamo integrare nel progetto.

Sono consapevole che qualcuno potrebbe non apprezzare tale funzionalità, affermando che la ricerca e l’identificazione dei pezzi (come avviene per alcune tipologie di gioco, come i puzzle) rientra proprio nelle fasi creative del gioco e che quindi eliminarle altera la dinamica ludica (basti pensare quando, seguendo un libretto delle istruzioni per il montaggio e dopo una disperata ricerca di pezzi all’interno del nostro contenitore, siamo portati all’adozione di varianti , rendendo di fatto originale e unica la nostra costruzione).

Ma in questo testo vorrei soffermarmi principalmente sugli aspetti tecnologici e implementativi di questa App che dimostra come “semplici” algoritmi di matching fotografico affiancati ad un sistema di proposta progettuale possano essere coniugati in un’applicazione semplice e utile, davvero alla portata di chiunque.
Il riconoscimento fotografico si basa su estrazioni di features (forma e contrasto), identificando attraverso un dizionario di immagini le varie tipologie di pezzo Lego (al momento in questo database non sono inclusi la serie Lego Technic e Lego Duplo).

Dopodiché, un modello di pattern recognition cerca in un catalogo già predisposto le occorrenze presenti, proponendoci delle alternative di costruzione, con le relative istruzioni di montaggio. Queste istruzioni si basano presumibilmente su un prontuario già presente, essendo le immagini della guida non correlate ai colori dei pezzi in nostro possesso.

Fase di sperimentazione e costruzione. 🙂

L’idea progettuale è molto simpatica ed apre ad una integrazione ludica e tecnologica comunque basata sulla socializzazione e sulle capacità di personalizzazione progettuale.

Da un punto di vista funzionale l’app si è rivelata abbastanza stabile.
Durante la “sperimentazione” (con il supporto di un esperto in costruzioni ;)) l’App ha commesso pochi errori di identificazione, principalmente a causa di parziali occlusioni dei pezzi sotto altri. Tale evenienza però ha permesso piccole reinterpretazioni pesonali che hanno reso ancora più originali le nostre creazioni.

P.S.: Citazione doverosa in tale ambito è il software di progettazione sviluppato da Lego Digital Designer (https://www.lego.com/it-it/ldd) per la creazione di nuovi progetti di costruzione, con relativa elaborazione automatica di istruzioni di montaggio. In questo caso ovviamente si tratta di una semplice applicazione per la progettazione 3D senza alcun supporto di AI.

https://www.youtube.com/watch?v=z5U_BqJcQ3Y