IT201900007040A1 - Sistema per rilevamento delle interazioni con una superficie - Google Patents

Sistema per rilevamento delle interazioni con una superficie Download PDF

Info

Publication number
IT201900007040A1
IT201900007040A1 IT102019000007040A IT201900007040A IT201900007040A1 IT 201900007040 A1 IT201900007040 A1 IT 201900007040A1 IT 102019000007040 A IT102019000007040 A IT 102019000007040A IT 201900007040 A IT201900007040 A IT 201900007040A IT 201900007040 A1 IT201900007040 A1 IT 201900007040A1
Authority
IT
Italy
Prior art keywords
cluster
sensors
interactions
objects
image
Prior art date
Application number
IT102019000007040A
Other languages
English (en)
Inventor
Samuel Aldo Iacolina
Gavino Paddeu
Alessandro Soro
Massimo Deriu
Carlino Casari
Pietro Zanarini
Original Assignee
Centro Di Ricerca Sviluppo E Studi Superiori In Sardegna Crs4 Srl Uninominale
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centro Di Ricerca Sviluppo E Studi Superiori In Sardegna Crs4 Srl Uninominale filed Critical Centro Di Ricerca Sviluppo E Studi Superiori In Sardegna Crs4 Srl Uninominale
Priority to IT102019000007040A priority Critical patent/IT201900007040A1/it
Priority to EP20742856.6A priority patent/EP3973376A1/en
Priority to PCT/IB2020/054720 priority patent/WO2020234757A1/en
Publication of IT201900007040A1 publication Critical patent/IT201900007040A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0428Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means by sensing at the edges of the touch surface the interruption of optical paths, e.g. an illumination plane, parallel to the touch surface which may be virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3141Constructional details thereof
    • H04N9/3147Multi-projection systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3191Testing thereof
    • H04N9/3194Testing thereof including sensor feedback

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Description

