Domanda

Mi interessa scrivere un codice homebrew per la console Microsoft Kinect. Ho alcune applicazioni che penso si tradurrebbero bene sulla piattaforma. Ho giocato con l'idea di dargli un colpo usando il Driver e biblioteche OpenKinect. Ovviamente questo sarebbe un sacco di lavoro, ma mi chiedo quanto. Qualcuno ha esperienza con OpenKinect? Ottieni solo i dati video/audio grezzi dal dispositivo o qualcuno ha scritto astrazioni di livello superiore per semplificare le attività comuni?

È stato utile?

Soluzione

Il OpenKinect La biblioteca è fondamentalmente un driver - almeno per ora - quindi Non aspettarti funzioni molto alte da esso. Otterrai più o meno il dati grezzi da entrambi i profondità e il video macchine fotografiche.
Questo è fondamentalmente un array ricevuto in una funzione di callback ogni volta che arriva un frame.

Puoi provarlo seguendo le istruzioni fornite su Sito Web OpenKinect, è davvero veloce da installare e provarlo e puoi giocare un po 'con il glview Applicazione fornita per avere una sensazione di ciò che è possibile. Ho impostato alcune demo usando opencv, e ho ottenuto risultati piuttosto interessanti anche se non avevo molto background in Computer Vision, quindi posso solo incoraggiarti a provarlo da solo!

 
In alternativa, se stai cercando funzioni più avanzate, il Framework Openni è stato appena rilasciato questa settimana e fornisce alcuni impressionanti algoritmi di alto livello come Tracciamento scheletro e alcuni Riconoscimento dei gesti. Parte del quadro sono gli algoritmi proprietari di PrimeSense (come il potente modulo di tracciamento scheletro ...). Non l'ho ancora provato e non so quanto bene si integri con Kinect e il diverso sistema operativo, ma dal momento che un mucchio di ragazzi di diversi gruppi (OpenKinect, Willow Garage ...) ci stanno lavorando sodo che non dovrebbe " essere un problema entro una settimana.

Altri suggerimenti

Elaborando ulteriormente su ciò che Jules Olleon ha scritto, ho lavorato con Openni (http://www.openni.org) e gli algoritmi sopra (Nite) e consiglio vivamente di usare questi framework. Entrambi i framework sono ben documentati e sono dotati di numerosi campioni da cui puoi iniziare.

Fondamentalmente, Openni Abstract i dettagli di livello inferiore di lavorare con il sensore e il suo driver per te e ti danno un modo conveniente per ottenere ciò che desideri da un "generatore" (ad esempio XN :: DepthGenerator per ottenere i dati di profondità grezza). Openni è open source e gratuito da utilizzare in qualsiasi applicazione. Openni gestisce anche la piattaforma per te. Ad oggi, Openni è supportato e funziona bene per Windows 32/64 e Linux, ed è in procinto di essere portato su OSX. I legami sono disponibili per l'uso in più linguaggi di programmazione (C, C ++, .NET, Python e alcuni altri credo).

Nite Ha interfacce aggiuntive costruite sopra Openni, che ti danno risultati di livello più alto (ad esempio una traccia, scheletri, analisi della scena ecc.). Ti consigliamo di controllare le sottigliezze della licenza di Nite in merito a quando/dove puoi usarla, ma per ora è probabilmente il modo più semplice e veloce per ottenere analisi (ad esempio scheletro). Nite è chiusa, quindi ha bisogno di fornire una versione binaria da utilizzare. Attualmente sono disponibili versioni Windows e Linux.

Non ho lavorato con OpenKinect ma lavoro con Openni e Sensorkinect da alcuni mesi per la mia ricerca. Se hai intenzione di lavorare con i dati grezzi di Kinect, funzionano benissimo per darti profondità e video (non supportano il controllo del motore). L'ho usato con C ++ e OpenGL sia in Windows 64bit che in Ubuntu 32 bit con quasi nessuna modifica al codice. È molto facile imparare se conosci C ++ di base. Installarlo potrebbe essere un po 'di mal di testa.

Per caratteristiche più avanzate come il rilevamento di scheletri, il riconoscimento dei gesti, ecc. Consiglio vivamente di usare i medi come Nite con Openni o quelli forniti qui: Middlewares sviluppati intorno a Openni piuttosto che reinventare la ruota. La Nite è anche molto facile da usare una volta che hai funzionato Openni; Ad esempio, il riconoscimento congiunto è qualcosa di circa 10-20 righe extra di codice.

Qualcosa che consiglierei al mio io più giovane sarebbe quello di imparare e lavorare con un motore di gioco di base (ad esempio unità) piuttosto che direttamente con OpenGL. Ti darebbe una grafica molto migliore e più piacevole, meno seccata e ti consentirebbe anche di integrare facilmente il tuo programma con altri strumenti come Physx. Non ne ho provato nessuno, ma so che ci sono alcuni plugin per l'uso di driver Kinect in Unity.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top