Ver como Markdown

LibreFaceRec

LibreFaceRec es la tarea de embeddings faciales de LibreYOLO: un detector de caras localiza y alinea las caras, y una cabeza de reconocimiento produce un embedding de identidad normalizado con L2 para verificación o búsqueda.

Tareas
embed
Tamaños
Instalación
pip install libreyolo
Nivel de compatibilidad
Solo inferencia, desde v. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
Proyecto original
AuraFace-v1 de fal.ai, Apache-2.0. Artículo, fuente
Licencias
Código MIT, pesos Apache-2.0. Uso comercial

Instalación

La cabeza de reconocimiento de LibreFaceRec funciona a través de onnxruntime, que no forma parte de la instalación base.

bash
pip install "libreyolo[onnx]"

Predicción

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Los nombres librefacerec-* dirigen a esta familia sin importar el# sufijo del archivo y se descargan de la organización de LibreYOLO en# Hugging Face en el primer uso, junto con el detector de caras por defecto.model = LibreYOLO("librefacerec-l.onnx")result = model(SAMPLE_IMAGE) print(result.embeddings.data.shape)   # (N, D), normalizado con L2
CLI
libreyolo predict model=librefacerec-l.onnx source=face.jpg
Verificar
from libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") # Compara la cara más prominente de cada imagen mediante la similitud# coseno de sus embeddings normalizados con L2.result = model.verify("person_a.jpg", "person_b.jpg", threshold=0.4)print(result["similarity"], result["same_person"])
Búsqueda en galería
from libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") query = model("query.jpg").embeddings          # las caras de esta imagengallery = model.embed(["a.jpg", "b.jpg", "c.jpg"])   # (N_total, D) # Similitudes coseno (query_faces, N_total).scores = query.similarity(gallery)

La detección y el reconocimiento son dos grafos ONNX distintos detrás de una sola llamada: un detector de caras localiza y alinea cada cara a un recorte canónico, y la cabeza de reconocimiento devuelve un embedding normalizado con L2 por cara. Si no se toca nada, predict() descarga y empareja automáticamente el detector por defecto incluido. face_detector acepta un callable, un modelo de detección de LibreYOLO o una instancia de FaceDetector; face_boxes se salta la detección por completo con bounding boxes que ya tengas. result.embeddings contiene una fila por cara detectada, alineada con result.boxes; su método .similarity() calcula la similitud coseno frente a otro embedding o a toda una galería en una sola llamada. Para comparar dos imágenes directamente en lugar de dos embeddings ya calculados, model.verify(image_a, image_b) ejecuta la detección y el embedding en ambas y compara su cara con más confianza. Se puede sustituir por cualquier otro modelo de reconocimiento ONNX que siga la convención de ArcFace (entra un recorte alineado, salen embeddings (N, D)) pasando la ruta de su archivo en lugar de un nombre librefacerec-*. Consulta predicción para fuentes, streaming y manejo de resultados.

Exportación

TareaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
embedembed to ONNX: no compatibleembed to TorchScript: no compatibleembed to ExecuTorch: no compatibleembed to TensorRT: no compatibleembed to OpenVINO: no compatibleembed to Paddle: no compatibleembed to MNN: no compatibleembed to RKNN: no compatibleembed to ncnn: no compatibleembed to TFLite: no compatibleembed to CoreML: no compatibleembed to Core AI: no compatible

LibreFaceRec ya envuelve un grafo ONNX preexportado; volver a exportarlo a otro formato no está implementado.

Licencia

Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.

Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.

Trabajo original
AuraFace-v1, fal.ai
Licencia del proyecto original
Apache-2.0
Fuente del proyecto original
huggingface.co/fal/AuraFace-v1
Código de LibreYOLO
MIT
Pesos
Apache-2.0, distribuidos por sus autores. LibreYOLO no los aloja ni los replica.
Interpretación
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.

El detector de caras por defecto incluido es un segundo artefacto bajo una segunda licencia: YuNet, de OpenCV Zoo, MIT, copyright Shiqi Yu. No se ha portado código de arquitectura de ninguno de los dos proyectos; ambos grafos se consumen de forma opaca a través de onnxruntime, así que el propio wrapper de LibreYOLO no contiene código de terceros y es MIT de principio a fin.

Cita

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

Copiado del bloque de cita de los autores en github.com/deepinsight/insightface/tree/master/recognition/arcface_torch#citations.

Verificado con LibreYOLO v1.5.0. Las tablas de compatibilidad, los checkpoints y las cifras de rendimiento de esta página se generan a partir de la biblioteca publicada y los pesos publicados; no se escriben a mano.