Menu

TL;DR

approfondimento di /r/ItalyInformatica

La Forza Kinectica

Il sensore Kinect è ben famoso nella community videoludica, infatti era principalmente indirizzato ai giocatori quando Microsoft lo ha creato. La prima versione del dispositivo era per la console Xbox 360 e col suo sensore 3D ha introdotto un nuovo modo di giocare, cioè usare l’intero corpo o almeno le braccia dell’utente. Può facilmente tracciare l’intero corpo umano e dare in output una collezione completa di informazioni sulle posizioni e sui movimenti di ogni articolazione. Nella figura seguente si può vedere a cosa mi riferisco con articolazione, sono i ”Joints” che formano lo ”Skeleton” di un utente.

La seconda versione, Kinect 2.0, fu introdotta per la nuova console Xbox One, ora non solo per creare un nuovo tipo di video gaming, ma anche per dare un controllo completo della console tramite la serie di microfoni e motion capture 3D. Non credo abbia avuto tutto il successo della prima versione, anche se vendendola assieme alla console ha sicuramente aumentato il guadagno. Il successo economico sarà stato positivo, ma quello sociale non molto. I video giocatori non erano più tanto interessati a questo dispositivo innovativo, ma intanto di nascosto la Kinect ha iniziato a conquistare in altri campi.
Quando Microsoft ha reso la Kinect compatibile con Windows ed ha introdotto un SDK per svilupparci applicazioni, è diventata uno dei dispositivi più usati in diversi campi di ricerca informatica, anche grazie al suo basso costo per un eccellente sensore 3D.

