Spaß mit Kinect

Den wohl zur Zeit günstigsten Einstieg ins Thema 3D Scannen bietet ein System auf Basis eines PrimeSense Sensors, den meisten wohl als Microsoft Kinect bekannt. PrimeSense, eine Firma aus Israel, entwickelte die Technologie und das Referenzdesign, welche von Microsoft lizensiert und als Bewegungssteuerung für deren XBox Spielekonsole auf den Markt gebracht wurde. Die Tiefenmessung funktioniert folgendermaßen: Von einer Infrarot Lichtquelle wird ein codiertes Muster ausgestrahlt, welches, auf die zu scannenden Objekte projiziert, von einer CMOS Kamera eingefangen und von einem Mikroprozessor interpretiert wird. Geliefert wird also ein komplett von der Hardware fertig berechnetes Tiefenbild. Zusätzlich ist eine normale 16 Bit RGB Kamera vorhanden. Beide Kameras arbeiten bei VGA Auflösung mit 30 Hertz.

Den Sensor gibt es in unterschiedlichen Geschmacksrichtungen:

  • Kinect for XBox 360 – Für den gemeinen Bastler wohl die beste Lösung. Gebraucht auf eBay schon ab 60 Euro erhältlich. Funktioniert offiziell bei einer Entfernung von 1,2 bis 3,5 Meter. Aber, und das ist der Witz, benutzt man nicht die offiziellen Microsoft Treiber und deren SDK, sondern eine Kombination aus Treibern von PrimeSense und OpenNI (eine Art Middleware zwischen Treiber und Programmen, stellt eine API bereit), dann verkürzt sich die minimale Entfernung auf 0,8 Meter.
  • Kinect for Windows – Wurde Anfang 2012 von Microsoft veröffentlicht, angeblich exakt identische Hardware wie Kinect für die XBox, jedoch von Haus aus Nahbereich ab 0,8 Meter. Gut möglich, dass die günstigere Kinect von Microsoft per Software beschnitten wird, die Kinect für Windows kostet nämlich 200 Euro neu. Wird vom Hersteller mit angepasstem Lizenzmodell begründet.
  • PrimeSense Carmine – Verzichtet im Vergleich zu Kinect auf zusätzliche Mikrofone und den motorisierten Standfuß und benötigt daher keine zusätzliche Stromquelle in Form eines Steckernetzteils. Interessant für Portraits und kleinere Objekte ist wohl die/das Carmine 1.09, welches ab 35 Zentimeter funktioniert.
  • Asus Xtion – Klon von Asus, wohl nicht nur rein optisch dem PrimeSense Carmine sehr ähnlich.

Ich habe mich für die günstigste Variante entschieden, da sich die Modelle nur in Kleinigkeiten unterscheiden und identische Leistung bringen. Wichtig bei einem Kauf der Kinect für XBox: Darauf achten, dass der USB Adapter und das Netzteil dabei ist, der Sensor an sich besitzt für den Anschluss an neuere XBoxen nur einen proprietären Stecker. Das Netzteil liefert 12 Volt, um die Mobilität zu steigern verwende ich wahlweise einen dreizelligen LiPo Akku mit 2200 mAh, welcher genügend Saft für exzessive Scan Sessions bietet.

Nachdem ich mir mehrere Anwendungen wie KScan3D, Artec Studio und ReconstructMe angesehen hatte, habe ich mich letztendlich für Skanect entschieden. Dieses Programm bietet Unterstützung für OpenNI, demnächst auch eine Version für Mac OS, und das zu einem akzeptablen Preis. Außerdem hatte ich das Gefühl, dass hier die Entwicklung recht schnell vorangeht. Das Forum ist gut besucht, auch von den Entwicklern selbst. Naja, Standard Software Auswahlkriterien halt.

Auch Skanect baut das 3D Modell in Echtzeit, das heißt noch während des Scanvorgangs. Man sieht also sofort wenn was schief läuft. Derzeit wird für beste Ergebnisse eine dedizierte Nvidia Grafikkarte benötigt, da für das Berechnen des Meshs CUDA verwendet wird, in Kürze funktioniert das ohne qualitative Abstriche wohl auch rein per CPU. Außerdem bietet das Programm rudimentäre Nachbearbeitungsmöglichkeiten, wie Vereinfachen oder Beschneiden des 3D Modells, was sich in der Praxis als sehr praktisch erweist, da man so ohne unnötige Umwege druckbare Objekte generieren kann.

skanect01

Die auf dem Screenshot zu sehende gepunktete Linie ist tatsächlich die Bewegung der Kamera im dreidimensionalen Raum, beziehungsweise die Koordinaten, von wo aus die einzelnen Frames geschossen wurden. Außerdem zu sehen: Die von der RGB Kamera bereitgestellten Farbbilder werden zu einer Textur verarbeitet (die leider sehr sehr matschig wird).

untitled

Der Scanvorgang an sich funktioniert auch bei schlechter Beleuchtung, da der Sensor ja mit selbst ausgestrahltem Infrarotlicht arbeitet, lediglich sehr starke Sonneneinstrahlung kann die Tiefenberechnung verwirren. Und natürlich funktioniert diese Technologie auch bei spiegelnden Oberflächen nicht. Bei den ersten Portrait-Scans hatte ich mich gewundert, warum die Augenpartie so komisch aussieht (siehe oben), und tatsächlich, bei geschlossenen Augen wird auch dieser Bereich besser erfasst. Ansonsten muss man noch aufpassen, dass man die Kamera nicht zu ruckartig bewegt, da sonst die Software die nötigen Bezugspunkte verliert und das generierte Mesh dann sehr komisch aussehen kann.

Gedruckt sieht das dann so aus:

2013-03-11 12.24.45

Sehr faszinierende Technik! Nur leider lässt die Qualität, also die Auflösung des Sensors noch zu wünschen übrig. Gerade bei Portraits wäre eine etwas bessere Darstellung von Details wünschenswert. Aber ich will hier nicht rummeckern, ich bin absolut davon begeistert, wie verlässlich das System funktioniert und wie einfach man damit reelle Objekte in die virtuelle Welt transferiert.

Nächster Schritt: Motion Tracking Daten zur Verwendung in Blender.

1 Antwort

Dein Kommentar

Willst Du mitdiskutieren?
Ich freue mich über deinen Kommentar!

Schreibe einen Kommentar

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