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.
pip install libreyoloDer 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:
pip install "libreyolo[gaze]"Ohne dieses Extra gibt LibreYOLO Anweisungen für den manuellen Download aus, anstatt ohne Meldung fehlzuschlagen.
Vorhersage
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)libreyolo predict model=LibreL2CSr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom 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
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gaze | gaze to ONNX: unterstützt | gaze to TorchScript: unterstützt | gaze to ExecuTorch: unterstützt | gaze to TensorRT: unterstützt | gaze to OpenVINO: unterstützt | gaze to Paddle: nicht unterstützt | gaze to MNN: nicht unterstützt | gaze to RKNN: nicht unterstützt | gaze to ncnn: nicht unterstützt | gaze to TFLite: nicht unterstützt | gaze to CoreML: nicht unterstützt | gaze to Core AI: nicht unterstützt |
from libreyolo import LibreYOLO model = LibreYOLO("LibreL2CSr50.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreL2CSr50.pt format=onnximport 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
- Upstream-Quelle
- github.com/Ahmednull/L2CS-Net
- 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.