Riconoscimento e proiezione di oggetti su un ambiente virtuale

Documenti analoghi
ALGORITMO SPUTNIK 1. INTRODUZIONE

COMPUTER VISION: VERSO UN RICONOSCIMENTO AUTOMATICO DEI GESTI COMUNICATIVI

1 PERCHÉ LA AG-HPX301E È UNA CAMERA RIVOLUZIONARIA?

Introduzione. Obiettivi

quadrilatero generico parallelogramma rombo rettangolo quadrato

Riconoscimento Facciale DVR Guida Rapida

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android

Considerazioni sull uso del compasso per l acquisizione di concetti geometrici di Luciano Porta

GRIGLIA DI CORREZIONE 2013 Matematica Classe I Scuola secondaria di primo grado FASCICOLO 1

1 - STATO DELL ARTE DEI SISTEMI DI VIDEOSORVEGLIANZA...7

Un poligono può avere tre, quattro, cinque o più lati. Il vertice è il punto d incontro di due lati; i vertici si indicano

Le immagini. Parametri importanti sono:

Parte 1/4: Formazione delle immagini

HUVITZ HS-5000 LAMPADA A FESSURA NOTATE LA DIFFERENZA ATTRAVERSO LA FESSURA HUVITZ UNA SOLUZIONE DIAGNOSTICA AVANZATA

Dealing with Videos. Oliver Giudice

Caveat. Sintesi di Immagini. Sintesi di Immagini. Rendering: Approccio Fisico

Caveat. Object e viewer, come tutte le metafore, sono entità non definite rigidamente. La luce fa parte del viewer? Il viewer è anch esso un object?

Telecamere per la vision artificiale. Corso di Robotica Prof. Davide Brugali Università degli Studi di Bergamo

Un nuovo sistema di image processing per lo screening della celiachia

PROGRAMMAZIONE DI MATEMATICA 2016/2017

Esercitazione Strumentazione virtuale

CAPITOLO 5 PROCESSO DI IDENTIFICAZIONE E COMPENSAZIONE DELLA COPPIA GRAVITAZIONALE INTRODUZIONE

Elaborazione dei dati. pkt /9

AL DI LA DELLE IMMAGINI

M. De Cecco

STUDIO E IMPLEMENTAZIONE DI UN SISTEMA DI PARCHEGGIO ASSISTITO

Punto d intersezione delle altezze nel triangolo

La prospettiva e i suoi strumenti teorici e tecnici

LA CAMERA DEGLI SPECCHI

Studio di tecniche per la rivelazione di traiettorie di veicoli in movimento in sequenze video

Nozioni di grafica sul calcolatore. concetti di base

Il contrasto. La percezione del contrasto. Contrasto e filling-in. Il contrasto simultaneo. Le distribuzioni di luminanza (ii)

B6. Sistemi di primo grado

Stima di Posizione e Orientamento Mediante Elaborazione di Immagini con il Filtro di Kalman

DAC Digital Analogic Converter

Radar e Sistema di Puntamento con Arduino e Processing

