Facetracker FAQ
Unterstützt Facetracker Handtracking?
Nein. Facetracker ist nur ein Wrapper für OpenSeeFace, das bedeutet, Facetracker selbst bringt keine eigene Tracking-Logik mit, sondern reicht die Kameradaten lediglich an OpenSeeFace weiter und verarbeitet dessen Ausgabe. Da OpenSeeFace keine Handtracking-Unterstützung besitzt, kann Facetracker diese Funktion aktuell nicht anbieten.
Derzeit untersuchen wir jedoch, ob es möglich ist, externe Handtracker wie MediaPipe zusätzlich in Facetracker einzubinden. Weitere Informationen findet ihr dazu in diesem Ticket.
Ist Facetracker GPU-beschleunigt?
Nein. Facetracker verwendet aktuell die onnxruntime, eine Laufzeitumgebung zur Ausführung von Machine-Learning-Modellen, die von Microsoft entwickelt wird und plattformübergreifend auf der CPU läuft.
Es wäre technisch möglich, die onnxruntime-gpu als Drop-in-Replacement zu verwenden, also als direkten Ersatz, der ohne weitere Code-Änderungen eingesetzt werden könnte. Allerdings erfordert diese Variante zusätzliche Komponenten, damit die Hardwarebeschleunigung tatsächlich funktioniert. Nach aktuellen Beobachtungen läuft die onnxruntime-gpu zudem nur auf NVIDIA-Grafikkarten und benötigt je nach installierter CUDA-Version des lokalen Treibers unterschiedliche Laufzeitkomponenten. CUDA ist NVIDIAs proprietäre Plattform zur Nutzung der Grafikkarte für allgemeine Berechnungen.
Die einzige praktikable Option wäre, zusätzliche Plugins für Facetracker bereitzustellen, die GPU-Beschleunigung für CUDA 11.x, CUDA 12.x und CUDA 13.x, oder alternativ reine CPU-Nutzung, ermöglichen. Der Nutzer müsste das passende Plugin dann je nach Beschaffenheit seines Systems selbst installieren.
Da unser Ziel ist, dass Facetracker so wenig Einrichtungsaufwand wie möglich verursacht, und da OpenSeeFace auch auf schwachen CPUs sehr performant läuft, sehen wir aktuell davon ab, GPU-Beschleunigung hinzuzufügen.
Aktuelle Entwicklungen lassen sich jedoch in diesem Ticket verfolgen. Das Thema ist also nicht vom Tisch, wir können aber keine Garantie geben, dass Hardwarebeschleunigung jemals Einzug in Facetracker erhalten wird.
Wo kann ich den Quelltext von Facetracker finden?
Der Quelltext steht auf Codeberg zur Verfügung. Codeberg ist eine europäische Open-Source-Plattform für Code-Verwaltung, vergleichbar mit GitHub.
Wo kann ich Facetracker installieren?
Offiziell stellen wir Facetracker über Flathub bereit. Flathub ist das zentrale Paketverzeichnis für Flatpak-Anwendungen und auf den meisten gängigen Linux-Distributionen verfügbar.
Es besteht außerdem die Möglichkeit, dass einzelne Linux-Distributionen Facetracker in ihren eigenen Paketquellen anbieten. Für diese Pakete übernehmen wir jedoch keine Gewähr.
Unterstützt Facetracker auch RPM, DEB oder PKGBUILD, oder nur Flatpak?
Aktuell unterstützt Facetracker keine nativen Paketformate, sondern ausschließlich Flatpak.
Zur Erklärung: RPM ist das Paketformat von Distributionen wie Fedora oder openSUSE, DEB wird von Debian und Ubuntu verwendet, und PKGBUILD ist das Build-Skript-Format von Arch Linux. Flatpak hingegen ist ein distributionsunabhängiges Paketformat, das auf allen gängigen Linux-Systemen lauffähig ist, weshalb kaum eine Notwendigkeit besteht, Facetracker auch in anderen Formaten anzubieten. Flatpak ist daher das einzige offiziell unterstützte Paketformat.
Es gibt jedoch Bestrebungen, auch andere Paketformate zu unterstützen. Dafür benötigen wir jemanden, der sich aktiv um diese Pakete kümmert, idealerweise jemanden, der sie auch selbst verwendet, damit Probleme frühzeitig gefunden und behoben werden können.
Falls du zu Facetracker beitragen möchtest, kannst du dich in diesem Ticket melden.
Unterstützt Facetracker auch ARM-Geräte?
Ja. Seit Version 26.8.1 unterstützt Facetracker auch aarch64-basierte Systeme. aarch64 ist die 64-Bit-Variante der ARM-Prozessorarchitektur, die in vielen Einplatinencomputern und mobilen Geräten verbaut wird, darunter Raspberry Pi 4, 400, 5, 500 und 500+, sowie Librem 5 und PinePhone.
Auf einer Raspberry Pi 400 erreichte Facetracker in der Gesichtserkennung eine Geschwindigkeit von ungefähr 7 Bildern pro Sekunde.
Warum verwendet Facetracker keine Portals, um auf Webcams zuzugreifen?
Hintergrund: Portals sind eine Schnittstelle des XDG-Standards, über die sandboxed Anwendungen, also Anwendungen, die in einer abgeschlossenen Umgebung ohne direkten Systemzugriff laufen, wie es bei Flatpak der Fall ist, kontrolliert auf Systemressourcen wie Kameras zugreifen können. Die Kommunikation erfolgt dabei über PipeWire, ein modernes Audio- und Video-Framework unter Linux.
Facetracker könnte theoretisch Portals nutzen, um auf Webcams zuzugreifen. Das eigentliche Problem liegt jedoch bei OpenSeeFace, das intern OpenCV verwendet, um Kameras anzusteuern. OpenCV ist zwingend auf Video4Linux2 (V4L2) angewiesen, eine etablierte, aber ältere Kernel-Schnittstelle zum Zugriff auf Kameras unter Linux und Unix-basierten Betriebssystemen.
Um mit Portals zu arbeiten, müsste die Anwendung über PipeWire mit der Webcam interagieren. Die Portals-API erstellt jedoch kein V4L2-Gerät innerhalb der Sandbox, OpenCV kann daher nicht mit PipeWire kommunizieren und findet schlicht kein kompatibles Gerät vor.
Theoretisch wäre es denkbar, ein virtuelles V4L2-Gerät zu emulieren, das intern über PipeWire mit der Webcam kommuniziert. Dies werden wir jedoch nicht in Facetracker implementieren.