LibreFaceRec

LibreFaceRec est la tâche d'embedding de visages de LibreYOLO : un détecteur de visages localise et aligne les visages, et une tête de reconnaissance produit un embedding d'identité normalisé L2 pour la vérification ou la recherche par similarité.

Tâches
embed
Tailles
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
AuraFace-v1 par fal.ai, Apache-2.0. Article, source
Licences
Code MIT, poids Apache-2.0. Usage commercial

Installation

La tête de reconnaissance de LibreFaceRec passe par onnxruntime, qui ne fait pas partie de l'installation de base.

bash
pip install "libreyolo[onnx]"

Prédire

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Les noms librefacerec-* pointent vers cette famille quel que soit# le suffixe du fichier et se téléchargent au premier usage depuis# l'org Hugging Face de LibreYOLO, avec le détecteur par défaut.model = LibreYOLO("librefacerec-l.onnx")result = model(SAMPLE_IMAGE) print(result.embeddings.data.shape)   # (N, D), normalisés L2
CLI
libreyolo predict model=librefacerec-l.onnx source=face.jpg
Vérifier
from libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") # Compare le visage le plus marquant de chaque image par similarité# cosinus de leurs embeddings normalisés L2.result = model.verify("person_a.jpg", "person_b.jpg", threshold=0.4)print(result["similarity"], result["same_person"])
Recherche dans une galerie
from libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") query = model("query.jpg").embeddings          # les visages de l'imagegallery = model.embed(["a.jpg", "b.jpg", "c.jpg"])   # (N_total, D) # Similarités cosinus (query_faces, N_total).scores = query.similarity(gallery)

La détection et la reconnaissance sont deux graphes ONNX distincts derrière un seul appel : un détecteur de visages localise et aligne chaque visage sur un recadrage canonique, et la tête de reconnaissance renvoie un embedding normalisé L2 par visage. Si vous n'y touchez pas, predict() télécharge et associe automatiquement le détecteur par défaut fourni. face_detector accepte un callable, un modèle de détection LibreYOLO ou une instance FaceDetector ; face_boxes court-circuite entièrement la détection avec des boîtes dont vous disposez déjà. result.embeddings contient une ligne par visage détecté, alignée sur result.boxes ; sa méthode .similarity() calcule la similarité cosinus face à un autre embedding ou à une galerie entière en un seul appel. Pour comparer directement deux images plutôt que deux embeddings déjà calculés, model.verify(image_a, image_b) lance la détection et l'embedding sur les deux et compare leur visage au score de confiance le plus élevé. Tout autre modèle de reconnaissance ONNX suivant la convention ArcFace (recadrage aligné en entrée, embeddings (N, D) en sortie) peut être substitué en passant son chemin de fichier au lieu d'un nom librefacerec-*. Voir la prédiction pour les sources, le streaming et le traitement des résultats.

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
embedembed to ONNX : non pris en chargeembed to TorchScript : non pris en chargeembed to ExecuTorch : non pris en chargeembed to TensorRT : non pris en chargeembed to OpenVINO : non pris en chargeembed to Paddle : non pris en chargeembed to MNN : non pris en chargeembed to RKNN : non pris en chargeembed to ncnn : non pris en chargeembed to TFLite : non pris en chargeembed to CoreML : non pris en chargeembed to Core AI : non pris en charge

LibreFaceRec encapsule déjà un graphe ONNX pré-exporté ; le réexporter vers un autre format n'est pas implémenté.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
AuraFace-v1, fal.ai
Licence du projet d'origine
Apache-2.0
Source du projet d'origine
huggingface.co/fal/AuraFace-v1
Code de LibreYOLO
MIT
Poids
Apache-2.0, distribués par leurs auteurs. LibreYOLO ne les héberge pas et n'en fournit pas de miroir.
Interprétation
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.

Le détecteur de visages par défaut fourni est un second artefact sous une seconde licence : YuNet d'OpenCV Zoo, MIT, copyright Shiqi Yu. Aucun code d'architecture n'est porté depuis l'un ou l'autre projet ; les deux graphes sont consommés de façon opaque via onnxruntime, si bien que le wrapper propre à LibreYOLO ne contient aucun code tiers et est MIT de bout en bout.

Citation

@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}
}

Copié depuis le bloc de citation des auteurs sur github.com/deepinsight/insightface/tree/master/recognition/arcface_torch#citations.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.