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.
- 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.
pip install "libreyolo[onnx]"Prédire
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 L2libreyolo predict model=librefacerec-l.onnx source=face.jpgfrom 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"])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âche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| embed | embed to ONNX : non pris en charge | embed to TorchScript : non pris en charge | embed to ExecuTorch : non pris en charge | embed to TensorRT : non pris en charge | embed to OpenVINO : non pris en charge | embed to Paddle : non pris en charge | embed to MNN : non pris en charge | embed to RKNN : non pris en charge | embed to ncnn : non pris en charge | embed to TFLite : non pris en charge | embed to CoreML : non pris en charge | embed 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.