LibreFaceRec
LibreFaceRec ist die Gesichts-Embedding-Aufgabe von LibreYOLO: Ein Gesichtsdetektor lokalisiert und richtet Gesichter aus. Ein Erkennungs-Head erzeugt für Verifizierung oder Suche ein L2-normalisiertes Identitäts-Embedding.
- Aufgaben
- embed
- Größen
- Installation
pip install libreyolo- Supportstufe
- Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
- Upstream
- AuraFace-v1 von fal.ai, Apache-2.0. Publikation, Quelle
- Lizenzen
- Code MIT, Gewichte Apache-2.0. Kommerzielle Nutzung
Installation
Der Erkennungs-Head von LibreFaceRec läuft über onnxruntime, das nicht zur
Basisinstallation gehört.
pip install "libreyolo[onnx]"Vorhersage
from libreyolo import LibreYOLO, SAMPLE_IMAGE # librefacerec-*-Namen führen unabhängig von der Dateiendung zu dieser Familie# und laden sie bei der ersten Verwendung zusammen mit dem Standarddetektor# für Gesichter von der LibreYOLO-Organisation auf Hugging Face herunter.model = LibreYOLO("librefacerec-l.onnx")result = model(SAMPLE_IMAGE) print(result.embeddings.data.shape) # (N, D), L2-normalisiertlibreyolo predict model=librefacerec-l.onnx source=face.jpgfrom libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") # Vergleicht das auffälligste Gesicht beider Bilder anhand der Kosinusähnlichkeit# ihrer L2-normalisierten Embeddings.result = model.verify("person_a.jpg", "person_b.jpg", threshold=0.4)print(result["similarity"], result["same_person"])from libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") query = model("query.jpg").embeddings # Gesichter dieses Bildesgallery = model.embed(["a.jpg", "b.jpg", "c.jpg"]) # (N_total, D) # Kosinusähnlichkeiten der Form (query_faces, N_total).scores = query.similarity(gallery)Hinter einem Aufruf stehen zwei getrennte ONNX-Graphen für Erkennung und
Wiedererkennung. Ein Gesichtsdetektor lokalisiert jedes Gesicht und richtet es
auf einen kanonischen Zuschnitt aus. Der Erkennungs-Head gibt pro Gesicht ein
L2-normalisiertes Embedding zurück. Ohne weitere Angaben lädt und verbindet
predict() den mitgelieferten Standarddetektor automatisch. face_detector
akzeptiert ein Callable, ein LibreYOLO-Erkennungsmodell oder eine
FaceDetector-Instanz. Mit face_boxes umgehst du die Erkennung vollständig
und übergibst bereits vorhandene Boxen. result.embeddings enthält eine Zeile
pro erkanntem Gesicht und ist an result.boxes ausgerichtet. Die Methode
.similarity() berechnet in einem Aufruf die Kosinusähnlichkeit gegenüber
einem anderen Embedding oder einer ganzen Galerie. Zum direkten Vergleich
zweier Bilder statt zweier bereits berechneter Embeddings führt
model.verify(image_a, image_b) Erkennung und Embedding für beide aus und
vergleicht das Gesicht mit der höchsten Confidence. Du kannst jedes andere
ONNX-Erkennungsmodell nach der ArcFace-Konvention (ausgerichteter Zuschnitt
rein, Embeddings der Form (N, D) raus) einsetzen, indem du seinen Dateipfad
statt eines librefacerec-*-Namens übergibst. Unter
Vorhersage findest du Quellen, Streaming und die Verarbeitung
von Ergebnissen.
Export
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| embed | embed to ONNX: nicht unterstützt | embed to TorchScript: nicht unterstützt | embed to ExecuTorch: nicht unterstützt | embed to TensorRT: nicht unterstützt | embed to OpenVINO: nicht unterstützt | embed to Paddle: nicht unterstützt | embed to MNN: nicht unterstützt | embed to RKNN: nicht unterstützt | embed to ncnn: nicht unterstützt | embed to TFLite: nicht unterstützt | embed to CoreML: nicht unterstützt | embed to Core AI: nicht unterstützt |
LibreFaceRec bindet bereits einen vorab exportierten ONNX-Graphen ein. Ein erneuter Export in ein anderes Format ist nicht implementiert.
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
- AuraFace-v1, fal.ai
- Upstream-Lizenz
- Apache-2.0
- Upstream-Quelle
- huggingface.co/fal/AuraFace-v1
- LibreYOLO-Code
- MIT
- Gewichte
- Apache-2.0, von den Autoren verbreitet. LibreYOLO hostet oder spiegelt sie nicht.
- Einordnung
- Apache-2.0 covers the embedding weights (AuraFace-v1's glintr100 recognition head), so they may be used, modified and redistributed, including commercially, provided the license text and attribution notices travel with any copy. LibreYOLO's default face detector is a separate artifact under a separate license, MIT (OpenCV Zoo's YuNet, copyright Shiqi Yu). No code is ported from either project: both graphs are consumed opaquely through onnxruntime, so LibreYOLO's own wrapper code, which carries no third-party architecture, is MIT throughout. Any other ArcFace-convention ONNX recognition model can be substituted by passing its file path, and that file's own license then applies instead of AuraFace-v1's.
Der mitgelieferte Standarddetektor für Gesichter ist ein zweites Artefakt mit
einer zweiten Lizenz: YuNet aus OpenCV Zoo, MIT, Copyright Shiqi Yu. Aus keinem
der beiden Projekte wurde Architekturcode portiert. Beide Graphen werden über
onnxruntime als undurchsichtige Artefakte verwendet. Der eigene Wrapper von
LibreYOLO enthält daher keinen Drittanbietercode und steht vollständig unter MIT.
Zitieren
@inproceedings{deng2019arcface,
title={Arcface: Additive angular margin loss for deep face recognition},
author={Deng, Jiankang and Guo, Jia and Xue, Niannan and Zafeiriou, Stefanos},
booktitle={CVPR},
year={2019}
}Aus dem Zitierblock der Autoren unter github.com/deepinsight/insightface/tree/master/recognition/arcface_torch#citations kopiert.