LibreFaceRec
LibreFaceRec è il task di face embedding di LibreYOLO: un rilevatore di volti individua e allinea i volti, e una testa di riconoscimento produce un embedding di identità normalizzato L2 per la verifica o la ricerca.
- Task
- embed
- Dimensioni
- Installa
pip install libreyolo- Livello di supporto
- Solo inferenza, dalla v. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
- Licenze
- Codice MIT, pesi Apache-2.0. Uso commerciale
Installazione
La testa di riconoscimento di LibreFaceRec passa per onnxruntime, che non fa
parte dell'installazione base.
pip install "libreyolo[onnx]"Predizione
from libreyolo import LibreYOLO, SAMPLE_IMAGE # I nomi librefacerec-* puntano a questa famiglia a prescindere dal# suffisso del file e al primo uso vengono scaricati dall'org Hugging# Face di LibreYOLO, insieme al rilevatore di volti predefinito.model = LibreYOLO("librefacerec-l.onnx")result = model(SAMPLE_IMAGE) print(result.embeddings.data.shape) # (N, D), normalizzati L2libreyolo predict model=librefacerec-l.onnx source=face.jpgfrom libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") # Confronta il volto più prominente di ciascuna immagine tramite la# similarità coseno dei loro embedding normalizzati 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 # i volti di questa immaginegallery = model.embed(["a.jpg", "b.jpg", "c.jpg"]) # (N_total, D) # Similarità coseno (query_faces, N_total).scores = query.similarity(gallery)Il rilevamento e il riconoscimento sono due grafi ONNX separati dietro a una
sola chiamata: un rilevatore di volti individua e allinea ogni volto a un
ritaglio canonico, e la testa di riconoscimento restituisce un embedding
normalizzato L2 per ogni volto. Se non intervieni, predict() scarica e abbina
automaticamente il rilevatore predefinito incluso. face_detector accetta un
callable, un modello di rilevamento LibreYOLO o un'istanza di FaceDetector;
face_boxes salta del tutto il rilevamento usando i box che hai già.
result.embeddings contiene una riga per ogni volto rilevato, allineata con
result.boxes; il suo metodo .similarity() calcola la similarità coseno
rispetto a un altro embedding o a un'intera galleria in una sola chiamata. Per
confrontare direttamente due immagini invece di due embedding già calcolati,
model.verify(image_a, image_b) esegue rilevamento ed embedding su entrambe e
confronta il volto con la confidenza più alta. Qualsiasi altro modello di
riconoscimento ONNX che segua la convenzione ArcFace (in ingresso un ritaglio
allineato, in uscita embedding (N, D)) può essere sostituito passando il
percorso del suo file al posto di un nome librefacerec-*. Vedi
predizione per sorgenti, streaming e gestione dei risultati.
Esportazione
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| embed | embed to ONNX: non supportato | embed to TorchScript: non supportato | embed to ExecuTorch: non supportato | embed to TensorRT: non supportato | embed to OpenVINO: non supportato | embed to Paddle: non supportato | embed to MNN: non supportato | embed to RKNN: non supportato | embed to ncnn: non supportato | embed to TFLite: non supportato | embed to CoreML: non supportato | embed to Core AI: non supportato |
LibreFaceRec incapsula già un grafo ONNX pre-esportato; la riesportazione verso un altro formato non è implementata.
Licenze
Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.
Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.
- Lavoro originale
- AuraFace-v1, fal.ai
- Licenza upstream
- Apache-2.0
- Sorgente upstream
- huggingface.co/fal/AuraFace-v1
- Codice LibreYOLO
- MIT
- Pesi
- Apache-2.0, distribuiti dai rispettivi autori. LibreYOLO non li ospita né ne mantiene una copia.
- Interpretazione
- 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.
Il rilevatore di volti predefinito incluso è un secondo artefatto con una
seconda licenza: YuNet di OpenCV Zoo, MIT, copyright Shiqi Yu. Non è stato
portato codice di architettura da nessuno dei due progetti; entrambi i grafi
vengono consumati in modo opaco tramite onnxruntime, quindi il wrapper di
LibreYOLO non contiene codice di terze parti ed è MIT ovunque.
Citazione
@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}
}Copiato dal blocco di citazione degli autori disponibile su github.com/deepinsight/insightface/tree/master/recognition/arcface_torch#citations.