LibreFaceRec
LibreFaceRec은 LibreYOLO의 얼굴 임베딩 작업입니다. 얼굴 탐지기가 얼굴을 찾고 정렬하며, 인식 헤드는 검증 또는 검색을 위해 L2 정규화된 신원 임베딩을 생성합니다.
- 작업
- embed
- 크기
- 설치
pip install libreyolo- 지원 티어
- 추론 전용, v부터 지원. 예측, 검증, 내보내기만 지원합니다. 학습 기능은 적용되지 않습니다.
- 라이선스
- 코드 MIT, 가중치 Apache-2.0. 상업적 사용
설치
LibreFaceRec의 인식 헤드는 기본 설치에 포함되지 않는 onnxruntime을 사용해
실행합니다.
pip install "libreyolo[onnx]"예측
from libreyolo import LibreYOLO, SAMPLE_IMAGE # librefacerec-* 이름은 파일 접미사와 관계없이 이 계열로 라우팅하며# 처음 사용할 때 기본 얼굴 탐지기와 함께 LibreYOLO Hugging Face# 조직에서 내려받습니다.model = LibreYOLO("librefacerec-l.onnx")result = model(SAMPLE_IMAGE) print(result.embeddings.data.shape) # (N, D), L2 정규화됨libreyolo predict model=librefacerec-l.onnx source=face.jpgfrom libreyolo import LibreYOLO model = LibreYOLO("librefacerec-l.onnx") # 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 # 이 이미지의 얼굴gallery = model.embed(["a.jpg", "b.jpg", "c.jpg"]) # (N_total, D) # (query_faces, N_total) 코사인 유사도입니다.scores = query.similarity(gallery)한 번의 호출 뒤에서 탐지와 인식이라는 두 개의 별도 ONNX 그래프가 작동합니다.
얼굴 탐지기가 각 얼굴을 찾아 표준 크롭으로 정렬하고, 인식 헤드는 얼굴마다 L2
정규화된 임베딩을 반환합니다. 그대로 사용하면 predict()가 번들된 기본 탐지기를
자동으로 내려받아 연결합니다. face_detector에는 호출 가능 객체, LibreYOLO 탐지
모델 또는 FaceDetector 인스턴스를 사용할 수 있으며, face_boxes는 이미 보유한
바운딩 박스로 탐지를 완전히 건너뜁니다. result.embeddings에는 탐지된 얼굴마다
result.boxes와 정렬된 행 하나가 들어 있습니다. .similarity() 메서드는 다른
임베딩 또는 전체 갤러리와의 코사인 유사도를 한 번의 호출로 계산합니다. 이미 계산된
두 임베딩 대신 두 이미지를 직접 비교하려면 model.verify(image_a, image_b)가 두
이미지에서 탐지와 임베딩을 실행하고 가장 신뢰도가 높은 얼굴을 비교합니다. 다른
ArcFace 규약 ONNX 인식 모델도 사용할 수 있습니다. 정렬된 크롭을 입력받고 (N, D)
임베딩을 출력하는 모델의 파일 경로를 librefacerec-* 이름 대신 전달합니다. 소스,
스트리밍, 결과 처리는 예측을 참조합니다.
내보내기
| 작업 | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| embed | embed to ONNX: 지원하지 않음 | embed to TorchScript: 지원하지 않음 | embed to ExecuTorch: 지원하지 않음 | embed to TensorRT: 지원하지 않음 | embed to OpenVINO: 지원하지 않음 | embed to Paddle: 지원하지 않음 | embed to MNN: 지원하지 않음 | embed to RKNN: 지원하지 않음 | embed to ncnn: 지원하지 않음 | embed to TFLite: 지원하지 않음 | embed to CoreML: 지원하지 않음 | embed to Core AI: 지원하지 않음 |
LibreFaceRec은 이미 내보낸 ONNX 그래프를 래핑하므로 다른 형식으로 다시 내보내기는 구현되지 않았습니다.
라이선스
내려받는 특정 가중치의 Hugging Face 저장소에서 라이선스를 확인하십시오. LibreYOLO 조직의 모든 체크포인트에는 라이선스가 있으며 한 계열 안에서도 항상 같지는 않습니다. 해당 저장소가 신뢰할 수 있는 기준입니다. 아래 요약은 이 페이지를 마지막으로 검증했을 때 적용된 내용을 설명합니다.
관련 라이선스에 관한 설명이며 법률 자문이 아닙니다. 상업적으로 중요한 사안이라면 라이선스를 직접 읽고 별도의 법률 자문을 받으십시오.
- 원작
- AuraFace-v1, fal.ai
- 업스트림 라이선스
- Apache-2.0
- LibreYOLO 코드
- MIT
- 가중치
- Apache-2.0, 저자가 배포합니다. LibreYOLO는 이를 호스팅하거나 미러링하지 않습니다.
- 해석
- 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.
번들된 기본 얼굴 탐지기는 별도의 라이선스가 적용되는 두 번째 아티팩트입니다.
OpenCV Zoo의 YuNet이며 MIT, copyright Shiqi Yu입니다. 어느 프로젝트에서도
아키텍처 코드를 포팅하지 않았습니다. 두 그래프 모두 onnxruntime을 통해 불투명하게
사용하므로 LibreYOLO 자체 래퍼에는 타사 코드가 없으며 전체에 MIT가 적용됩니다.
인용
@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}
}github.com/deepinsight/insightface/tree/master/recognition/arcface_torch#citations에 있는 저자의 인용 블록에서 복사했습니다.