TERMINOLOGIA. SEGNALE: Qualsiasi forma di messaggio od effetto di uno specifico processo atto al trasferimento di informazioni (McGraw-Hill,

nome: classe: data: delle quattro figure sottostanti non risulta in ogni caso congruente a quella sopra?

Cinematica Angolare! FONDAMENTI DI BIOINGEGNERIA - ING.FRANCESCO SGRO!

Applicazioni dell algebra alla geometria

IL PRINCIPIO DELLE INTERSEZIONI

Disparity Inverse Perspective Image

TELECAMERE MegaPixel e HDSDI

RestauroCam: Telecamera per Restauro

Applied Intelligent Systems Laboratory (AIS-Lab)

Percezione. Germano Rossi ISSR 2011/12

PROIEZIONI ASSONOMETRICHE

RAPPRESENTAZIONE VETTORIALE

Servizio Nazionale di Valutazione a.s. 2009/10 (a cura di Franca Ferri, Rossella Garuti, Aurelia Orlandoni)

Painteraction. 2. Web server con relativa infrastruttura che consente il salvataggio dei dati in un cloud

S 2 S 1 S 3 S 4 B S 5. Figura 1: Cammini diversi per collegare i due punti A e B

Esercitazioni di Statistica

PROGETTAZIONE ANNUALE DI SCIENZE MATEMATICHE

UNIVERSITÀ DEGLI STUDI DI PADOVA Facoltà di Ingegneria A.A. 2009/10

Filtraggio. Stefano Ferrari. Università degli Studi di Milano Tecniche di calcolo e sistemi operativi e informatica

Campionamento La statistica media campionaria e la sua distribuzione

Esercitazione di Statica

Anno 4 Cilindro, cono e tronco di cono

Proposte di Tesine/Tesi Laboratorio di Sistemi Autonomi Intelligenti

Confrontare angoli Indica, colorando il quadratino, quali sono gli angoli retti tra quelli che vedi qui sotto.

Concetti Introduttivi. Rappresentazione delle informazioni

L ampiezza degli angoli si misura in gradi (simbolo ), da 0 a 360. sottomultipli

Due esempi di simmetria

Misure della distanza tra punti e propagazione dell errore

Uso degli apparecchi elettrosensibili di protezione: cosa è necessario sapere...

Processamento delle immagini

Definizione. Il valore assoluto lascia inalterato ciò che è già positivo e rende positivo ciò che positivo non è.

La visione 3D, una nuova dimensione per la qualità Marco Catizone Sick

PROGRAMMAZIONE DIDATTICA DI MATEMATICA

Low Level Vision: Trasformata di Hough

Giornata ANIPLA presso il SAVE. Sistemi di Visione Artificiale nei Processi Industriali. 24 ottobre 2012

LIPS, camere 3D con rilevamento della profondità Foto e video live - Notebook Italia

Digit: mouse completamente virtuali! Display 3D Display Multi-touch! Realtà aumentata: Project Glass! Finestre Intelligenti

APPLICAZIONE 3D: VIRTUAL TOUR DAL SITO WEB

preconoscenze e di eventuali misconoscenze.

5 Fondamenti di Ottica

Multispectral and hyperspectral vision

TRIGONOMETRIA E COORDINATE

CORSO BASE PER ARREDATORE PeS

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Due algoritmi per l'elaborazione morfologica delle chiome cometarie

U n i v e r s i t à d e l P i e m o n t e O r i e n t a l e A m e d e o A v o g a d r o. Guido Vicino

Tecnologie Multimediali a.a. 2016/2017. Docente: DOTT.SSA VALERIA FIONDA

METODO DI CAVALIERI-SIMPSON (o delle parabole) (per il calcolo approssimato 1 di integrali definiti)

Sistemi di Visione Industriale

Procedura operativa per la gestione della funzione di formazione classi prime

BIOMECCANICA A A P r o f. s s a M a r i a G u e r r i s i D o t t. P i e t r o P i c e r n o

Grafico della funzione y = sen x

PointCloud 5.0 Anno 2009

RELAZIONE FINALE SPERIMESTATE IDENTIFICAZIONE SORGENTI CELESTI

Indice. Concetti generali. Concetti generali. Metodi numerici. Concetti generali. Concetti generali. Area di un triangolo e formula di camminamento

Progettazione Multimediale REGOLE DI COMPOSIZIONE GRAFICA. Parte 3. Lo spazio. Prof. Gianfranco Ciaschetti

Esercitazione 3 - Calcolo delle azioni interne

Psiche e complessità. 4. L approccio bottom-up ai problemi

CONICHE. Esercizi Esercizio 1. Nel piano con riferimento cartesiano ortogonale Oxy sia data la conica C di equazione

Introduzione a Matlab

GEOMETRIA DELLE MASSE

High Performance Stability Control HPSC.

Nuovi scenari per la matematica Salerno 29/08/2012.

Transcript:

Relazione Progetto Sistemi Intelligenti anno 2012/2013 Riconoscimento e proiezione di oggetti su un ambiente virtuale Miguel Rosales, Laura Musica 1. Introduzione Lo sviluppo della tecnologia Microsoft kinect ha permesso l introduzione di interfacce NUI(natural user interface) dove l utente interagisce con programmi/giochi soltanto attraverso gesti naturali. Le librerie kinect SDK allo stato del arte permettono infatti di tracciare i movimenti del corpo umano e utilizzarli per animare avatar in 2D o 3D. Nel nostro progetto abbiamo voluto studiare l interazione con un ambiente virtuale dove l utente fa uso non solo di gesti del corpo ma anche di oggetti per interagire con l ambiente. In particolare abbiamo implementato un algoritmo che permette il riconoscimento di un particolare oggetto nel mondo reale e l analisi del suo movimento ai fini di proiettarlo in un oggetto virtuale. Nel corso di questo documento descriveremo che tecnica abbiamo usato per riconoscere e tracciare il movimento dell oggetto per poi trasferirlo e animarlo sull ambiente virtuale. 2. Riconoscimento di un oggetto colorato su immagine RGB Esistono diverse tecniche per riconoscere oggetti, basate sull analisi del colore, sulla forma e sulla posizione dell oggetto all interno della scena. Le librerie SDK di kinect, in particolare, mettono a disposizione degli sviluppatori tre differenti flussi di dati. Il flusso colorimagestream fornisce in tempo reale le immagini riprese dalla camera RGB. Il flusso depthstream (profondità) definisce la distanza dalla camera

di un qualsiasi punto presente nella scena, permettendo così di avere un sistema di riferimento tridimensionale. Infine il flusso skeletonstream riporta le informazioni riguardanti la posizione dello scheletro del soggetto preso in considerazione. Nel nostro lavoro abbiamo deciso di utilizzare lo stream RGB da cui estrarre le informazioni riguardanti il colore e l orientamento dell oggetto (fig1) che si trova in mano all utente. Tramite la camera RGB si ha accesso ad uno stream di 30 frame per secondo con una risoluzione di 640 x 480 pixels. Abbiamo quindi creato un algoritmo che, per ogni frame ricevuto, analizza in tempo reale i dati in esso contenuti per rintracciare la posizione dell oggetto e la sua inclinazione. Fig 1. Oggetto colorato Nella fase di preprocessing l immagine ottenuta dallo stream della kinect (fig.2a) viene passata attraverso un filtro, per eliminare l eventuale rumore dovuto all imprecisione del sensore. L operazione di filtraggio è stata effettuata tramite filtro mediano, con una finestra di grandezza 5x5, che sostituisce ad ogni pixel il valore mediano(di colore) dei suoi vicini (fig.2b). Fig 2a) immagine rgb originale Fig 2b) applicazione filtro mediano Per distinguere l oggetto dallo sfondo sulla base del colore, lo spazio Rgb non è il più indicato, perché sensibile alle variazioni di luminosità. Esistono altri spazi