TITOLO
“Sistema per rilevamento delle interazioni con una superficie “
DESCRIZIONE
Campo di applicazione dell’invenzione
La presente invenzione si riferisce ad un sistema per rilevamento delle interazioni con una superficie.
Stato della tecnica
L’oggetto della presente invenzione concerne un sistema e una tecnologia che consenta di rendere interattiva una superficie qualsiasi e abbia almeno le seguenti caratteristiche:
1) consenta di rendere interattiva una superficie;
2) rilevi qualsiasi oggetto o parte del corpo a contatto o vicinanza con la superficie, parte del corpo anche coperta (es. un utente può indossare guanto);
3) sia scalabile e consenta di coprire superfici grandi a piacere senza interruzioni percepibili al tatto o alla vista (bordi, cornici o altro);
4) la topologia dei componenti del sistema sia progettata per avere il minor numero di occlusioni;
5) sia sufficientemente performante da rilevare oggetti che vengono lanciati contro la superficie resa interattiva.
Esistono diverse tecniche che consentono di rendere interattiva una superficie e per la maggior parte vengono classificate come tecnologie touch o multi-touch.
Le superfici capacitive consentono di rilevare il tocco delle dita grazie ad una superficie sensibile alle variazioni del campo elettrico indotto dal passaggio di corrente tra dito e superficie nel punto di contatto. A causa della perdita di segnale nei percorsi elettrici, le superfici capacitive hanno una dimensione massima di circa 2,5 metri per lato. Altre tecnologie combinano l’utilizzo di schermi multi-touch con proiezioni in larga scala per realizzare grandi schermi interattivi in spazi condivisi, come descritto nell’articolo di S. Iacolina e altri, “Sinnova Social Wall: a low-cost multi-touch wall supporting visitors in a trade fair” (CHITALY 2015). Il riconoscimento dell’interazione avviene tramite riconoscimento ottico, posizionando un set di videocamere sensibili all’infrarosso sul lato inferiore della superficie interattiva, collegate ad un singolo controller che, attraverso algoritmi di computer vision, determina la posizione delle dita che entrano in contatto con la superficie. Il riconoscimento delle interazioni sulla superficie avviene definendo un orizzonte statico, che definisce il piano di interazione, per ogni sensore ottico.
L’interazione verrà rilevata quando un oggetto di dimensioni adeguate (maggiore di 2 cm) interrompe tale orizzonte e pertanto il sistema è in grado di percepire solo agli oggetti che oltrepassano o toccano tale orizzonte. L’orizzonte statico, viene posizionato manualmente in fase di installazione in genere in modo che corrisponda al semipiano vicino alla superficie che si vuole rendere interattiva. Il riconoscimento avviene tramite operazioni di background subtraction: per ogni pixel, dal valore di intensità dell’orizzonte catturato dai sensori viene sottratto il corrispondente valore di intensità dell’orizzonte catturato in assenza di oggetti (definito appunto background). Dopo questa operazione di sottrazione sull’orizzonte lineare si considerano come pixel di foreground (corrispondenti all’oggetto che ha oltrepassato l’orizzonte) i pixel al cui sottrazione supera un certo valore di soglia statica. Per tale motivo la soluzione è sensibile e reattiva solo se nell’orizzonte c’è un netto contrasto tra l’oggetto e lo sfondo inquadrato e quindi solo se l’intensità dei pixel corrispondenti all’oggetto allo sfondo supera la data soglia. Per migliorare le prestazioni in ambienti a luminosità non controllata (locali scarsamente illuminati, luminosità ambientale variabile), il sistema include un illuminatore a luce infrarossa di forma lineare posizionato nel bordo opposto, di fronte ai sensori. In questo caso, con l’illuminatore acceso, l’orizzonte va posizionato manualmente sopra il segmento lineare corrispondente all’illuminatore acceso nell’immagine della videocamera. Come algoritmo di clustering viene usato DBscan.
Altre tecniche prevedono un tavolo interattivo integrato con una videocamera e un processo di tracking dell’utente, per creare installazioni interattive in musei ed ambienti multi-utente, come descritto in: Storz, M., Kanellopoulos, K., Fraas, C., and Eibl, M. Comfortable: “A tabletop for relaxed and playful interactions in museums”,in Proceedings of the Ninth ACM International Conference on Interactive Tabletops and Surfaces, ITS ’14, ACM (New York, NY, USA, 2014), 447–450).
Un ulteriore approccio ottico definito zerotouch costruisce una cornice multitouch posizionando sensori all’infrarosso in una cornice rettangolare in grado di percepire le interazioni che avvengono all’interno.
Le tecniche sopra menzionate, pur rientrando nelle categorie degli schermi multitouch, non sono in grado di rispettare le caratteristiche descritte sopra.
Le superfici capacitive non rispettano i requisiti 1) e 2), in quanto per rilevare l’interazione prevedono il passaggio di corrente, un contatto diretto tra la superficie e la parte di contatto (dito o mano), per cui l’utente non può indossare guanti o altri indumenti isolanti; per questo stesso motivo non sono in grado di rilevare oggetti isolati lanciati verso la parete non collegati a terra; inoltre le dimensioni delle stesse non possono superare un certo limite per problemi di propagazione del segnale all’interno dei percorsi elettrici.
La tecnologia descritta in CHITALY 2015 è poco performante sia in termini di: ● configurazione: essendo statica la definizione del piano di interazione (orizzonte), il metodo di definizione della topologia richiede una calibrazione per ogni sensore e ripetute sessioni di calibrazione quando il sistema di sensori si disallinea (anche per leggeri disallineamenti) o cambia la topologia.
● sensibilità: l’algoritmo di clustering DBscan consente la distinzione di oggetti analizzando solo la dimensione dell’orizzonte interrotto e non consente una classificazione gerarchica e quindi la distinzione tra dita, mani e oggetti ottenuta da una analisi di altri fattori (es. forma, velocità di entrata ed uscita, colore nel caso in cui si utilizzino sensori RGB, etc.).
● modularità e scalabilità: i sensori vengono gestiti da un unico controller e non è possibile scalare in estensione oltre un certo limite (per problemi di banda passante vi è un limite massimo sensori collegati ad un unico controller).
L’approccio zerotouch, pur essendo un sistema ottico, non rispetta il requisito 3), in quanto per problemi di propagazione del segnale non è possibile costruire cornici oltre circa i 3 metri di lunghezza.
I tavoli interattivi e gli altri sistemi ottici che utilizzano una retroproiezione o una retrocamera non rispettano il requisito 1), perché prevedono di utilizzare dei sensori dietro la superficie, per cui non è possibile utilizzare queste tecnologie per rendere interattiva una superfice già esistente senza la modifica dell’ambiente originale.
Preferibilmente i sensori ottici per maggiore affidabilità emettono e ricevono ad una sola frequenza, che è la stessa dell’illuminatore (nel campo degli infrarossi….) , in modo da rendersi indipendente dal tipo di illuminazione dell’ambiente e dalla rumorosità ambientale.
Ciascun sensore vede l’oggetto dal proprio punto di vista, identificando una linea immaginaria che parte dalla posizione del sensore fino al punto in cui l’orizzonte è stato interrotto. Ripetendo il procedimento per tutti i sensori è possibile ottenere la posizione degli oggetti attraverso un’operazione di triangolazione (descritta in seguito) delle varie rette passanti per il punto di contatto.
Sommario dell’invenzione
Pertanto scopo della presente invenzione è quello di proporre un sistema per rilevamento delle interazioni con una superficie, volto a superare tutti gli inconvenienti suddetti.
Nel presente contesto, per “superficie” si intende una superficie di un qualsiasi tipo, anche di grandi dimensioni, sostanzialmente piana, liscia o di una determinata rugosità, di tipo attivo, quale ad esempio un pannello display in grado di proiettare immagini ferme o in movimento autonomamente, oppure di tipo passivo, nel senso in grado di riflettere immagini ferme o in movimento proiettate dall’esterno, dal retro o da davanti rispetto alla posizione di installazione del sistema, oppure dotata di un’immagine o disegno impresso su di essa. L’orientamento è preferibilmente verticale, non escludendo altre disposizioni, ad esempio orizzontale o obliqua.
Nel presente contesto, per “interazione” si intende contatto o vicinanza con la superficie da parte di uno o più oggetti, normalmente una o più dita della stessa mano o di mani diverse di persone che si avvicinano alla superficie, ma anche oggetti di tipo diverso, normalmente di dimensioni paragonabili a quelle delle dita umane.
Il sistema oggetto dell’invenzione si basa su una tecnologia low - cost per la realizzazione di superfici interattive di grandi dimensioni. La tecnologia, basata su un approccio ottico, consente di rilevare la presenza di molteplici entità (oggetti o parti del corpo umano) che si trovano in prossimità della superficie, e di determinare la loro posizione, anche variabile nel tempo, rispetto alla superficie.
Il sistema comprende essenzialmente una serie di sensori ottici posizionati davanti al piano della superficie, opportunamente allineati ed orientati. Per incrementare la sensibilità del sistema, vengono utilizzati sensori di banda più larga operanti sia nel visibile sia nell’infrarosso. Nel caso in cui si operi in condizione di scarsa luminosità ambientale è possibile utilizzare due tipologie di illuminatore a luce infrarossa:
● illuminatore posizionato dalla parte opposta della superficie rispetto ai sensori. A titolo di esempio, i sensori sono posizionati nel bordo superiore della superficie e orientati verso il basso, e l’illuminatore giace sul bordo inferiore, ma anche la disposizione opposta è possibile., In questo modo l’orizzonte apparirà luminoso mentre gli oggetti appariranno scuri (perché creano un’ombra della luce proveniente dall’illuminatore verso la videocamera).
● illuminatore laser a luce infrarossa posizionato sullo stesso piano dei sensori e orientato, come i sensori, verso la superficie che si vuole rendere interattiva. In questo modo gli oggetti appariranno luminosi in quanto riflettono la luce dell’illuminatore mentre lo sfondo apparirà scuro.
Nel funzionamento, il sistema rileva un oggetto (o dita di una persona) che tange o si avvicina alla superficie analizzando le immagini provenienti da ciascun sensore e distinguendo la silhouette dell’oggetto dallo sfondo. La procedura di rilevamento dei punti di contatto è così facilitata dall’elevato contrasto tra oggetto e sfondo/orizzonte.
I sensori (e l’illuminatore, se presente) creano una zona (o fascio) di rilevamento sottile e continua, davanti alla superficie.
Il rilevamento del punto di contatto avviene attraverso varie operazioni di image processing che consentono di:
● rilevare quando un oggetto si avvicina alla superficie (appena entra nel campo visivo dei sensori)
● riconoscere quando questo oggetto tange la superficie e quindi attraversa un orizzonte lineare (riconosciuto automaticamente), che identifica in prospettiva il piano della superficie.
Gli obiettivi principali dell’invenzione sono:
● offrire un ambiente multi-touch e multi-user utile per la costruzione di superfici interattive (pareti, pavimenti e tavoli);
● rilevare sia gli oggetti che toccano la superficie sia quelli che si avvicinano;
● riconoscere e distinguere gli oggetti che interagiscono con la superficie distinguendo tra dita, mani e oggetti;
● consentire la creazione di grandi superfici interattive, attraverso una architettura modulare;
● offrire una semplice procedura di installazione attraverso dei moduli indipendenti che vengono posti su un lato della superficie;
● minimizzare i costi di installazione, facendo uso di hardware di dimensioni contenute e di facile reperibilità (ad esempio videocamere, micro-controller e micro-computer).
Qui di seguito si danno brevi cenni sulle principali differenze innovative, rispetto a sistemi noti descritti in brevetti esaminati.
EP2122416 descrive un sensore ottico realizzato attraverso un approccio algoritmico di image-processing per il calcolo delle interazioni.
L’algoritmo di calcolo delle componenti interattive della presente invenzione, nella fase di detecting, sottofase sensing, usa un algoritmo di “background subtraction” per la determinazione delle porzioni di immagine corrispondenti ad oggetti che sono considerati interattivi. Ogni sensore determina una distinzione del “foreground” dal “background”, calcolando la differenza di immagini tra un’immagine di background calcolata come media degli ultimi n-frame, e l’immagine corrente.
Il brevetto citato utilizza background prodotto da una immagine atomica ottenuta in un momento prestabilito (ad illuminatore spento). La presente invenzione utilizza un background adattivo prodotto da una media di immagini, mentre l’illuminatore, se presente, è sempre acceso.
Il sistema del brevetto citato utilizza due sensori ottici utilizzati in tempi distinti: un sensore viene utilizzato mentre l’illuminatore è acceso (i punti di contatto sono illuminati), l’altro mentre il sensore è spento (la scena inquadrata col sensore spento rappresenta il background da sottrarre all’immagine proveniente dal primo sensore). La differenza di queste due immagini permette il calcolo del background. Nel sistema della presente invenzione invece:
- ogni sensore è indipendente, si considera un’immagine (e conseguente background per ogni sensore) distinta per ogni sensore;
- vi sono più sensori posizionati in maniera differente, N sensori sono infatti localizzati su un bordo della superficie;
- non ci sono fase di luce / buio determinate da una accensione/spegnimento dell’illuminatore: quest’ultimo, se presente, è sempre acceso.
EP2443481 descrive un array di emettitori a luce infrarossa e un array di sensori (sensibili alla luce infrarossa) che vengono utilizzati per il calcolo della posizione degli oggetti rilevati come interattivi, con un approccio ottico.
Il sistema descritto nel brevetto utilizza un illuminatore solamente per il calcolo delle occlusioni e la produzione di una immagine finale dove il punto di ombra viene considerato come punto di interazione. Il sistema della presente invenzione considera l’intera scena inquadrata dalle videocamere.
Il sistema descritto nel brevetto utilizza un sincronismo tra illuminatore e sensore per produrre l’immagine contenente le occlusioni alla luce (punti di interazione). Nel sistema della presente invenzione non vi è alcun sincronismo ed il calcolo del background è demandato ad un algoritmo di “background subtraction” adattivo.
Il sistema descritto nel brevetto utilizza sensori ottici ed emettitori disposti lungo tutti i quattro bordi della superficie, funzionanti in modo sincronizzato: un sensore viene acceso mentre tutti gli altri sono spenti. Nel sistema della presente invenzione invece:
I sensori sono disposti lungo un bordo della superficie;
L’emettitore di raggi infrarossi, se presente, è posizionabile a piacimento: sia dalla parte opposta dei sensori rispetto alla superficie sia dallo stesso lato dei sensori;
Ogni sensore è indipendente, si considera un’immagine (e conseguente background per ogni sensore) distinta per ogni sensore;
Non ci sono fasi accensione/spegnimento dei sensori: questi ultimi sono sempre accesi.
EP2443472 descrive un sistema di rilevamento della direzione di una sorgente luminosa all’interno di una regione sensibile.
Il sistema descritto dal brevetto determina la posizione delle sorgenti luminose, mentre il sistema della presente invenzione rileva l’interazione di oggetti che non sono sorgenti luminose (non proiettano luce propria, bensì possono riflettere o bloccare una radiazione luminosa);
Il sistema descritto dal brevetto prevede due distinti array di sensori, mentre il sistema della presente invenzione prevede moduli contenenti solamente una tipologia di sensore (videocamera sensibile al visibile e all’infrarosso).
Il sistema descritto dal brevetto prevede due distinti array di sensori e interazioni fra questi per il calcolo del posizionamento della sorgente luminosa, mentre il sistema della presente invenzione utilizza un algoritmo di triangolazione e conseguente clustering gerarchico per il calcolo della posizione dell’oggetto che ha iniziato l’interazione.
EP2487624 descrive genericamente un sistema di rilevamento della posizione di oggetti che riflettono una radiazione luminosa, riconosciuti all’interno di un set di oggetti di tipo predefinito.
Il sistema della presente invenzione prevede il riconoscimento di oggetti che toccano la superficie (touch), che la sfiorano (pre-touch) e il riconoscimento di determinate tipologie di gesti che include un sistema per il riconoscimento dei movimenti nel tempo (touch-start, touch-end, touch-move).
Il sistema descritto dal brevetto prevede un algoritmo di training per il riconoscimento di oggetti che fa uso di un modello polinomiale che rappresenta un set di training point in uno spazio multi-dimensionale, mentre il sistema della presente invenzione utilizza un algoritmo di riconoscimento basato su una macchina a stati, algoritmi feature based e un sistema di soglie.
E’ oggetto della presente invenzione un sistema per rilevamento delle interazioni con una superficie, detta superficie essendo sostanzialmente piana, dette interazioni essendo di contatto o vicinanza con la superficie da parte di uno o più oggetti, detto sistema comprendente:
- più sensori ottici (C1,…..C5) allineati davanti ad un lato di detta superficie (S), in grado di generare coni di vista (FW) parzialmente sovrapposti, indipendenti e dotati di capacità computazionale, generanti una zona (Z) di rilevamento continua davanti alla superficie, atta a realizzare detto rilevamento delle interazioni;
- mezzi in ciascun sensore indipendente adattati per analizzare i segnali provenienti da detti sensori ottici e configurati per compiere operazioni di rivelazione, riconoscimento e generazione di eventi in successione, in modo da poter raggruppare detti sensori in moduli indipendenti atti ad essere applicati alla superficie da rendere interattiva;
- dette operazioni di rivelazione comprendendo: pre-filtraggio, convoluzione e algoritmi “feature based” atti a determinare la posizione di detti uno o più oggetti entro detta zona (Z) di rilevamento continua e determinarne la tipologia distinguendo tra mani, dita e oggetti che entrano in un campo visivo dei sensori;
- dette operazioni di riconoscimento comprendendo: triangolazione con windowing atta a calcolare le posizioni delle interazioni tra dette posizioni , clustering gerarchico per determinare la tipologia di interazione, tracking di dette posizioni , in modo da definire le variazioni di dette posizioni in un periodo di tempo;
- dette operazioni di generazione di eventi comprendendo: trasformazione di dette posizioni e variazioni nel tempo in eventi visualizzati, rivelando dette interazioni.
E’ particolare oggetto della presente invenzione un sistema per rilevamento delle interazioni con una superficie, come meglio descritto nelle rivendicazioni, che formano parte integrante della presente descrizione.
Breve descrizione delle figure
Ulteriori scopi e vantaggi della presente invenzione risulteranno chiari dalla descrizione particolareggiata che segue di un esempio di realizzazione della stessa (e di sue varianti), e con riferimento ai disegni annessi dati a puro titolo esplicativo e non limitativo, in cui nelle figure allegate sono evidenziati esempi di realizzazione del sistema oggetto dell’invenzione.
Gli stessi numeri e le stesse lettere di riferimento nelle figure identificano gli stessi elementi o componenti.
Descrizione di dettaglio di esempi di realizzazione
Il sistema della presente invenzione si basa su una tecnologia ideata per rendere interattiva una superficie. La tecnologia consiste in un sottosistema di sensori ottici per la rilevazione delle interazioni (input), un sottosistema multi-proiezione per la visualizzazione delle immagini (output), ed un sottosistema per la gestione delle applicazioni interattive.
Il sistema può comprendere essenzialmente le seguenti parti:
● Sottosistema Multi-Sensore
● Sottosistema Multi-Proiettore
● Sottosistema Gestore
Sottosistema Multi-Sensore
Il sottosistema fa uso di sensori ottici (C1, …..C5, Figura 1) disposti lungo un bordo della superficie S, adiacenti ad essa e orientati verso la stessa superficie.
Ogni sensore C comprende una videocamera VC sensibile agli infrarossi ed un microcomputer µP che, analizzando le immagini, è in grado di determinare la posizione di oggetti e parti del corpo (normalmente dita) che si avvicinano e/o toccano la superficie (detecting) (si veda anche la Figura 4).
Per incrementare le prestazioni del sistema, in caso di forte illuminazione ambientale, è preferibile utilizzare un illuminatore ad infrarossi I orientato verso il centro della superficie e posto sul lato opposto ai sensori rispetto alla superficie (Figura 3).
Ciascun sensore invia le informazioni di ciò che è stato rilevato ad un altro microcomputer che si occupa della fase di riconoscimento (recognition): un algoritmo di clustering gerarchico (descritto in seguito) determina le vere interazioni distinguendole dal rumore e riconosce gli eventi di interazione. Gli eventi di interazione riconosciuti sono: touch (touch-start, touch-move, touch-end), hand, object-hit, pre-touch. Tali eventi vengono successivamente inviati al driver che, all’interno del kernel-space del sistema operativo, si occupa di generare gli eventi ed inserirli nella coda degli eventi.
Qui di seguito è descritto un esempio di componenti e le fasi che descrivono il comportamento del sottosistema multisensore (Figure 2 e 3).
I componenti del sottosistema sono:
● n sensori ottici: ogni sensore (C1, …..C5) è composto da una videocamera sensibile agli infrarossi ed un microcomputer µP che analizza le immagini, determinando le posizioni dove è avvenuta l’interazione ed inviando tali informazioni al componente successivo;
● 1 micro-computer (µP): analizza ciò che stato rilevato dai sensori e riconosce gli eventi;
● n dispositivi di rete: si occupano della interconnessione dei componenti;
● n alimentatori: si occupano dell’alimentazione dei dispositivi;
● 1 computer: computer/workstation su cui è installato il driver e le applicazioni software interattive;
● cavi di alimentazione: per l’alimentazione elettrica delle componenti
● cavi di rete: per l’interconnessione e il passaggio dei dati tra i componenti;
La disposizione delle componenti (layout) è la seguente:
● modulo: i componenti sono organizzati in moduli M (Figura 2), ognuno contenente: 4 sensori, un dispositivo di rete NS (switch), un alimentatore P da 5V (per alimentazione dei 4 sensori e dello switch, connessioni di rete e di alimentazione;
4 sensori ottici: i sensori C sono disposti lungo un bordo della superficie S, direzionati verso il centro, aventi l’asse del cono di vista FoV (Field of View) (Figure 1, 3) perpendicolare al bordo della superficie, e creando una zona FW (o fascio) di rilevamento sottile e continua, davanti alla superficie.
1 dispositivo di rete: all’interno del box del modulo, dal lato opposto al sensore rispetto alla superficie;
● 1 alimentatore: all’interno del box del modulo, dal lato opposto al sensore rispetto alla superficie;
● cavo di alimentazione:
● cavo di rete: computer/workstation su cui è installato il driver e le applicazioni software interattive;
Nel sistema, il numero di sensori ottici da inserire dipende dal field of view FW scelto (angolo di apertura della videocamera). Per ottimizzare il potere di discriminazione su più dita o oggetti da identificare è preferibile che il field of view FW sia limitato. Applicando il procedimento dell’invenzione, di fatto per riconoscere N dita sono necessari N+1 sensori ottici. Ad es. se si desidera identificare 100 dita, si devono inserire 101 sensori ottici, in funzione della dimensione della parete su cui si vuole operare (ottimo 5 sensori ottici al metro). In questo modo si superano le limitazioni delle superfici ad effetto capacitivo, dove il segnale non si propaga su distanze elevate, come su detto.
Le fasi (e le sottofasi) del sottosistema sono:
● detecting: i sensori riconoscono le interazioni che avvengono sulla superficie;
○ pre-processing: vengono applicati degli algoritmi di pre-filtraggio, vale a dire di processing alle immagini per la riduzione del rumore (noise reduction) e l’enfatizzazione dei dettagli rilevanti (enhancement), applicando una maschera di convoluzione NxN con un kernel Gaussiano (come descritto in seguito); ○ sensing: viene applicata una convoluzione che determina la posizione in cui un oggetto o parte del corpo entra nel campo visivo del sensore; in questa fase le informazioni rilevate (dimensione, posizione, forma), ancora grezze, verranno successivamente ripulite ed analizzate nella fase successiva (recognition);
○ network: le informazioni vengono inviate al componente che si occuperà del riconoscimento;
● recognition: i sensori riconoscono le interazioni che avvengono sulla superficie;
○ triangulation: un algoritmo di triangolazione (sopra descritto) calcola le posizioni delle interazioni, trasformando le informazioni dallo spazio di riferimento del sensore (camera) allo spazio di riferimento della superficie; ○ clustering gerarchico e sensing: viene applicato un algoritmo di clustering gerarchico (descritto in seguito) per determinare la tipologia di interazione, classificando in base a diversi parametri (dimensione, tempo di interazione, forma, posizione assunta nell’arco del tempo); le operazione di triangolazione e di clustering vengono svolte considerando una finestra di n sensori, predeterminata in fase di calibrazione in base alla topologia del sottosistema; tale approccio consente di velocizzare i calcoli processando in parallelo ogni finestra in modo indipendente;
○ tracking: un algoritmo di tracking si occupa di analizzare le variazioni della posizione di ogni oggetto riconosciuto nell’arco del tempo di interazione, definendo gli eventi;
○ network: le informazioni vengono inviate al componente che si occuperà della generazione degli eventi;
● event generation: il computer, su cui vengono eseguite le applicazioni interattive, riceve gli eventi dalla rete, traduce tali informazioni in eventi del sistema operativo, inserendoli nella coda di eventi;
○ driver: vengono generati gli eventi ed inseriti nella coda degli eventi del sistema operativo;
○ network: gli eventi che il sistema operativo non è in grado di gestire vengono inviati all’applicazione interattiva tramite web-socket;
Gli eventi riconosciuti (interazioni atomiche riconosciute dal sistema) sono:
● standard Events: eventi compatibili con standard riconosciuti;
○ touch-start: un dito inizia l’interazione con la superficie;
○ touch-move: il movimento del dito continua l’interazione stando a contatto con la superficie;
○ touch-end: il dito non è più in contatto con la superficie;
● custom Events: eventi non compatibili con gli standard:
○ hand-start: una mano inizia l’interazione con la superficie;
○ hand-move: il movimento della mano continua l’interazione stando a contatto con la superficie;
○ hand-end: la mano non è più in contatto con la superficie;
○ object-hit: un oggetto colpisce la superficie (atomico, non rilevato nell’arco del tempo)
○ pre-touch: un dito si avvicina alla superficie
Sottosistema Multi-Proiettore
In una variante realizzativa, come evidenziato in figura 7, la visualizzazione delle immagini è demandata ad un sottosistema in grado di proiettare le immagini di n proiettori PR1….PRn calibrate e rettificate sulla parete stessa. Sono possibili altri modi di visualizzazione sulla superficie, ad esempio display autoproiettante o disegno fisso.
L’obiettivo è produrre una serie di immagini dal sistema multi-proiezione, generando un’immagine risultante che rientri quanto più possibile in un rettangolo perfetto sulla totalità della superficie interattiva e che non abbia discontinuità visibili tra proiettori adiacenti.
I componenti del sottosistema sono:
● n proiettori: ogni proiettore gestisce una porzione della superficie interattiva; ● 1 workstation: la workstation, su cui risiedono le applicazioni interattive, si occupa di suddividere l’immagine totale, inviarla ad ogni proiettore, e gestire la deformazione (warping) e la sovrapposizione tra due proiezioni adiacenti (blending);
Le fasi del sottosistema sono:
● blending: la workstation che gestisce la multi-proiezione calcola l’immagine che dovrà essere visualizzata da ogni proiettore, calcolando la forma dei bordi e l’intensità di colore dei pixel nella zona di sovrapposizione; il sistema unisce le immagini di proiettori tramite un algoritmo di blending che sovrappone le strisce laterali dei proiettori adiacenti circa del 20% interpolando nella zona di sovrapposizione attraverso la formula:
a * pow((2 * x), p) dove
■ x è il valore del pixel normalizzato da 0 a 1
● 0 zona di totale ombra
● 1 zona di totale luce
■ a (da 0 a 1) è il contributo totale del blending
■ p è il contributo (esponenziale) della scala di intensità alla formula Il blending opera per banda di colore (rosso, verde, blu) al fine di ottenere una migliore resa delle immagini. Di conseguenza i parametri a e p saranno differenti per colore e calibrati in base alla tipologia proiettore poiché proiettori di marca differente hanno una resa differente.
● warping: per ogni proiettore, la workstation calcola la griglia di trasformazione per rettificare l’immagine che dovrà essere proiettata sulla superficie utilizzando una una tassellazione di triangoli. Tale griglia verrà utilizzata per deformare le immagini provenienti dal sistema operativo per risolvere la deformazione e calcolare delle immagini che una volta proiettate saranno rettificate.
Sottosistema Gestore
E’ il sottosistema G (figura 2) che deve gestire gli eventi, gestire le periferiche audio, consentire che le applicazioni software ricevano tali eventi e in generale interagire con il layer applicativo.
I componenti del sottosistema sono:
● workstation: gestisce gli eventi che vengono generati dal driver e le applicazioni software;
● multi-channel audio: un impianto audio multicanale assicura una fruizione delle informazioni anche da parte di più utenti contemporaneamente;
Le fasi del sottosistema sono:
● event-handling: la workstation gestisce gli eventi e li invia alle applicazioni interattive. Si distinguono due comportamenti differenti per la gestione di due tipologie di eventi;
○ standard event: gli eventi conformi allo standard touch vengono gestiti nativamente dal sistema operativo (touch start, touch end, touch move). Pertanto, tali eventi passano direttamente dalla coda degli eventi
○ non-standard event: gli eventi che non possono essere gestiti dal sistema operativo (hand, object hit, pre-touch) vengono inviati all’applicazione tramite web-socket;
audio spaziale multi-user: grazie ad una apposita API che gestisce i contenuti del sonoro (file audio, file video). Per ogni utente viene calcolata la percentuale di volume di ogni diffusore AP1….APn (figura 8) , calcolando tale volume in base alla posizione dell’utente sulla superficie. Ad esempio, se un utente visualizza un video al centro della superficie, l’audio verrà riprodotto a volume massimo nel diffusore più vicino all’utente, lasciando muti i diffusori laterali. Viceversa, come si vede in figura 8, se due utenti interagiscono col sistema, saranno attivi gli altoparlanti in prossimità dell’utente, in modo che i due utenti possano visualizzare contenuti differenti, senza interferenze sonore.
Qui di seguito si riporta una descrizione di maggior dettaglio delle caratteristiche innovative della presente invenzione.
Le operazioni che illustrano il funzionamento del sistema sono essenzialmente le seguenti:
- Rilevamento delle discontinuità (ombre) provocate dagli oggetti sui pixel che identificano le parti di interazione sull’orizzonte.
- Calcolo delle intersezioni tra linee che vanno dalla posizione di ogni camera verso i punti in cui l’orizzonte viene interrotto.
- Clustering gerarchico delle intersezioni per identificare la posizione dei punti di contatto, distinguendo i movimenti compiuti dall’intera mano da quelli delle singole dita.
- Tracking, ricostruzione e smoothing delle traiettorie compiute dagli oggetti nel tempo.
E’ effettuata una procedura di calibrazione, volta a determinare tutti i dati del sistema che non sono ancora noti, ad esempio la posizione di ogni sensore nel piano della superficie durante la prima installazione, e ad aggiornare i dati quando perturbazioni esterne alterano il sistema. Esempi di perturbazioni sono micro-variazioni nella posizione dei sensori o nella posizione dell’illuminatore. La calibrazione dunque comprende le operazioni di:
- Analisi dell’immagine di ogni sensore per determinare l’orizzonte.
- Rilevazione della posizione dei sensori.
In sintesi, gli aspetti innovativi dell’invenzione comprendono quelli qui di seguito descritti.
Architettura modulare e scalabile.
L’architettura del sistema osserva un approccio modulare. Il sistema è suddiviso in moduli che è possibile affiancare per coprire superfici grandi a piacere.
Punti per Centimetro / DPI (dot per inch).
Per effettuare i calcoli della calibrazione geometrica e determinare alcuni parametri per il calcolo parallelo e triangolazione, è necessario sapere quanti pixel rientrano in un centimetro (alternativamente in pollice, DPI). Nel caso di superfici proiettate, questo valore si ottiene dividendo la risoluzione in x in uscita del proiettore (es. 1920 in caso di proiettore FullHD) per i centimetri della larghezza di proiezione (es. 220 cm).
Clustering gerarchico e Sensing
Le numerose intersezioni prodotte dal passo di triangolazione vengono elaborate da un algoritmo di clustering gerarchico, che raggruppa i punti di contatto che ricadono in una area vicina. Si veda come esempio la figura 5. L’algoritmo continua a raggruppare per aree sempre più grandi, discriminando gli oggetti più piccoli da quelli più grandi, distinguendo le dita dalle mani ed identificandone l’esatta posizione. Questa procedura inoltre aiuta a determinare i falsi punti di contatto dovuti alla procedura di triangolazione. I punti 51 che ricadono in cluster poco popolati infatti vengono etichettati come rumore e automaticamente scartati.
1. L’algoritmo di clustering sviluppato è di tipo bottom-up.
2. Ciascun punto di contatto riconosciuto viene classificato come appartenente al cluster 52.
3. Per ogni cluster (A), si analizza il cluster confrontando ripetutamente con tutti gli altri (B) al fine di raggruppare i punti e classificare il gruppo, attraverso un criterio di collegamento, ad esempio quello utilizzato è Average Linkage
dove la distanza d(a,b) è calcolata in base alla topologia del sistema:
- Se il cluster B rispetta il criterio di vicinanza con A allora B viene inserito nel cluster di A e si aggiorna il centroide 54 (baricentro cartesiano di tutti i punti appartenente al cluster).
- Se il cluster non rispetta nel criterio di vicinanza allora si continua.
Per massimizzare le prestazioni viene adottato un calcolo parallelo, suddividendo spazialmente i punti di contatto per x (ascissa in pixel) in “finestre”, poiché punti lontani in x apparterranno a cluster differenti. La soglia di separazione delle finestre per il calcolo parallelo è dipendente dalla distanza in cm tra i punti: ad esempio 50cm. Per effettuare questo passo quindi è necessario prima sapere quanti pixel rientrano in un centimetro e successivamente effettuare la divisione tra pixel e punti per centimetro.
Grazie a questa suddivisione spaziale, gestita dall’algoritmo tramite un kdtree, la complessità rimane all’interno del valore O(n x log(n)).
4. Si analizzano tutti i cluster linearmente:
a. se il cluster è formato da almeno 4 punti, e rispetta la topologia del sistema, si classifica come mano (hand).
b. se il cluster è formato da un solo punto:
i. se è all’interno di una zona di rumore 51, viene scartato.
ii. altrimenti viene considerato dito (finger) 53.
Analizzando le informazioni provenienti dai vari sensori C1…Cn, (forma, dimensione) si correlano i dati per rilevare la tipologia dell’elemento che entra in contatto con la superficie, rilevando se tale elemento è un object (oggetto) o una hand (mano). Ogni sensore, utilizzando l’ algoritmo già noto feature-based SIFT (Scale Invariant Feature Transform), analizza le immagini e calcola le feature per ogni oggetto che viene rilevato. Queste caratteristiche vengono poi correlate dall’algoritmo di clustering che, ricevendo le feature degli oggetti rilevati dai sensori, associa la tipologia al cluster rilevato, distinguendo due insiemi di cluster differenti: cluster object e cluster hand.
Determinazione automatica dell’orizzonte.
Uno degli obiettivi della calibrazione è determinare l’orizzonte luminoso nell’immagine proveniente dai sensori. La procedura standard osserva ancora un intervento manuale: l’utente deve indicare manualmente due punti in coordinate pixel x e y, corrispondenti al punto di inizio e fine dell’orizzonte, per l’immagine di ogni sensore. L’innovazione introdotta dalla presente invenzione consiste nel rendere automatico questo passo, partendo dal presupposto che sia la superficie che l’orizzonte hanno forma regolare, lineare nel campo di vista del sensore. Il riconoscimento automatico dell’orizzonte avviene ad intervalli periodici preimpostati, tipicamente 30 secondi, attraverso filtri di smoothing e l’algoritmo “HoughLines”, di tipo in sé noto, ad esempio descritto in (http://www.ai.sri.com/pubs/files/tn036-duda71.pdf).
Per ogni banda di colore (R,G,B):
1. Si applica un filtro Gaussiano per la riduzione del rumore
2. Si applica un filtro soglia binario adattivo tramite una maschera di convoluzione:
dst(x,y)=
a. maxValue if src(x,y)>T(x,y)
b. 0 altrimenti
Il valore di soglia T(x,y) utilizzato per il calcolo della soglia è una somma pesata di una matrice di dimensione 7x7 (kernel o matrice) che osserva una distribuzione gaussiana G (finestra gaussiana).
3. I pixel che formano l’immagine del filtro soglia vengono considerati come maschera binaria: tutto ciò che è al di sopra della soglia viene considerato foreground.
4. Si applica l’algoritmo HoughLines per determinare le linee nelle immagini, quella più lunga e parallela alla base dell’immagine sarà considerata orizzonte (che corrisponde al muro visto dalla prospettiva della videocamera).
La determinazione dell’orizzonte è una procedura automatica, necessaria alla prima configurazione e ogni volta cambi la topologia del sistema.
Detecting dei punti di contatto.
In fase di detecting (rivelazione) tutto ciò che attraversa l’orizzonte viene considerato un punto di contatto. L’attraversamento dell’orizzonte viene calcolato attraverso un algoritmo di background subtraction adattivo:
1. E’ necessario sapere i pixel che formano l’orizzonte, calcolato a punto precedente.
2. Si calcola una media dell’orizzonte in una finestra temporale predeterminata di 5 secondi (quindi circa 500 frame, considerando 100 frame per secondo, secondo la specifica dei sensori ottici, videocamere, scelte). Ogni pixel di un nuovo frame andrà ad aggiornare la media:
a. se il pixel si discosta dal valore medio all’interno di un valore normalizzato di 0.1 viene considerato variazione di luminosità ambientale ed aggiornerà la media con un peso (1/500).
b. se il pixel si discosta dal valore medio oltre un valore normalizzato di 0.1, si analizza l’intorno:
i. se meno di 20 pixel adiacenti si discostano dalla media, allora verrà considerato come intersezione di un oggetto con l’orizzonte. ii. se più di 20 pixel adiacenti si discostano dalla media, allora verrà considerato come variazione di luminosità ambientale (es. luce accesa) ed andrà ad aggiornare la media con un fattore (400/500). Tracking.
Nella fase di tracking vengono correlate determinate informazioni nel tempo per identificare i cluster nel tempo associando ad ogni cluster un identificatore (id). In altri termini viene identificata la traiettoria di ogni cluster analizzando le seguenti proprietà nei frame consecutivi:
● posizione
● velocità
● accelerazione
● numero di cluster vicini (entro una soglia di distanza d)
● vicinanza di cluster vicini (distanza media dei cluster d-mean)
L’identificatore associato ad ogni cluster è un numero che viene incrementato ogni volta che un cluster termina la sua traiettoria (sparisce) e un cluster successivo viene identificato (compare).
Per ogni frame si considerano i seguenti insiemi:
● D: insieme di cluster identificati dall’algoritmo di clustering
● T: insieme di cluster tracciati (a cui è stato identificato un id)
Per ogni frame l’algoritmo di tracking deve analizzare le informazioni per modificare l’insieme T:
● Aggiornando le informazioni dei cluster che si sono spostati
● Eliminando dall’insieme determinati cluster che hanno terminato la loro traiettoria dei cluster e non sono più presenti (quando la mano non è più in contatto con la superficie).
● Aggiungendo all’insieme i cluster nuovi (quando la mano tocca per la prima volta la superficie).
Si considerano i seguenti passi:
Al frame 0 l’insieme D e l’insieme T sono vuoti.Al frame t l’algoritmo di clustering ha identificato n cluster e l’algoritmo di tracking deve analizzare gli n cluster per aggiornare l’insieme T, associando ogni cluster dell’insieme D ai cluster dell’insieme T del frame t-1. Per ogni cluster A dell’insieme D si applica la seguente formula di soglia (con pesi) confrontando tale cluster A con ogni cluster B dell’insieme T al frame t-1 0.8 * diffDist * 0.5 * diffVel * 0.2 * diffAcc * 0.3 diffNCluster * 0.2 * diffDistCluster dove diffDist, diffVel, diffAcc, diffNCluster, diffDistCluster sono rispettivamente le differenze tra la distanza, la velocità, l’accelerazione, il numero di cluster vicini e la distanza media dei due cluster confrontati. Dall’applicazione di tale formula, se tale il valore è superiore ad una certa soglia (tipicamente 18.456) allora il cluster A viene considerato non appartenente alla traiettoria del cluster B. Il valore della soglia può essere modificato in fase di calibrazione. Se invece il valore del confronto è inferiore alla soglia, il cluster A viene considerato come posizione successiva del cluster B. Per cui, come sopra riportato, possiamo avere tre casi differenti:
● Il cluster A viene inserito nell’insieme T come nuova posizione del cluster B e le informazioni (posizione, velocità, accelerazione, etc.) vengono aggiornate, mentre l’identificatore id rimane invariato (viene conservato l’identificatore del cluster B in quanto è stato rilevato che è lo stesso cluster ad aver assunto una nuova posizione nel tempo).
● Il cluster A, dopo il confronto, non viene associato a nessun cluster dell’insieme T. In questo caso si considera come un nuovo cluster e viene inserito nell’insieme T con un nuovo identificatore, incrementando di una unità l’ultimo identificatore assegnato. Si ricade in questo caso quando la mano tocca per la prima volta la superficie.
● Il cluster B, dopo il confronto, non viene assegnato a nessun cluster dell’insieme D. In questo caso il cluster B termina viene eliminato dall’insieme T terminando la traiettoria. Si ricade in questo caso quando la mano non è più in contatto con la superficie.
Rispettivamente ai casi sopra menzionati l’algoritmo di clustering associa tre tipologie di evento: touch-move, touch-start, touch-end. Inoltre viene considerato un ulteriore evento finger-hold, che si genera quando un cluster hand permane sulla stessa posizione per più di due secondi.
L’algoritmo di tracking, disponendo per ogni cluster delle informazioni sulla tipologia di elemento in contatto con la superficie (object o hand) analizzata dall’algoritmo di sensing, applica gli stessi calcoli tenendo separati gli insiemi cluster object e cluster hand, per cui oltre agli eventi sopra riportati, abbiamo questa tipologia di eventi: object-move, object-start, object-end, object-hold.
Grazie alla memorizzazione nella struttura kd-tree il confronto dell’insieme D con l’insieme T avviene con una complessità O(N*log(N)).
Calibrazione guidata.
Lo scopo della calibrazione è il calcolo della posizione di tutti i sensori C1…Cn (figura 6), analizzando i frame appartenenti ai diversi sensori e determinando il sistema di riferimento globale, in coordinate pixel (x, y) dello schermo a partire dal sistema di riferimento dei singoli sensori, in coordinate pixel dell’immagine proveniente dalla singola camera. La procedura guidata prevede ad esempio un singolo intervento manuale per la calibrazione dell’intero sistema. Oppure sono possibili altri interventi successivi se necessario in casi particolari. Il singolo intervento consiste nel toccare col dito alcuni punti visualizzati nello schermo (due per ogni sensore) affinché il sistema determini in modo automatico la posizione dei sensori.
1. Vengono mostrati sullo schermo S (proiezione) una serie di punti P1…Pn disposti in griglia, con un offset dal bordo di circa 10 cm. La distanza tra un punto e l’altro in x e y è ad esempio di 50 cm.
2. Per ogni punto della griglia, a partire dal punto in Top-Left fino a quello Bottom-Right:
a. viene evidenziato in modo differente da tutti gli altri (variando il colore del punto sull’interfaccia) e viene chiesto all’utente di posizionare il dito sul centro di quel punto per 3 secondi.
b. dopo 3 secondi il punto sparisce e si passa al successivo.
3. Dopo aver processato tutti i punti della griglia, l’algoritmo:
a. a partire dalle posizioni dei punti di contatto sull’orizzonte della camera, calcola gli angoli per determinare l’orientamento della stessa videocamera. b. in fase di detecting del punto di contatto questa informazione viene utilizzata per il calcolo della linea immaginaria che parte dalla videocamera fino al punto di contatto. La linea immaginaria verrà successivamente usata dall’algoritmo di calibrazione.
Riassumendo quanto descritto sopra, l’oggetto dell’invenzione è un sistema interattivo multi-touch che utilizza un sistema di multi-proiezione abbinato a dei sensori ottici per realizzare una superficie interattiva di grandi dimensioni, scalabile e multi-utente.
In particolare si evidenziano le seguenti caratteristiche innovative:
● layout che utilizza un sistema distribuito di sensori dotati di capacità di calcolo e raggruppati per costituire un array di sensori;
● triangolazione ed algoritmo di clustering gerarchico per il riconoscimento di finger e hand sulla superficie con la topologia descritta: le intersezioni vengono calcolate posizionando i sensori lungo un bordo della superficie orientati verso la superficie che si rende interattiva;
● riconoscimento di oggetti: il sistema è in grado di riconoscere oggetti posizionati sulla superficie interattiva e distinguerli in base a differenti caratteristiche (colore, forma, dimensione);
● definizione di un ambiente multi-utente attraverso user-event associati a determinati utenti: il sistema, riconoscendo e distinguendo due o più utenti, consente a molteplici utenti di lavorare indipendentemente;
● definizione di un sistema interattivo scalabile e di larga scala di tipo seamless applicando un array di sensori ad un sistema di blending multi-proiezione:
○ grandi dimensioni: oltre i 6 metri, senza limite superiore;
○ scalabile: un sistema di calcolo distribuito che opera mediante le capacità di calcolo dei sensori stessi consente il riconoscimento delle interazioni e degli utenti tramite l’analisi in tempo reale della grande mole di dati prodotta dai sensori;
● audio multi-utente:
○ le informazioni sulla posizione dell’utente durante l’utilizzo della superficie interattiva vengono utilizzate per il calcolo dei volumi degli altoparlanti posizionati sulla stessa parete interattiva fornendo una spazialità del sonoro. ● Tilt-sensor: il sistema integra un sensore di accelerazione (accelerometro) da installare sulla superficie in corrispondenza dei moduli in grado di rilevare le vibrazioni provocate dagli utenti sulla superficie durante l’uso. Tale tecnologia viene impiegata per rilevare gli urti sulla superficie generando un evento tilt quando le sollecitazioni prodotte dagli utenti sono troppo forti. L’evento, catturato dall’applicazione software, è utilizzato per bloccare l’interfaccia con un avviso (in caso in cui si adoperino display – monitor o proiettori) che suggerisce all’utente di effettuare una minor pressione; Viene aggiunto al set di eventi l’evento “tilt”.
● Proximity-detection: attraverso l’adozione di un sensore di profondità (depthcamera) orientato verso l’utente il sistema è in grado di rilevare la presenza degli utenti in prossimità (fino a 5 metri dalla superficie). Tale funzionalità è utilizzata per bloccare l’interfaccia in caso di non presenza di utenti (screensaver) e sbloccare l’interfaccia quando non vengono rilevati utenti davanti alla superficie. Vengono aggiunti all’insieme di eventi i due eventi: “user-detected” e “no-user”.
La presente invenzione può essere vantaggiosamente realizzata tramite un programma per computer che comprende mezzi di codifica per la realizzazione di uno o più passi del metodo, quando questo programma è eseguito su di un computer. Pertanto si intende che l’ambito di protezione si estende a detto programma per computer ed inoltre a mezzi leggibili da computer che comprendono un messaggio registrato, detti mezzi leggibili da computer comprendendo mezzi di codifica di programma per la realizzazione di uno o più passi del metodo, quando detto programma è eseguito su di un computer.
Sono possibili varianti realizzative all'esempio non limitativo descritto, senza per altro uscire dall’ambito di protezione della presente invenzione, comprendendo tutte le realizzazioni equivalenti per un tecnico del ramo.
Gli elementi e le caratteristiche illustrate nelle diverse forme di realizzazione preferite possono essere combinati tra loro senza peraltro uscire dall’ambito di protezione della presente invenzione.
Dalla descrizione sopra riportata il tecnico del ramo è in grado di realizzare l’oggetto dell’invenzione senza introdurre ulteriori dettagli costruttivi.

Claims (9)

  1. RIVENDICAZIONI 1. Sistema per rilevamento delle interazioni con una superficie, detta superficie essendo sostanzialmente piana, dette interazioni essendo di contatto o vicinanza con la superficie da parte di uno o più oggetti, detto sistema comprendente: - più sensori ottici (C1,…..C5) allineati davanti ad un lato di detta superficie (S), in grado di generare coni di vista (FW) parzialmente sovrapposti, indipendenti e dotati di capacità computazionale, generanti una zona (Z) di rilevamento continua davanti alla superficie, atta a realizzare detto rilevamento delle interazioni; - mezzi in ciascun sensore indipendente adattati per analizzare i segnali provenienti da detti sensori ottici e configurati per compiere operazioni di rivelazione, riconoscimento e generazione di eventi in successione, in modo da poter raggruppare detti sensori in moduli indipendenti atti ad essere applicati alla superficie da rendere interattiva; - dette operazioni di rivelazione comprendendo: pre-filtraggio, convoluzione e algoritmi “feature based” atti a determinare la posizione di detti uno o più oggetti entro detta zona (Z) di rilevamento continua e determinarne la tipologia distinguendo tra mani, dita e oggetti che entrano in un campo visivo dei sensori; - dette operazioni di riconoscimento comprendendo: triangolazione con windowing atta a calcolare le posizioni delle interazioni tra dette posizioni , clustering gerarchico per determinare la tipologia di interazione, tracking di dette posizioni , in modo da definire le variazioni di dette posizioni in un periodo di tempo; - dette operazioni di generazione di eventi comprendendo: trasformazione di dette posizioni e variazioni nel tempo in eventi visualizzati, rivelando dette interazioni.
  2. 2. Sistema per rilevamento delle interazioni con una superficie come nella rivendicazione 1, comprendente uno o più illuminatori ad infrarossi in grado di generare un fascio di luce ad infrarossi che rientra nel range di frequenza di ricezione di detti sensori, detti illuminatori essendo: ● posizionati sopra la superficie ad un lato di detta superficie opposto al lato di posizionamento di detti sensori, detto sistema rilevando le ombre; e/o ● posizionati dallo stesso lato di detti sensori in modo da illuminare un oggetto, detto sistema rilevando le riflessioni di luce su oggetti vicini alla superficie.
  3. 3. Sistema elettronico per rilevamento delle interazioni con una superficie come nella rivendicazione 1, comprendente un sistema di proiettori (PR1….PRn) configurato per determinare detti eventi visualizzati in modo da proiettare immagini calibrate e rettificate su detta superficie (S).
  4. 4. Sistema elettronico per rilevamento delle interazioni con una superficie come nella rivendicazione 3, in cui detto sistema di proiettori (PR1….PRn) è configurato per eseguire le seguenti operazioni: ● blending: calcolo di un’immagine che dovrà essere visualizzata da ogni proiettore, calcolando la forma dei bordi e l’intensità di colore dei pixel nella zona di sovrapposizione; unione delle immagini di detti proiettori tramite un algoritmo di blending che sovrappone le strisce laterali di proiettori adiacenti interpolando nella zona di sovrapposizione attraverso la formula: a * pow((2 * x), p) dove ■ x è il valore del pixel normalizzato da 0 a 1 ● 0 zona di totale ombra ● 1 zona di totale luce ■ a (da 0 a 1) è il contributo totale del blending ■ p è il contributo (esponenziale) della scala di intensità alla formula detto blending operando per banda di colore (rosso, verde, blu), detti parametri a e p essendo differenti per colore e calibrati in base alla tipologia proiettore; ● warping: per ogni proiettore, calcolo di una griglia di trasformazione per rettificare l’immagine che dovrà essere proiettata su detta superficie utilizzando una tassellazione di triangoli, ottenendo una deformazione delle immagini, e ottenere dette immagini calibrate e rettificate.
  5. 5. Sistema elettronico per rilevamento delle interazioni con una superficie come in una qualsiasi delle rivendicazioni precedenti, comprendente mezzi di calibrazione, configurati per effettuare operazioni per determinare dati iniziali o di aggiornamento, comprendenti: - analisi dell’immagine di ognuno di detti sensori per determinazione automatica dell’orizzonte, come segmento corrispondente alla superficie resa interattiva visto dalla prospettiva dei sensori; - rilevazione della posizione di detti sensori.
  6. 6. Sistema elettronico per rilevamento delle interazioni con una superficie come nella rivendicazione 5, in cui detta determinazione automatica dell’orizzonte avviene ad intervalli periodici preimpostati tramite filtri di smoothing e algoritmo “HoughLines”, tali che, per ogni banda di colore R,G,B dell’immagine proveniente dai sensori: ● si applica un filtro Gaussiano per la riduzione del rumore; ● si applica un filtro soglia binario adattivo tramite una maschera di convoluzione: dst(x,y)= o maxValue if src(x,y)>T(x,y) o 0 altrimenti o Il valore di soglia T(x,y) utilizzato per il calcolo della soglia è una somma pesata di una matrice di dimensione 7x7 (kernel o matrice) che osserva una distribuzione gaussiana G (finestra gaussiana); ● i pixel che formano l’immagine del filtro soglia vengono considerati come maschera binaria: tutto ciò che è al di sopra della soglia viene considerato foreground; ● si applica detto algoritmo HoughLines per determinare le linee nelle immagini, quella più lunga e parallela alla base dell’immagine essendo considerata orizzonte.
  7. 7. Sistema elettronico per rilevamento delle interazioni con una superficie come nella rivendicazione 1, comprendente un sistema audio spaziale multiutente, comprendente mezzi per calcolare la percentuale di volume di ogni diffusore (AP1….APn) di detto sistema audio spaziale multiutente, in base alla posizione dell’utente su detta superficie, riproducendo l’audio a volume massimo nel diffusore più vicino all’utente, e lasciando muti i diffusori lontani dagli utenti.
  8. 8. Sistema elettronico per rilevamento delle interazioni con una superficie come nella rivendicazione 1, in cui dette operazioni di riconoscimento comprendono le seguenti operazioni: - le intersezioni prodotte da detta triangolazione vengono elaborate da un algoritmo di clustering gerarchico, che raggruppa i punti di contatto che ricadono in una area vicina su detta superficie, continuando a raggruppare per aree sempre più grandi, e discriminando gli oggetti più piccoli da quelli più grandi, distinguendo le dita dalle mani ed identificandone l’esatta posizione, determinando inoltre i falsi punti di contatto dovuti alla procedura di triangolazione; - detto algoritmo di clustering essendo di tipo bottom-up: - ciascun punto di contatto riconosciuto viene classificato come appartenente ad un cluster (52); - per ogni cluster (A), si analizza il cluster confrontando ripetutamente con tutti gli altri (B) al fine di raggruppare i punti e classificare il gruppo, attraverso un criterio di collegamento; - se il cluster (B) rispetta il criterio di vicinanza con A, allora B viene inserito nel cluster di A e si aggiorna un centroide (54) come baricentro cartesiano di tutti i punti appartenenti al cluster; - se il cluster non rispetta nel criterio di vicinanza allora si continua; - si analizzano tutti i cluster linearmente: se il cluster è formato da almeno 4 punti, e rispetta la topologia del sistema, si classifica come mano; se il cluster è formato da un solo punto: se è all’interno di una zona di rumore (51), viene scartato. altrimenti viene considerato dito (53).
  9. 9. Sistema elettronico per rilevamento delle interazioni con una superficie come nella rivendicazione 8, in cui dette operazioni di tracking comprendono la correlazione di informazioni nel tempo per identificare detti cluster nel tempo associando ad ogni cluster un identificatore (id), identificando la traiettoria di ogni cluster analizzando le seguenti proprietà nei frame consecutivi: ● posizione ● velocità ● accelerazione ● numero di cluster vicini (entro una soglia di distanza d) ● vicinanza di cluster vicini (distanza media dei cluster d-mean); detto identificatore (id) associato ad ogni cluster essendo un numero che viene incrementato ogni volta che un cluster termina la sua traiettoria e sparisce, e un cluster successivo viene identificato e compare.
IT102019000007040A 2019-05-21 2019-05-21 Sistema per rilevamento delle interazioni con una superficie IT201900007040A1 (it)

Priority Applications (3)

Application Number Priority Date Filing Date Title
IT102019000007040A IT201900007040A1 (it) 2019-05-21 2019-05-21 Sistema per rilevamento delle interazioni con una superficie
EP20742856.6A EP3973376A1 (en) 2019-05-21 2020-05-19 System for detecting interactions with a surface
PCT/IB2020/054720 WO2020234757A1 (en) 2019-05-21 2020-05-19 System for detecting interactions with a surface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000007040A IT201900007040A1 (it) 2019-05-21 2019-05-21 Sistema per rilevamento delle interazioni con una superficie

Publications (1)

Publication Number Publication Date
IT201900007040A1 true IT201900007040A1 (it) 2020-11-21

Family

ID=67875979

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000007040A IT201900007040A1 (it) 2019-05-21 2019-05-21 Sistema per rilevamento delle interazioni con una superficie

Country Status (3)

Country Link
EP (1) EP3973376A1 (it)
IT (1) IT201900007040A1 (it)
WO (1) WO2020234757A1 (it)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116524004B (zh) * 2023-07-03 2023-09-08 中国铁路设计集团有限公司 基于HoughLines算法的钢筋尺寸检测方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1550940A2 (en) * 2004-01-02 2005-07-06 Smart Technologies, Inc. Pointer tracking across multiple overlapping coordinate input sub-regions defining a generally contiguous input region.
EP2122416A2 (en) 2007-02-15 2009-11-25 Gesturetek, INC. Enhanced input using flashing electromagnetic radiation
WO2010015408A1 (en) * 2008-08-07 2010-02-11 Owen Drumm Method and apparatus for detecting a multitouch event in an optical touch-sensitive device
EP2443481A1 (en) 2009-06-18 2012-04-25 Baanto International Ltd. Systems and methods for sensing and tracking radiation blocking objects on a surface
EP2443472A1 (en) 2009-06-16 2012-04-25 Baanto International Ltd. Two-dimensional and three-dimensional position sensing systems and sensors therefor
EP2487624A1 (en) 2005-01-07 2012-08-15 Qualcomm Incorporated Detecting and tracking objects in images
WO2013144599A2 (en) * 2012-03-26 2013-10-03 Light Blue Optics Ltd Touch sensing systems
US20130318479A1 (en) * 2012-05-24 2013-11-28 Autodesk, Inc. Stereoscopic user interface, view, and object manipulation
US20140354602A1 (en) * 2013-04-12 2014-12-04 Impression.Pi, Inc. Interactive input system and method

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1550940A2 (en) * 2004-01-02 2005-07-06 Smart Technologies, Inc. Pointer tracking across multiple overlapping coordinate input sub-regions defining a generally contiguous input region.
EP2487624A1 (en) 2005-01-07 2012-08-15 Qualcomm Incorporated Detecting and tracking objects in images
EP2122416A2 (en) 2007-02-15 2009-11-25 Gesturetek, INC. Enhanced input using flashing electromagnetic radiation
WO2010015408A1 (en) * 2008-08-07 2010-02-11 Owen Drumm Method and apparatus for detecting a multitouch event in an optical touch-sensitive device
EP2443472A1 (en) 2009-06-16 2012-04-25 Baanto International Ltd. Two-dimensional and three-dimensional position sensing systems and sensors therefor
EP2443481A1 (en) 2009-06-18 2012-04-25 Baanto International Ltd. Systems and methods for sensing and tracking radiation blocking objects on a surface
WO2013144599A2 (en) * 2012-03-26 2013-10-03 Light Blue Optics Ltd Touch sensing systems
US20130318479A1 (en) * 2012-05-24 2013-11-28 Autodesk, Inc. Stereoscopic user interface, view, and object manipulation
US20140354602A1 (en) * 2013-04-12 2014-12-04 Impression.Pi, Inc. Interactive input system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STORZ, M.KANELLOPOULOS, KFRAAS, C.EIBL, M.: "Proceedings of the Ninth ACM International Conference on interactive Tabletops and Surfaces, ITS '14", 2014, ACM, article "Comfortable: ';4 tabletop to relaxed and play ful interactions in museums", pages: 447 - 450

Also Published As

Publication number Publication date
EP3973376A1 (en) 2022-03-30
WO2020234757A1 (en) 2020-11-26

Similar Documents

Publication Publication Date Title
US11392212B2 (en) Systems and methods of creating a realistic displacement of a virtual object in virtual reality/augmented reality environments
CN103999025B (zh) 基于视觉的交互式投影系统
US20080252596A1 (en) Display Using a Three-Dimensional vision System
US20110032215A1 (en) Interactive input system and components therefor
US20080013826A1 (en) Gesture recognition interface system
US11302077B2 (en) Augmented reality guidance that generates guidance markers
KR100974894B1 (ko) 멀티 적외선 카메라 방식의 3차원 공간 터치 장치
WO2014010251A1 (en) Hand and object tracking in three-dimensional space
US9632592B1 (en) Gesture recognition from depth and distortion analysis
US9703371B1 (en) Obtaining input from a virtual user interface
TW202009653A (zh) 指向判斷系統以及指向判斷方法
JP2015531105A (ja) 皮膚によるユーザ認識
WO2011029067A2 (en) Large scale multi-user, multi-touch system
KR101330531B1 (ko) 3차원 카메라를 이용한 가상 터치 방법 및 장치
KR20230029923A (ko) 롤링 셔터 카메라들을 사용하는 시각적 관성 추적
KR101426378B1 (ko) 깊이 정보를 이용한 프레젠테이션 이벤트 처리 장치 및 방법
IT201900007040A1 (it) Sistema per rilevamento delle interazioni con una superficie
KR20090116544A (ko) 적외선 카메라 방식의 공간 터치 감지 장치, 방법 및스크린 장치
CN111354018B (zh) 一种基于图像的物体识别方法、装置及系统
Riemann et al. Flowput: Environment-aware interactivity for tangible 3d objects
KR102158613B1 (ko) 공간 터치 감지 방법 및 이를 수행하는 표시 장치
KR20080041051A (ko) 관람자의 시선 방향을 고려한 전시 시스템의 인터페이스방법 및 장치
US10289203B1 (en) Detection of an input object on or near a surface
Matsubara et al. Touch detection method for non-display surface using multiple shadows of finger
Vlašánek Usage of the webcam as 3D input device