FreeTrack ist eine optische Bewegungserfassungsanwendung für Microsoft Windows , die unter der GNU General Public License veröffentlicht wurde und mit gängigen, kostengünstigen Kameras verwendet werden kann. Ihr Hauptaugenmerk liegt auf der Kopfbewegungserfassung, die in Bereichen wie Virtual Reality , Simulation , Videospielen , 3D-Modellierung , computergestütztem Design und allgemeiner freihändiger Computerbedienung eingesetzt wird, um die Zugänglichkeit von Computern zu verbessern . Die Erfassung kann so präzise eingestellt werden, dass nur minimale Kopfbewegungen erforderlich sind, sodass der Blick des Benutzers stets auf dem Bildschirm bleibt.
Eine Kamera erfasst ein vom Benutzer getragenes starres Punktmodell, dessen Punkte durch physikalische und softwarebasierte Filterung vom Hintergrundlicht isoliert werden müssen. Die Bewegung wird mit bis zu sechs Freiheitsgraden (6DOF) erfasst: Gieren, Nicken, Rollen, Links/Rechts, Auf/Ab und Vorwärts/Rückwärts. Unterstützt werden Windows-kompatible Videogeräte wie Webcams , die spezielle Nintendo Wii Remote- Kamera, die iPhone Truedepth-Kamera mit Eyeware Beam und NaturalPoint-Kameras ( TrackIR , SmartNav und OptiTrack).
FreeTrack kann Head-Tracking-Daten über seine eigene offene Schnittstelle sowie über TrackIR- , SimConnect- und FSUIPC-Schnittstellen direkt an Programme ausgeben. Programme, die diese Schnittstellen unterstützen, gelten als FreeTrack-kompatibel . Falls ein Programm keine direkte Schnittstelle bietet, kann FreeTrack außerdem Maus , Tastatur und Joystick (über PPJoy) emulieren .
FreeTrack ist in Delphi 7 programmiert und verwendet DirectShow und DirectX . Die Kopfverfolgung wird mithilfe von Implementierungen des iterativen Vier-Punkt -Pose- Schätzalgorithmus (POSIT) von DeMenthon [ 1 ] und des geometrischen Drei-Punkt-Algorithmus von Alter [ 2 ] realisiert .
Software
FreeTrack nutzt eine Kamera, um Echtzeitinformationen über das vom Benutzer getragene Punktmodell zu erfassen. Genauer gesagt werden die Bildkoordinaten der Modellpunkte entweder direkt von der Kamera empfangen oder aus einem Videostream extrahiert. Mithilfe dieser Koordinaten wird die tatsächliche Kopfhaltung geschätzt, die der Benutzer auf verschiedene Weisen transformieren kann, um eine virtuelle Haltung zu erzeugen. Eine der grundlegendsten Transformationen besteht darin, die Rotation zu verstärken, sodass nur geringe Kopfbewegungen erforderlich sind. Abschließend wird die virtuelle Haltung an die vom Benutzer gewählten Ausgabegeräte gesendet. Dies alles geschieht im Hintergrund, der Tracking-Status wird in der Taskleiste angezeigt .
Eine 3D-Vorschau zeigt die virtuelle Kopfposition und -ausrichtung für eine gegebene reale Kopfhaltung und kann aus verschiedenen Perspektiven, einschließlich der Egoperspektive, betrachtet werden. Dies erleichtert das Testen und das Experimentieren mit verschiedenen Einstellungen erheblich.
Jeder Freiheitsgrad (jede Achse) verfügt über eine Kennlinie, die angepasst werden kann, um die Bewegung des virtuellen Kopfes bei einer gegebenen realen Kopfbewegung zu verändern. Dies wird häufig genutzt, um einen zentralen Totraum zu erzeugen, in dem der Kopf des Benutzers entspannter liegen kann.
Mit Tastatur-, Maus- und Joystick-Tasten lassen sich die Tracking-Einstellungen umschalten, einschließlich der virtuellen Mittelposition (ähnlich der Sitzposition in einem Auto), und Achsen und Ausgänge können einzeln umgeschaltet werden.
Für NaturalPoint-Kameras bietet FreeTrack erweiterte Funktionen und einen Grad an Anpassungsmöglichkeiten, der mit offizieller Software nicht verfügbar ist.
Kamera
| Kamera | Sensorauflösung | FPS | Sensor | Winkel (°) | Ausgabe | CPU-Auslastung | Subpixel-Präzision | IR -LEDs | Ungefährer Preis (USD) |
|---|---|---|---|---|---|---|---|---|---|
| Ideale Webcam | 640×480 | ≥60 | einfarbig | 42 | stark komprimiert | klein | Softwareabhängig | Ja | ? |
| OEM- IR- Webcam [ 3 ] | 640×480 | 30 | Farbe | 42 | JPEG-komprimiert | klein | Softwareabhängig | Ja | 5 US-Dollar |
| Sony PlayStation EyeToy | 640×480 | 30 | Farbe | 56 | JPEG komprimiert [ 4 ] | klein | Softwareabhängig | NEIN | 16 US-Dollar |
| Sony PlayStation 3 Eye | 640×480 | 187@320x240 ( CLEye ), 125@320x240 (DirectShow), 75@640x480 (DirectShow) [ 5 ] | Farbe | 75, 56 | JPEG-komprimiert, Rohdaten | klein | Softwareabhängig | NEIN | 24 $ |
| Microsoft Xbox Live Vision | 640×480 | 60@320×240, 30@640×480 | Farbe | ? | JPEG-komprimiert, [ 6 ] Rohdaten | klein | Softwareabhängig | NEIN | 14 $ |
| Nintendo Wii-Fernbedienung | 128×96 | 100 ( Bluetooth ), 250 ( I2C ) [ 7 ] | Farbe | 41 | Punktkoordinaten | keiner | 1/8 | NEIN | 23 US-Dollar |
| NaturalPoint TrackIR 1 [ 8 ] | 60.000 Pixel (z. B. 300×200) | 60 | einfarbig | 33 | binärer Schwellenwert | minimal | Ja | im Ruhestand | |
| NaturalPoint TrackIR 2 [ 8 ] | 60.000 Pixel (z. B. 300×200) | 100 | einfarbig | 33 | binärer Schwellenwert [ 9 ] | minimal | Ja | im Ruhestand | |
| NaturalPoint TrackIR 3 [ 10 ] | 355×288 | 80 | einfarbig | 33 | binärer Schwellenwert | minimal | Ja | im Ruhestand | |
| NaturalPoint TrackIR 3 Pro [ 10 ] | 355x288 | 120 | einfarbig | 33 | binärer Schwellenwert | minimal | Ja | im Ruhestand | |
| NaturalPoint TrackIR 4 Pro [ 10 ] | 355×288 (unterabgetastet auf 710×480) | 120 | einfarbig | 46 | binärer Schwellenwert [ 11 ] | minimal | 1/20 | Ja | 99,95 $ |
| NaturalPoint TrackIR 5 [ 10 ] | 640×480 | 120 | einfarbig | 51,7 | Graustufenschwelle [ 12 ] | minimal | 1/150 | Ja | 149,95 $ |
| NaturalPoint SmartNav 1/2 | 60.000 Pixel (z. B. 300×200) | 60 | einfarbig | 33 | binärer Schwellenwert | minimal | Ja | im Ruhestand | |
| NaturalPoint SmartNav 3 [ 13 ] | 355×288 | 120 | einfarbig | 33 | binärer Schwellenwert | minimal | 1/20 | Ja | im Ruhestand |
| NaturalPoint SmartNav 4 [ 13 ] | 640×480 (unterabgetastet auf 1280×480) | 100 | einfarbig | 41 | Graustufenschwelle [ 14 ] | minimal | 1/150 | Ja | 400 bis 500 US-Dollar |
Auflösung
In den meisten Fällen ist eine Auflösung von 320×240 Pixeln ausreichend. Diese ermöglicht eine deutlich höhere Subpixel-Auflösung , die für eine präzise Cursorsteuerung auf einem hochauflösenden Monitor ausreicht. Bei Auflösungen von 640×480 Pixeln und höher nimmt der Nutzen ab, und die CPU-Auslastung steigt exponentiell an, wenn die Daten vor der Übertragung an den Computer nicht ausreichend komprimiert werden. Höhere Auflösungen gewinnen mit zunehmender Entfernung von der Kamera an Bedeutung. Die Wii verwendet einen niedrig auflösenden 128×96-Pixel-Sensor, der laut einigen Nutzern zu ruckeliger Bildverfolgung führt und möglicherweise eine Glättung zur Verbesserung der Stabilität erfordert, was jedoch die Reaktionsfähigkeit verringert. [ 15 ]
Sensor
Bei gleicher Auflösung können monochrome Sensoren feinere Details viel besser auflösen als Farbsensoren, da ihnen ein Farbfilterarray fehlt .
Bildrate
FreeTrack nutzt Interpolation bei Videogeräten mit niedriger Bildrate, um flüssigere Schwenks zu ermöglichen. Die Reaktionsfähigkeit ist jedoch grundsätzlich durch die Bildrate begrenzt: Eine Webcam mit 30 Bildern pro Sekunde hat eine maximale Reaktionsverzögerung von 33,3 Millisekunden, verglichen mit 8,33 Millisekunden bei einer Kamera mit 120 Bildern pro Sekunde. Zum Vergleich: Die menschliche Reaktionszeit auf einen visuellen Reiz (Fingerreflex) liegt typischerweise bei etwa 200 ms; 30 ms gelten als wettbewerbsfähiger Ping in Online-Spielen, die auf schnellen Reaktionen basieren, und die Bildwiederholfrequenz eines LCD-Monitors beträgt typischerweise 17 ms.
Eine höhere Reaktionsgeschwindigkeit vermittelt ein besseres Kontrollgefühl, da virtuelle Kopfbewegungen jedoch verstärkt werden, kann dies auch zu unrealistisch schnellen Bewegungen führen. Aus diesem Grund begrenzen manche Programme die Geschwindigkeit der Kopfbewegungen, wodurch ein Teil der Reaktionsfähigkeit von Kameras mit höherer Bildrate ungenutzt bleibt.
Winkel
Ein größerer Betrachtungswinkel ermöglicht einen größeren Erfassungsbereich bei geringem Abstand zur Kamera. Bei größeren Entfernungen ist ein weiter Winkel unerwünscht, da ein größerer Teil des Bildausschnitts ungenutzt bleibt und die effektive Auflösung schneller abnimmt. Zudem wird mehr Streulicht erfasst, was die Erfassung beeinträchtigen kann. Der Betrachtungswinkel lässt sich durch digitalen Zoom verringern , allerdings auf Kosten der Auflösung.
CPU-Auslastung
Die Nintendo Wii-Fernbedienung benötigt praktisch keine CPU-Leistung, NaturalPoint-Kameras nur wenig, und allgemeine Videogeräte können je nach Marke und Kameraeinstellungen einen erheblichen Anteil beanspruchen. Eine PlayStation Eye, die mit der gleichen Auflösung und Bildrate wie ein TrackIR 4 läuft, wäre für einen Einkernprozessor sehr anspruchsvoll. Moderne Mehrkernprozessoren reduzieren dieses Problem jedoch zunehmend. Auflösung und Bildrate lassen sich jederzeit verringern, um CPU-Ressourcen zu sparen.
Filter
FreeTrack erfordert, dass die Trackingpunkte von jeglichem anderen Licht isoliert sind. Dies gelingt am besten mit Infrarot-LEDs und einem Lichtfilter, der sichtbares Licht vor der Kamera blockiert. Fotofilm oder das magnetische Speichermedium von Disketten eignen sich als kostengünstige Lichtfilter. Eine weitere Filterung kann softwareseitig durch Anpassen von Belichtung und Schwellenwert erfolgen.
Alle Videogeräte wie Webcams verfügen über einen eingebauten Infrarot-Sperrfilter, der entfernt werden kann, um die Empfindlichkeit für Infrarotlicht zu verbessern. Dies ermöglicht eine bessere Punktisolierung und die Möglichkeit der retroreflektierenden Verfolgung. Bei den meisten Webcams ist dies in der Regel ein einfacher und reversibler Vorgang.
Wii-Fernbedienungen und NaturalPoint-Kameras sind für die Infrarot-Punktverfolgung ausgelegt und verfügen daher bereits über Filter, die sichtbares Licht blockieren.
Punktmodell
Modellkonfigurationen
- Einzelpunktmessung: Ein einzelner Messpunkt, beispielsweise an einer Baseballkappe oder einem Draht befestigt, der sich vor dem Kopf befindet. Dies lässt sich leicht mit einer kleinen Lichtquelle wie einer Taschenlampe realisieren . Im Gegensatz zu anderen Konfigurationen ist diese auf zwei Freiheitsgrade (Gieren und Nicken) beschränkt und reagiert empfindlicher auf Translations- als auf Rotationsbewegungen.
- Dreipunktclip: asymmetrische dreieckige Anordnung von Punkten, die an Kopfhörern befestigt und seitlich am Kopf positioniert werden können.
- Dreipunktkappe: symmetrische dreieckige Anordnung von Punkten, typischerweise am Rand einer Baseballkappe befestigt.
- Vierpunktkappe: symmetrische, nicht koplanare Anordnung von Punkten, die auch am Rand einer Baseballkappe befestigt sind.
Modelle lassen sich mit leicht erhältlichen Elektronikbauteilen kostengünstig selbst bauen . Bauteilsätze und fertig montierte Modelle sind auch bei einigen Mitgliedern der FreeTrack-Community erhältlich.
Aktive Punkte
Ein aktives Punktmodell verwendet sichtbare oder infrarote LEDs (5 mm oder größer) zur Darstellung der Trackingpunkte und wird über Batterie, Netzteil oder USB mit Strom versorgt . Die elektrische Schaltung ist sehr einfach und kann auch von Personen mit geringen oder gar keinen Elektronikkenntnissen aufgebaut werden.
Gängige LEDs, wie sie beispielsweise in Fernbedienungen verwendet werden , erzeugen einen engen, stark fokussierten Lichtstrahl, der für die optische Bewegungserkennung ungeeignet ist. Durch Abfeilen der Linsenspitzen lassen sie sich leicht in Weitwinkel-LEDs umwandeln. Alternativ sind Weitwinkel-LEDs im Fachhandel erhältlich, beispielsweise die Infrarot-LED Siemens/Osram SFH485P mit einem halben Abstrahlwinkel von 40 Grad.
Reflexionspunkte
Retroreflektierendes Material kann verwendet werden, um die Trackingpunkte durch Beleuchtung mit einer Infrarotlichtquelle darzustellen. Diese Konfiguration benötigt keine Kabel oder Batterien, die mit dem Benutzer verbunden sind, ist jedoch anfälliger für Störungen durch Umgebungslicht. In den meisten Fällen muss der interne Infrarot-Sperrfilter einer Webcam entfernt werden, um die Empfindlichkeit so weit zu erhöhen, dass das von den Trackingpunkten reflektierte Infrarotlicht sichtbar wird.
FreeTrack-Schnittstelle
FreeTrack verfügt über eine einfache Schnittstelle, die von Drittanbieterprogrammen wie Eyeware Beam frei genutzt werden kann, um auf 6DOF-Trackingdaten zuzugreifen – sowohl auf reale Rohmesswerte als auch auf virtuelle. Es ist hardwareunabhängig und somit nicht von einer bestimmten Hardwaremarke oder -version abhängig. ARMA 2 von Bohemia Interactive war das erste Spiel mit Unterstützung für die FreeTrack-Schnittstelle [ 16 ] , und GP Bikes bot als erstes exklusive Unterstützung [ 17 ] .
TrackIR-Schnittstelle
FreeTrack ist mit der unverschlüsselten Version der TrackIR-Schnittstelle von NaturalPoint kompatibel, die in Simulationsspielen weit verbreitet ist. NaturalPoint stellt Spieleentwicklern seit Ende 2008 für populärere Titel eine verschlüsselte Version der Schnittstelle zur Verfügung. Diese benötigt TrackIR-Softwareversion 4.1.036 oder höher und ist nicht mit FreeTrack kompatibel. [ 18 ] Die Entwickler des ersten betroffenen Spiels, DCS: Black Shark , [ 19 ] versuchten zunächst, eine eigene Head-Tracking-Schnittstelle zu veröffentlichen, zogen das Projekt jedoch auf Wunsch von NaturalPoint zurück. [ 20 ] Die Kompatibilität mit FreeTrack ist weiterhin möglich, indem TrackIRFixer die Verschlüsselungsanforderung in Spielen entfernt. [ 21 ]
TIRViews.dll ist eine mit der TrackIR-Software ausgelieferte DLL- Datei, die angepasste Unterstützung für eine kleine Anzahl meist älterer Spiele bietet . Sie verwendet spezielle Schnittstellen oder Speichermanipulationen, um die Ansichtssteuerung zu vereinfachen. [ 22 ] Obwohl dies gegen die TrackIR- Lizenzvereinbarung verstößt , [ 23 ] ist die Verwendung mit FreeTrack möglich.
Das TrackIR-Interface -SDK von NaturalPoint ist nur unter einer unterzeichneten Lizenzvereinbarung [ 24 ] erhältlich und unterliegt einer Geheimhaltungsvereinbarung . Daher ist FreeTrack zwar freie Software , die TrackIR-Interface-Komponente muss jedoch Closed Source sein . [ 25 ]
Siehe auch
Referenzen
- ^ DeMenthon, Daniel; Larry S. Davis (1992). „Modellbasierte Objektposenerkennung in 25 Zeilen Code“. European Conference on Computer Vision . 15 : 335–343 . CiteSeerX 10.1.1.50.9280 .
- ^ Alter, TD (1992). „3D Pose from Three Corresponding Points Under Weak-Perspective Projection“. AI Memo . 1378 (AIM–1378): 43. CiteSeerX 10.1.1.18.1908 .
- ^ „8.0 Mega 6 IR LED Webcam Web Cam Camera Skype MSN Mic“ . Abgerufen am 7. September 2010 .
- ^ „Verwendung von ov519-Webcams (Eyetoy) mit pdp/Gem (JPEG-Frames)“ . Abgerufen am 8. Mai 2010 .
- ^ „CL Eye Platform SDK Changelog“ . Abgerufen am 30.10.2010 .
- ^ „XBOX Live Vision Kamera in Ubuntu“ . Archiviert vom Original am 06.01.2010 . Abgerufen am 08.05.2010 .
- ^ „Automatische Start-, Schwebe- und Landesteuerung für Miniaturhubschrauber mit kostengünstiger Bordhardware“ (PDF) . Abgerufen am 8. Mai 2010 .
- ^ a b „TrackIR3 Pro Head-up-Gamecontroller“ . Ars Technica. 25. August 2004. Abgerufen am 13. Oktober 2007 .
- ^ „TrackIR2, Track IR2 Headtracking kaufen, Testbericht, vorgestellt“ . Abgerufen am 08.05.2010 .
- ^ a b c d „TrackIR Produktvergleich“ . NaturalPoint . Abgerufen am 13.10.2007 .
- ^"TrackIR 4 Grayscale". 11 June 2009. Retrieved 2010-05-08.
- ^"TrackIR 5 Grayscale". Archived from the original on 2011-07-14. Retrieved 2010-05-08.
- ^"Wii resolution and latency". Retrieved 2010-12-07.
- ^"Arma 2: Patch v1.05". Retrieved 2010-07-20.
- ^"PiBoSo Alpha 6 released". Archived from the original on 2011-07-15. Retrieved 2010-03-16.
- ^"NaturalPointofView - The NaturalPoint TrackIR Monopoly". Retrieved 2010-07-20.
- ^"TrackIR Enhanced Games : DCS: Black Shark". NaturalPoint. Retrieved 2008-10-26.
- ^Tez - ED Team (14 November 2008). "HeadTracker interface - ED Forums". Eagle Dynamics. Retrieved 2010-03-16.
- ^"NaturalPointofView - The NaturalPoint TrackIR Monopoly: TrackIRFixer". Retrieved 2010-07-20.
- ^"FreeTrack Forum V2.2 & FSX/FS9". Retrieved 2010-02-20.
- ^"TrackIR software download page". NaturalPoint. Retrieved 2010-02-20.
- ^"TrackIR Developers : Which SDK Do I Need?". Retrieved 2010-02-20.
- ^"Head banging..." Archived from the original on 2011-06-05. Retrieved 2010-02-20.
External links
- Official FreeTrack websiteArchived 2011-11-24 at the Wayback Machine
- Daniel DeMenthon's academic page - papers and examples of POSIT algorithm
- FreeTrack YouTube channel