colore, come YCrCb e Hsv, che permettono di separare l informazione strettamente legata al colore dalla componente legata all intensità dell immagine e alla sua luminosità. Il primo dei due separa la componente di luminanza Y dalle componenti di crominanza Cb (blu) e Cr (rosso). Il secondo, invece, definisce i colori attraverso i tre parametri tinta(hue) H,saturazione S e valore V. Per il progetto abbiamo scelto di usare YCbCr e abbiamo definito un range di valori entro cui si trova il colore dell oggetto da ricercare (min=(0,60, 170), max=(250,130,255)). È stata generata quindi una maschera, dove solo i pixel il cui colore è compreso nel range sono bianchi, mentre tutti gli altri sono impostati a nero (fig.3b). Fig 3a. immagine rgb originale Fig 3b. maschera bianco-nero 3. Tracking dell oggetto in movimento A causa della limitazione del sensore rgb, abbiamo deciso di considerare il movimento dell oggetto(fig 1) solo sul piano frontale, in due dimensioni. Per poter proiettare questo movimento sulla scena tridimensionale è necessario quindi determinare in ogni frame un angolo di rotazione, formato dall asse principale dell oggetto con l asse orizzontale. Una volta ottenuta dallo stream rgb l immagine in bianco e nero, in cui l oggetto è separato dal resto della scena, vengono calcolati i contorni di tutti le regioni chiare che commpaiono nell immagine. Per eliminare il rumore residuo, viene poi considerato solo il contorno di lunghezza massima, che corrisponde con alta probabilità a quello dell oggetto. A questo punto è possibile approssimare l angolo cercato tramite l inclinazione del rettangolo di area minima che racchiude il contorno.

