Benutzerdefinierte Eye-Tracker-Kalibrierung



Bald wird es ein Jahr geben, in dem wir das Produkt mit Custom ' Eye-Tracker- Kalibrierung' an Bord veröffentlichen. Leider hat es aus verschiedenen Gründen immer noch nicht funktioniert, diesen Artikel fertigzustellen. Vor kurzem ist jedoch ein lustiger Vorfall aufgetreten, der dazu veranlasste, den Start abzuschließen. Aber das Wichtigste zuerst. Ich hoffe, dass noch jemand von unserer Erfahrung profitieren wird, obwohl sich herausstellte, dass der Beitrag feucht war.

Kurz gesagt, Eye-Tracker ist ein Gerät, mit dem Sie die Blickrichtung sowie die Position von Augen und Kopf verfolgen können.

Eye-Tracker haben einige Anwendungsbereiche, darunter die Computerspielbranche ( etwas mehr ).

Oft ist die Blickerkennung für sekundäre (Hilfs-), aber wichtige Aktionen in Spielen verantwortlich:

  • Kamerabewegung;
  • zielen;
  • Auswahl von Objekten für die Interaktion;
  • Waffenauswahl;
  • automatischer Pausenruf bei Sehverlust;
  • andere.


In den meisten Fällen reicht die Standardkalibrierung (es handelt sich um das Tobii Eye Tracker 4C- Gerät) aus, um die Ära des Eye Track bequem zu nutzen.


Leider reicht für unsere Zwecke die Genauigkeit des Geräts, die durch Standardkalibrierung erreicht wird, nicht aus, da in unserem Projekt das Aussehen die Hauptmechanik der Steuerung darstellt.



Aus dem Vorstehenden wurde die Aufgabe gebildet: die Standardkalibrierung zu verbessern;
Bedingungen : Tobii Eye Tracker 4C- Gerät, Entwicklungssprache ist C # (WPF) .

An der Oberfläche scheint es eine Lösung zu sein: Wenn Sie mehr Genauigkeit wünschen, fügen Sie mehr Kalibrierungspunkte hinzu, aber das ist nicht so einfach.

Tobii AB verfügt über zahlreiche Tools für die Arbeit mit seinen Geräten. Joy kannte keine Grenzen, als das Tobii Pro SDK gefunden wurde, das alle Brötchen für die Arbeit mit der Kalibrierung enthält . Wie sich später herausstellte, ist dieses SDK nicht für die Arbeit mit dem von uns verwendeten Eye-Tracker- Modell geeignet (obwohl es seltsam ist, dass Bei Verwendung dieses SDK war die Blickerkennung des Geräts noch vorhanden. Ich musste die Werkzeuge leichter nehmen - Tobii.EyeX.Client .

Empirisch wurden die optimale Anzahl von Kalibrierungspunkten und ihre Position ermittelt: eine 4x3- Matrix mit 12 Kalibrierungspunkten (jeweils in der Mitte der Zelle).

Die folgenden Parameter wurden auch empirisch gefunden:

  • Zeit für die Kalibrierung an einem Kalibrierungspunkt - 3 Sekunden;
  • Der Index des betrachteten Punktes ist 5 (wenn der Index des vom Gerät empfangenen Punktes ein Vielfaches davon ist, berücksichtigen wir ihn bei der Berechnung der Kalibrierung).
  • Die maximal zulässige Abweichung vom Kalibrierungspunkt ( px ) wird nach folgender Formel berechnet:

    Math.Min(regionWidth,regionHeight)0,45

    wo regionWidthund regionHeight- Zellenbreite bzw. -höhe der Kalibrierungsmatrix


Kalibrierungsalgorithmus (Simple to Madness)


Die Kalibrierung wird nacheinander für jede Zelle der Kalibrierungsmatrix durchgeführt:

  1. Wenn der Abstand zwischen dem aktuellen Kalibrierungspunkt und dem vom Gerät empfangenen Punkt kleiner als die maximal zulässige Abweichung ist , fällt ein solcher Punkt (vom Gerät empfangen) zur weiteren Verarbeitung in die Sammlung, andernfalls wird die Kalibrierung für die aktuelle Zelle auf ihren ursprünglichen Zustand zurückgesetzt (und alles ist neu). ;;
  2. Nachdem die Zeit für die Kalibrierung um einen Kalibrierungspunkt abgelaufen ist, erhalten wir den Durchschnittswert der Verschiebung aus den zuvor gesammelten Daten.



Nach Abschluss der Kalibrierung haben wir eine Sammlung von 12 gemittelten Bias-Werten nach Region (Matrixzellen).



Verwendung (noch einfacher)


  1. Bestimmen, in welchen Bereich der vom Gerät empfangene Punkt fällt;
  2. Wir verschieben den vom Gerät empfangenen Punkt um den Durchschnittswert des Versatzes in diesem Bereich.

Auf diese Weise konnte die Genauigkeit des Tobii Eye Tracker 4C- Geräts programmgesteuert verbessert werden (durch Hinzufügen eines Add-Ons zur Standardkalibrierung).

Leider kann ich aufgrund der Geheimhaltungsvereinbarung weder den Namen der Software angeben noch die Quelle oder Screenshots auslegen. Zum Glück erlaubten sie mir, den Algorithmus zu teilen. Ich hoffe, dass jemand Beitrag noch nützlich sein wird.

Der Artikel enthält die einfachste Beschreibung des Hauptkalibrierungsprozesses. Darüber hinaus gibt es noch eine Reihe weiterer Dinge:

  • Mitteln des Punktwerts mit dem vorherigen (für die Glätte);
  • Überprüfen Sie, ob die Bildschirmränder überschritten werden.
  • Verlust der Sichtverfolgung;
  • Verfolgung von Änderungen in der Position der Augen im Raum;
  • Eye Tracker- Statusverfolgung;
  • Verfolgung von Änderungen in der Bildschirmauflösung;
  • Verfolgung der Abbruchkalibrierung;
  • zufällige Auswahl der Art der Kalibrierungsmarkierungen;
  • und vieles mehr.

Und genau hier ist das Ereignis, das zur "Fertigstellung" des Artikels beigetragen hat: Für einen unvorstellbaren Zufall hatte mein Freund ( aus dem vorherigen Beitrag ) die Möglichkeit, live mit dem Entwickler von Tobii AB zu chatten. Während des Gesprächs erwähnte der Entwickler, dass die Standardkalibrierung nicht ideal sei und dass unsere Bemühungen nicht umsonst seien.

Source: https://habr.com/ru/post/de457784/


All Articles