L2CS-Net

L2CS-Net ist ein zweistufiger Blickschätzer: Ein Gesichtsdetektor lokalisiert Gesichter, anschließend sagt ein ResNet-Trunk mit zwei Klassifikations-Heads für Winkel-Bins die Neigung und horizontale Richtung pro Gesicht voraus. LibreYOLO bindet das Modell nur für die Inferenz ein.

Aufgaben
gaze
Größen
r18, r34, r50, r101, r152 at 448 px
Installation
pip install libreyolo
Supportstufe
Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
Upstream
L2CS-Net von Ahmed A. Abdelrahman et al., Gaze360 dataset terms: research and non-commercial use only, no redistribution. Publikation, Quelle
Lizenzen
Code MIT, Gewichte Gaze360 dataset terms: research and non-commercial use only, no redistribution. Kommerzielle Nutzung

Installation

L2CS-Net benötigt keine zusätzlichen Abhängigkeiten, um ein Modell zu erstellen, Vorhersagen damit auszuführen oder es zu exportieren, wenn du bereits einen Checkpoint besitzt.

bash
pip install libreyolo

Der einzige Checkpoint, den LibreYOLO automatisch abrufen kann, ist ein mit Gaze360 trainiertes ResNet-50. Er wird über gdown statt über einen einfachen HTTP-Spiegel heruntergeladen, weil er auf Google Drive des Autors und nicht in der LibreYOLO-Organisation liegt. Dieser Pfad benötigt das Extra gaze:

bash
pip install "libreyolo[gaze]"

Ohne dieses Extra gibt LibreYOLO Anweisungen für den manuellen Download aus, anstatt ohne Meldung fehlzuschlagen.

Vorhersage

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Kein face_detector angegeben: nutzt den mit OpenCV gebündelten# Detektor (Haar in OpenCV 4, YuNet in OpenCV 5). Außer dem# L2CS-Checkpoint selbst ist daher kein weiterer Download nötig.model = LibreYOLO("LibreL2CSr50.pt")result = model(SAMPLE_IMAGE) print(result.gaze.pitch, result.gaze.yaw)
CLI
libreyolo predict model=LibreL2CSr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Gesichtsquelle
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreL2CSr50.pt") # L2CS Boxen eines bereits ausgeführten Detektors übergeben.result = model(SAMPLE_IMAGE, face_boxes=[[34, 12, 90, 80]]) # Oder einen bestimmten gebündelten Gesichtsdetektor angeben.result = model(SAMPLE_IMAGE, face_detector="yunet")

L2CS-Net ist ein zweistufiger Schätzer: Zuerst wird ein Gesichtsdetektor ausgeführt. Anschließend liest der Blick-Head Neigung und horizontale Richtung aus jedem zurückgegebenen Gesichtsausschnitt. Ohne weitere Angaben greift die Vorhersage auf den mit OpenCV gebündelten Detektor zurück. Sobald du den L2CS-Checkpoint besitzt, funktioniert ein einfacher Aufruf daher ohne weiteren Download. face_boxes akzeptiert Boxen eines bereits ausgeführten Detektors. face_detector akzeptiert "auto", "haar", "yunet", ein LibreYOLO-Erkennungsmodell oder ein einfaches Callable. result.gaze enthält Neigung und horizontale Richtung in Radiant. Seine Zeilen sind an result.boxes, also die erkannten Gesichtsboxen, ausgerichtet. Unter Vorhersage findest du Informationen zu Quellen, Streaming und Ergebnisverarbeitung.

Varianten

Fünf Backbone-Tiefen verwenden dieselbe Eingabeauflösung und nehmen dieselben Argumente entgegen. Gaze360, der Datensatz hinter dem einzigen veröffentlichten Checkpoint, wurde mit einem ResNet-50 trainiert. Die anderen vier Tiefen werden von der Architektur unterstützt, besitzen aber keine veröffentlichten Gewichte.

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
gazegaze to ONNX: unterstütztgaze to TorchScript: unterstütztgaze to ExecuTorch: unterstütztgaze to TensorRT: unterstütztgaze to OpenVINO: unterstütztgaze to Paddle: nicht unterstütztgaze to MNN: nicht unterstütztgaze to RKNN: nicht unterstütztgaze to ncnn: nicht unterstütztgaze to TFLite: nicht unterstütztgaze to CoreML: nicht unterstütztgaze to Core AI: nicht unterstützt

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreL2CSr50.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreL2CSr50.pt format=onnx
Exportierte Datei nutzen
import numpy as npimport onnxruntime as ort # Der exportierte Graph enthält nur den ResNet-Trunk und die beiden# Winkel-Bin-Heads. Er nimmt einen vorverarbeiteten 448x448-# Gesichtsausschnitt entgegen und gibt rohe (yaw_logits, pitch_logits)# statt decodierter Winkel aus. Softmax, Bin-Erwartungswert und# Gradumrechnung verbleiben in Python. Siehe# libreyolo.models.l2cs.utils.bin_logits_to_angles.session = ort.InferenceSession("LibreL2CSr50.onnx")name = session.get_inputs()[0].nameyaw_logits, pitch_logits = session.run(    None, {name: np.zeros((1, 3, 448, 448), dtype=np.float32)})

Lizenzierung

Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.

Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.

Originalarbeit
L2CS-Net, Ahmed A. Abdelrahman et al.
Upstream-Lizenz
Gaze360 dataset terms: research and non-commercial use only, no redistribution
LibreYOLO-Code
MIT
Gewichte
Gaze360 dataset terms: research and non-commercial use only, no redistribution, von den Autoren verbreitet. LibreYOLO hostet oder spiegelt sie nicht.
Einordnung
The L2CS-Net source is MIT and may be used, modified and redistributed, including commercially. The one checkpoint LibreYOLO can fetch automatically, a ResNet-50 trained on Gaze360, is not covered by that grant: the Gaze360 dataset license restricts use of models trained on it to research and non-commercial purposes and forbids redistribution. LibreYOLO does not mirror or host that checkpoint. It downloads it, on request, directly from the author's own distribution and prints the Gaze360 terms once before the transfer starts. A model trained on data you hold the rights to, using this MIT architecture, carries none of those restrictions.

LibreYOLO hostet oder spiegelt keinen L2CS-Checkpoint. Anders als bei den meisten anderen Familien dieser Website befindet sich für diese Familie nichts in der LibreYOLO-Organisation auf Hugging Face. Der einzige Checkpoint, den die Bibliothek automatisch abrufen kann, stammt direkt aus der Google-Drive- Distribution des Autors. Vor Beginn der Übertragung wird der Lizenzhinweis zu Gaze360 angezeigt. Es handelt sich nicht um die in der obigen Zusammenfassung angedeutete Kopie, die erneut auf huggingface.co/LibreYOLO veröffentlicht wurde.

Mit LibreYOLO v1.5.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.