fabi.me

3D Head Tracking mit Webcam, Kinect & Stereo

VN:F [1.9.22_1171]

Mittels Webcam oder Microsoft Kinect wird die Kopfposition des Betrachters ermittelt und eine dreidimonsionale Szene je nach Blickwinkel dargestellt. Dadurch ensteht der Eindruck, dass Objekt vor oder hinter der Bildschirmebene liegen, ganz ohne 3D-Brille.

3Dheadtracking
3Dheadtracking
3Dheadtracking.zip
3.3 MiB
6365 Downloads
Details

Das Video demonstriert den Effekt:

Das Programm ist aus einem Uni-Projekt entstanden, bei dem wir mithilfe offener Bibliotheken ein Head Tracking implementieren sollten, das sowohl mit Kinect als auch Webcam funktioniert (umschaltbar vom Benutzer).

OpenNI bietet eine Schnittstelle für Kinect, die in der Lage ist, Bewegung und Haltung des Körpers zu erkennen. Für die Kopferkennung mittels Webcam haben wir OpenCV verwendet, eine umfangreiche Bilbiothek, die Haar Casacde Algorithmen enthält. Da die Schnittstelle von OpenCV recht komplex ist, verwendeten wir die Bilbliothek ehci, die den Umgang damit sehr vereinfacht.

Die Szene wird mit OpenGL gerendert, wobei eine Perspektivische Projektion verwendet wird. Mittels der Funktion glFrustum wird die Projektionsmatrix abhängig der Kopfposition erzeugt und mit gluLookAt auf einen Punkt ausgerichtet. Dieser Punkt wird mit der X-Y-Kopfposition verschoben, so dass sich eine Scherung ergibt. Beim Stereomodus wird die Scene einfach aus zwei verschiedenen Perspektiven gerendert und dann mit Farbfiltern übereinander gelegt.

Das fertige Programm könnt ihr unten herunterladen. Ihr braucht nur eine Webcam und Windows als Betriebssystem. Die Kinect-Funktionen wurden bei dieser Version entfernt, da die Treiberinstallation häufig nicht richtig funktioniert.

Zur Bedienung:

Enter Kalibrierung: Setzt die aktuelle Kopfposition als Nullpunkt
1 3D Head Tracking
2 2D Head Tracking ohne Z-Komponente
3 Debug Kamera mit Pfeiltasten und Bild hoch/runter
F11 Vollbild
D Kamerabild anzeigen/ausblenden
S Stereoskopie umschalten (mit Rot-Cyan Brille, rechtes Auge rot)
Esc Beenden

Während der Kalibrierung erscheint der Hintergrund rot. Achtet auf gleichmäßige Beleuchtung des Gesichts. Wenn der Kopf nicht vollständig von der Kamera sichtbar ist, kann das Tracking unterbrochen werden. Dann wird automatisch eine neuer Kalibrierungsvorgang gestartet, bis ein Gesicht erkannt wurde.

So sieht’s im Stereomodus aus:

3D Head Tracking mit Webcam, Kinect & Stereo, 5.0 out of 5 based on 1 rating
3Dheadtracking
3Dheadtracking
3Dheadtracking.zip
3.3 MiB
6365 Downloads
Details

Kommentare

  • werner sagt:
    VA:F [1.9.22_1171]
    Rating: 0 (from 2 votes)

    Hallo, leider funktioniert das Programmbei mir nicht. Brauche ich dafür noch zusätzliche software. Es kommt nur die Fehlermeldung das eine MSCVCP100.dll fehlt.
    Win7

    Bitte um Hilfe ….Gruss

  • DJburner sagt:
    VA:F [1.9.22_1171]
    Rating: +1 (from 1 vote)

    Hey :)

    can you upload for me the version where kinect works?

    thx

  • patrick sagt:
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

    Hallo,
    kann man auch eigene Rendering (von ganzen Räumen) verwenden?
    ZB 3ds Max?
    Bitte um Antwort !
    Danke

  • Ruben sagt:
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

    Hi,

    We’re making a similar project about head-treacking and it would really speed up our work if we had the source code. Is there a link where i could download the source code?

    Kind regards,

    Ruben

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>