La Ricerca
La Kinect è parecchio usata nella video sorveglianza, dove tali sistemi non solo ”guardano” la scena ma tracciano anche le persone in essa, dando un bel po’ di informazioni da utilizzare per un bel po’ di cose. Dall’identificazione dei gesti fino ad addirittura la predizione di essi, usando dietro machine learning, analisi particolare dei dati e chi più ne ha più ne metta. E` anche fantastico per i sistemi di interazione uomo-macchina (HRI – Human Robot Interaction) e macchina-macchina (RRI – robot robot interaction). Dare ad una macchina un occhio che permette di vedere in 3D può essere molto interessante.
Personalmente adoro quando l’informatica è applicata al campo medico con sistemi che aiutano direttamente le persone. Kinect viene usata pure per cose del genere, ad esempio per aiutare con la riabilitazione. Tracciando il corpo e i movimenti può essere estremamente utile per valutare le condizioni e i miglioramenti che un paziente ottiene durante la sua riabilitazione fisica. Oppure ad esempio sono stati sviluppati delle applicazioni interattivi fatti a posta per rendere meno noiose e stressanti le sessioni di terapia. Soprattutto per bambini è più che utile.

Il Pointing
Personalmente ho lavorato con la Kinect nella mia università, però per un tipo di lavoro del tutto diverso. Riguarda la domotica, in particolare rendere interattiva una qualsiasi stanza in modo personalizzabile dove la Kinect viene usata per dare comandi. Ogni oggetto nella stanza `e potenzialmente interattivo ed un utente puo` fare gesti o dare comandi vocali per attivare un qualche comportamento da parte della stanza. Ad esempio può dire ”Ciao”, oppure salutare con una mano, e qualche cassa risponde con un audio. La Kinect è lo strumento chiave di questo lavoro, qualsiasi gesto viene visto e riconosciuto attraverso la Kinect, ma c’`e un gesto in particolare che ha richiesto un pò più di impegno: indicare.
Dico ”pointing” perchè è davvero più semplice dire gesto di pointing, invece di gesto dell’indicare. Comunque, il pointing è un modo naturale e potente di esprimere interesse verso qualcosa o qualche luogo. Abbiamo voluto dare all’utente a possibilità di indicare un oggetto and interagire con la stanza usando quell’azione come input. Questo vuol dire che riconoscere gesti non è più abbastanza, perch ́e ora dobbiamo anche identificare l’oggetto indicato. Abbiamo usato oltre al SDK per la Kinect anche Vitruvius (non l’uomo vitruviano, questa roba) per rendere più semplice la procedura di ottenere le posizioni spaziali dei Joint, che diventano dei bei vettori con le coordinate sulle 3 assi (X, Y, Z). Il problema da risolvere è che le posizioni sono sempre sul sistema di coordinate relativo alla Kinect, Z parte da 0 ed aumenta all’aumentare della distanza dell’utente dal sensore. X e Y vanno da -1 a 1, cioè più a sinistra/sotto a più a destra/sopra. La stanza invece `e tutta bellamente rappresentata con uno spazio 3D virtuale dove ogni oggetto è mappato con un punto in questo spazio. Se dobbiamo ottenere correttamente l’oggetto punto, non possiamo usare le posizioni ottenute dalla Kinect perchè sono del tutto incompatibili con la rappresentazione della stanza. Ciò che abbiamo fatto è stato un pò di magia nera matematica e sacrifici di giovani vergini e abbiamo ottenuto un modo bello ed elegante di convertire le posizioni dei Joints e mappare l’utente nella stanza virtuale. In seguito, detta brevemente, viene generata una linea virtuale che parte dal braccio indicante e ne prendiamo l’oggetto più allineato. Diamo questo oggetto al sistema e lui vedrà se è coinvolto in qualche interazione oppure no.

La Creatività
Tutto questo per condividere un po’ la mia esperienza con questo dispositivo, ma anche per dire che esso `e un ottimo strumento per implementare una grossa varietà di sistemi. Domotica, video sorveglianza, aiuto nella medicina sono ottimi esempi su come usarlo in nuovi modi. Inoltre non per forza l’utente che utilizza la Kinect debba essere umano, ci sono molti sistemi che utilizzano la Kinect per permettere ad un robot di navigare in una stanza, indicare cose, riconoscere oggetti.
Secondo me se potete mettere le mani su una Kinect, magari usata per spendere di meno, fatelo. La potete usare per sviluppare vostri progetti personali ed essere creativi, oppure come una webcam gigante!
L’utilizzo della Kinect che mi ha colpito di più, comunque, è in questo video. Un ”sound-reactive particle system in real time” (dice già tutto) che utilizza la Kinect per raccogliere dati sulla posizione del corpo dell’utente. E` una figata e non avrei mai pensato di usare il sensore in questo modo, per ottenere tanti piccoli puntini che formano una immagine 3D del corpo e muoverli in giro. Puoi fare cose davvero interessanti!

Avete mai usato questo dispositivo a parte videogiocare? Avete idee per progetti? Condivideteli!

Scritto da  /u/zolixes

Link ai commenti

Alla scoperta di D: un completo linguaggio di programmazione

Negli ultimi anni abbiamo assistito all’ascesa di un gran numero di linguaggi di programmazione, in particolare [Go](2009), [Rust](2010), [Kotlin] (2011), [Elixir](2011), [Crystal] (2014), [Pony](2014).
Questa esplosione di nuovi linguaggi è dovuta, fra le molte motivazioni, alla necessità di adottare paradigmi di programmazione non immediatamente recenti come cittadini di primo tipo.
(altro…)

Mantieni la tua rete sotto controllo con Nidan

Buongiorno a tutti, sono o-zone1978, un sistemista informatico che lavora nel CED di un Ente pubblico toscano. Sono quasi 20 anni che lavoro nel settore informatico ed ho iniziato a programmare in C a 14 anni su un Amiga 600. Mi sono poi indirizzato verso lo sviluppo di applicativi web, in PHP, ed ultimamente ho ripreso a sviluppare in Python per la sua ampia disponibiltià anche su sistemi embedded. Grazie alla disponibilità dei ragazzi di /r/ItalyInformatica, oggi vi presento Nidan, un progetto a cui sto lavorando attivamente ormai da qualche mese. Ma andiamo con ordine… (altro…)

I testi generati ovvero le catene di Markov

Per chi non mi conoscesse, sono /u/timendum , il creatore di /u/italy_SS , cioè il /r/SubredditSimulator per i contenuti in Italiano.

In questo articolo cercherò di spiegarvi il meccanismo dietro la generazione di testi casuali usati in questi due subreddit.

(altro…)

Crackare password? Facciamolo!

Questo articolo sarà un po’ diverso dagli altri: oltre a parlarvi dell’argomento (Crackare password n.d.r.), voglio proporvi una piccola sfida.

Sappiamo che le password devono essere lunghe, devono essere complesse e solo una di queste due proprietà non basta: avere la stessa password per ogni sito web, sappiamo, non è cosa giusta. Tutte queste accortezze per cosa? Per non farsi rubare le password ovviamente: ma se volessi provarci? Vi è mai capitato di crackare password?

(altro…)

Entrare nella community di Envato? Difficile ma si può!

Envato, con oltre 1 milione di utenti, è sicuramente uno dei più grandi market mondiali per quanto riguarda la vendita di contenuti multimediali quali temi per ogni cms, plugins, addons, audio, video, app totalmente modificabili dall’utente finale se acquistati. In envato troviamo themeforest, videohive, graphicriver, audiojungle, 3docean, photodune, codecanyon. Se vuoi guadagnare qualcosa dal tuo codice, Envato è quello che fa per te (o quasi). In questo articolo vorrei raccontare la mia breve esperienza su cosa e come ho fatto per farmi accettare un plugin WooCommerce in Envato.

(altro…)

Progetti FOSS, anche tu puoi contribuire

Parlo di una realtà, che si può toccare con mano, una realtà che tutti usiamo ma che a nessuno (o quasi) interessa. Una realtà che riguarda tutti noi, non solo gli addetti ai lavori. La toccate quando usate sul vostro smartphone, la percepite quando inviate una mail, la notate quando acquistate online. Sono tutti (o quasi) strumenti, metodi e servizi basati su tecnologie FOSS (Free (and) Open Source Software ndr).

(altro…)

Diritto alla riparazione: informazioni e consigli utili

Ci troviamo in un’epoca in cui il concetto di proprietà di un oggetto sta cambiando, in alcuni aspetti in maniera subdola e che non ci aspetteremmo: il “diritto alla riparazione” dei nostri dispositivi.
Siamo oggi circondati da telefoni, tablet, indossabili, portatili che ogni giorno diventano più sofisticati, compatti, costosi e delicati.
Quando acquistiamo uno di questi, la facilità o, al contrario, l’impossibilità di poter intervenire sugli elementi che li compongono per ripararli o migliorarli sono fattori che difficilmente consideriamo, ma a cui da consumatori dovremmo fare più attenzione, per diversi motivi.

(altro…)

Anti-DDoS Amazon Web Services Infrastructure

Con oltre un milione di clienti in 190 paesi, Amazon Web service è sicuramente una delle collezioni di servizi di cloud hosting più utilizzate. Nei clienti, troviamo aziende protagoniste nel mondo dell’informatica come Adobe, Vodafone e molte altre. “ Da grandi poteri derivano grandi responsabilità”, stessa frase vale se si offrono servizi che devono stare online 24 h su 24.

(altro…)

Clight, demone utente per linux scritto in C

Ciao a tutti, sono /u/nierro, di professione programmatore, fin da quando ho cominciato a programmare ho avuto la fissa per il C e per le utility linux, questo un po’ perché amo linux, e si sa, linux = C, e un po’ perché trovo il C di un’eleganza assoluta e adoro quanto poco tenda a celare facendoti sentire davvero padrone della macchina.
Ma arriviamo al dunque.

(altro…)