Fig 4. angolo di rotazione Per permettere un movimento a 360 gradi, questo angolo deve però essere calcolato rispetto ad un sistema di riferimento che ha come origine la mano dell utente, che corrisponde al centro della rotazione. Per fare ciò sono stati pertanto utilizzati i dati contenuti nello stream dello scheletro per ottenere le coordinate del punto corrispondente alla mano. Ai fini del calcolo, possiamo considerare al posto dell intero rettangolo il solo segmento che corrisponde ad uno dei suoi lati più lunghi. L angolo rispetto all asse orizzontale rimane così invariato, ma in più è possibile identificare i due punti estremi della figura. Il punto tra questi che si trova a distanza minima dalla mano sarà l estremo dell oggetto che è in mano all utente e di conseguenza il centro di rotazione. nota: durante i test abbiamo notato una certa difficoltà da parte dell algoritmo di tracking nel riconoscere la mano. è capitato infatti che essa venisse rilevata erroneamente sull estremità superiore dell oggetto come se l oggetto stesso fosse un estensione del braccio. Per risolvere questo problema si è deciso di utilizzare il gomito anzichè la mano come punto di riferimento per calcolare le distanze e definire il centro di rotazione. Questo ha escluso le rilevazioni errate da parte del kinect. Fig 5a. immagine originale Fig 5b. lato del rettangolo(verde) e gomito( blu)

4. Ambiente di sviluppo Il modulo da noi sviluppato si integra con l engine grafico del laboratorio AISLab, per la creazione dei giochi di riabilitazione basati sull interazione con un ambiente virtuale. L engine si interfaccia al motore grafico opensource panda3d per la creazione dell avatar e della scena virtuale e alla sdk di kinect per il tracking dello scheletro dell utente. Noi abbiamo scelto come linguaggio di sviluppo python perche più semplice da integrare con i moduli già esistenti, mentre per la parte di image processing ci siamo appoggiati alle librerie di opencv, per avere prestazioni più ottimizzate. Il risultato finale del lavoro è visibile nelle immagini sottostanti. L avatar si muove seguendo i movimenti dell utente grazie al tracking dello scheletro mentre la spada parentata alla mano si muove secondo la rotazione da noi calcolata, che rispecchia quella dell oggetto.

5. Possibili sviluppi e miglioramenti futuri In questo progetto è stato studiato l utilizzo del colore per il riconoscimento di oggetti in una scena. I risultati dati da questo tipo di analisi non sono però sempre robusti a causa delle variazioni di luminosità nella stanza e alla difficoltà nel individuare un colore che si distingua nettamente dagli altri colori della scena. Il nostro metodo si è rilevato particolarmente efficace su una scena dove i toni prevalenti sono dati da colori freddi. Se nella scena compaiono elementi di colore simile a quello dell oggetto utilizzato (fig.1), l algoritmo può dare risultati non accurati. Un possibile miglioramento potrebbe essere quello di tenere traccia della proffondità a cui si trova l oggetto in modo da distinguerlo meglio dallo sfondo oppure utilizzare un oggetto luminoso. Un altro approccio potrebbe essere quello di considerare oltre al colore la forma dell oggetto.