RELATORE: Prof. Ing. Vitoantonio Bevilacqua, PhD
CORRELATORI: Prof. Ing. Antonio Frisoli, PhD – Ing. Claudio Loconsole, PhD
AUTORE: Fabio Stroppa
Il lavoro consiste nello sviluppo di un sistema di visione artificiale da integrare nel progetto BRAVO, un sistema di neuro-riabilitazione assistita da esoscheletri robotici per pazienti post-ictus realizzato dal laboratorio PERCRO dell’Istituto Scuola Superiore Sant’Anna di Pisa.
Il sistema BRAVO prevede un esoscheletro per braccio, denominato L-Exos, che guida i movimenti del paziente durante l’operazione di raggiungimento di oggetti reali in uno scenario (verosimilmente, un tavolo dove sono disposti degli oggetti). Questi oggetti sono scansionati da un sensore 3D o RGB-D per la ricostruzione dello scenario nell’ambiente virtuale in modo da conoscerne le coordinate poterle inviare al modello Simulink del braccio robotico. Il paziente è munito di un Eye-Tracker per il monitoraggio del movimento degli occhi, che si associa univocamente ad un solo oggetto nello scenario, in modo da identificare il target selezionato che si intende raggiungere. Il comando di movimento del robot, invece, viene fornito tramite Brain-Computer Interface (BCI) elaborando i segnali cerebrali del paziente, identificando una soglia per la quale lo stesso intende muovere o meno l’arto.
Gli ulteriori sviluppi forniti da questo lavoro di tesi consistono nell’utilizzo altri due arti robotici: un’ortesi per mano ed un polso, utili al paziente per poter fisicamente afferrare gli oggetti. Avendo questi solo due gradi di libertà (falangi superiori e pollice per la mano, prono-supinazione e flesso-estensione per il polso), la forma che gli oggetti devono avere per poter essere raggiunti ed dall’intero sistema robotico deve essere necessariamente cilindrica.
Il lavoro è quindi stato dedicato completamente nella riscrittura del software di acquisizione dell’ambiente virtuale, specializzandolo nel riconoscimento di figure cilindriche. Di queste, le coordinate del loro centroide e la loro orientazione nello spazio sono infine fornite (via UDP) al braccio robotico, il quale si occuperà dell’effettivo raggiungimento nell’ambiente reale. Ognuno degli oggetti dello scenario è soggetto ad un algoritmo di tracking e riconoscimento in modo tale da poter identificare fotogramma dopo fotogramma gli oggetti in questione, anche se soggetti a movimento.
Come sensore RGB-D utilizzato per l’acquisizione dello scenario tridimensionale si è scelto il Microsoft Kinect; per l’elaborazione delle immagini 2D si è utilizzata la libreria OpenCV; infine, per l’elaborazione 3D si è invece scelta la libreria Point Cloud Library (PCL).
I requisiti di sistema prevedono che tutta l’elaborazione debba essere eseguita in real-time, dunque il flusso video acquisito deve essere processato fotogramma per fotogramma da moduli computazionalmente compatibili con le operazioni richieste dallo scenario riabilitativo. Ogni fotogrammadel video, quindi, è processato per identificare quali oggetti sono presenti nello spazio di lavoro, quali di questi sono cilindrici e quali di questi possono essere associatiad oggetti precedentemente osservati (tracking).
Inizialmente, il software procede con una preliminare fase di filtraggio degli elementi non facenti parte della Regione di Interesse del sistema, snellendo il numero di dati che saranno successivamente processati. La risultante immagine 2D filtrata viene successivamente trasformata in una nuvola di punti tridimensionale sfruttando le informazioni di profondità della scena fornite dal sensore IR del Kinect.
La risultate scena tridimensionale viene quindi segmentata al fine di suddividerla nei soli oggetti posizionati davanti al paziente. Viene quindi richiamato un sotto-modulo di Riconoscimento dei Cilindri, il quale si occupa di scartare tutti gli oggetti non aventi suddetta forma geometrica. Nell’ottica di seguire oggetti reali che possono essere maneggiati da un utente (tipicamente, un fisioterapista che segue il paziente durante la terapia), questi possono essere parzialmente occlusi dalla mano che li afferra; pertanto, si è reso necessario l’utilizzo di un preliminare Filtro di Pelle Umana dell’iniziale immagine RGB, escludendo dall’elaborazione 3D tutto ciò che viene considerato facente parte di una mano (oggetti divisi dalla mano dell’utente sono ricostruiti con appositi metodi che sfruttano le caratteristiche geometriche dei cilindri rilevati nell’immagine).
Infine, ogni cilindro precedentemente riconosciuto dal sistema è soggetto al sistema di Tracking, il quale cerca di associare ogni oggetto nel fotogramma corrente ad un oggetto apparso nello storico dell’intero flusso video, per poterne seguire gli spostamenti. L’associazione viene effettuata considerando esclusivamente informazioni tridimensionali degli oggetti analizzati (in particolare, VFH features, posizione nello spazio, colore dell’oggetto e dimensione).
I test effettuati sull’algoritmo hanno previsto l’utilizzo di un Datasetdi 300 oggetti. Il modulo di Riconoscimento dei Cilindri ha ottenuto una matrice di confusione con Precisione pari a 92,6% e Recall pari a 92,4%. Il modulo di Tracking 3D ha ottenuto una correttezza di tracking dell’89,62% degli oggetti del dataset. Molti degli errori riscontrati sono fortemente dipendenti dai parametri utilizzati come input del sistema.
Il lavoro è stato pubblicato presso Eurohaptics 2014 con il titolo “A Robust Real-Time 3D Tracking Approach for Assisted Object Grasping”. [DOWNLOAD]