LibreFaceRec
LibreFaceRec là tác vụ embedding khuôn mặt của LibreYOLO: detector khuôn mặt định vị và căn chỉnh khuôn mặt, còn recognition head tạo embedding danh tính được chuẩn hóa L2 để xác minh hoặc tìm kiếm.
- Tác vụ
- embed
- Kích thước
- Cài đặt
pip install libreyolo- Bậc hỗ trợ
- Chỉ suy luận, từ v. Chỉ dự đoán, kiểm định và xuất. Không áp dụng các tính năng huấn luyện.
- Giấy phép
- Mã nguồn MIT, trọng số Apache-2.0. Sử dụng thương mại
Cài đặt
Recognition head của LibreFaceRec chạy qua onnxruntime, package này không thuộc bản cài đặt cơ sở.
pip install "libreyolo[onnx]"Dự đoán
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Tên librefacerec-* định tuyến đến họ này bất kể hậu tố tệp và tải# từ tổ chức LibreYOLO trên Hugging Face trong lần sử dụng đầu tiên,# cùng với detector khuôn mặt mặc định.model = LibreYOLO("librefacerec-l.onnx")result = model(SAMPLE_IMAGE) print(result.embeddings.data.shape) # (N, D), được chuẩn hóa L2libreyolo predict model=librefacerec-l.onnx source=face.jpgfrom libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") # So sánh khuôn mặt nổi bật nhất trong mỗi ảnh bằng độ tương đồng# cosine của các embedding được chuẩn hóa 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 # các khuôn mặt trong ảnh nàygallery = model.embed(["a.jpg", "b.jpg", "c.jpg"]) # (N_total, D) # Độ tương đồng cosine (query_faces, N_total).scores = query.similarity(gallery)Phát hiện và nhận dạng là hai graph ONNX riêng biệt phía sau một lệnh gọi: detector khuôn mặt định vị rồi căn chỉnh từng khuôn mặt thành crop chuẩn, còn recognition head trả về một embedding được chuẩn hóa L2 cho mỗi khuôn mặt. Khi giữ nguyên thiết lập, predict() tự động tải và ghép detector mặc định đi kèm. face_detector nhận callable, mô hình phát hiện LibreYOLO hoặc thực thể FaceDetector; face_boxes bỏ qua hoàn toàn phát hiện bằng các box bạn đã có. result.embeddings chứa một hàng cho mỗi khuôn mặt đã phát hiện, căn với result.boxes; phương thức .similarity() tính độ tương đồng cosine với embedding khác hoặc toàn bộ gallery trong một lệnh gọi. Để so sánh trực tiếp hai ảnh thay vì hai embedding đã tính, model.verify(image_a, image_b) chạy phát hiện và embedding trên cả hai rồi so sánh khuôn mặt có độ tin cậy cao nhất. Có thể thay thế bằng mọi mô hình nhận dạng ONNX theo quy ước ArcFace khác (crop đã căn chỉnh ở đầu vào, embedding (N, D) ở đầu ra) bằng cách truyền đường dẫn tệp thay cho tên librefacerec-*. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.
Xuất
| Tác vụ | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| embed | embed to ONNX: không được hỗ trợ | embed to TorchScript: không được hỗ trợ | embed to ExecuTorch: không được hỗ trợ | embed to TensorRT: không được hỗ trợ | embed to OpenVINO: không được hỗ trợ | embed to Paddle: không được hỗ trợ | embed to MNN: không được hỗ trợ | embed to RKNN: không được hỗ trợ | embed to ncnn: không được hỗ trợ | embed to TFLite: không được hỗ trợ | embed to CoreML: không được hỗ trợ | embed to Core AI: không được hỗ trợ |
LibreFaceRec đã bọc graph ONNX được xuất sẵn; việc xuất lại sang định dạng khác chưa được triển khai.
Giấy phép
Hãy kiểm tra giấy phép trong repo Hugging Face của trọng số cụ thể mà bạn tải xuống. Mỗi checkpoint trong tổ chức LibreYOLO đều có giấy phép riêng và giấy phép có thể khác nhau trong cùng một họ. Repo đó là nguồn có thẩm quyền; phần tóm tắt dưới đây mô tả các điều khoản áp dụng khi trang này được kiểm chứng lần gần nhất.
Đây là phần mô tả các giấy phép liên quan, không phải tư vấn pháp lý. Nếu câu trả lời có ý nghĩa về mặt thương mại, hãy tự đọc các giấy phép và tham khảo cố vấn của riêng bạn.
- Công trình gốc
- AuraFace-v1, fal.ai
- Giấy phép thượng nguồn
- Apache-2.0
- Nguồn thượng nguồn
- huggingface.co/fal/AuraFace-v1
- Mã nguồn LibreYOLO
- MIT
- Trọng số
- Apache-2.0, do tác giả phân phối. LibreYOLO không lưu trữ hoặc sao chép chúng.
- Diễn giải
- 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.
Detector khuôn mặt mặc định đi kèm là artifact thứ hai theo giấy phép thứ hai: YuNet của OpenCV Zoo, MIT, bản quyền Shiqi Yu. Không có mã kiến trúc nào được port từ cả hai dự án; cả hai graph được sử dụng như hộp đen qua onnxruntime, vì vậy wrapper riêng của LibreYOLO không chứa mã bên thứ ba và hoàn toàn dùng MIT.
Trích dẫn
@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}
}Được sao chép từ khối trích dẫn của tác giả tại github.com/deepinsight/insightface/tree/master/recognition/arcface_torch#citations.