Skip to main content

ArcFace face recognition

Implementation of the ArcFace face recognition algorithm. It includes a pre-trained model based on ResNet50.

The code is based on peteryuX's implementation. Instead of using full Tensorflow for the inference, the model has been converted to a Tensorflow lite model using tf.lite.TFLiteConverter which increased the speed of the inference by a factor of ~2.27.

Installation

You can install the package through pip:

pip install arcface

Quick start

The following example illustrates the ease of use of this package:

>>> from arcface import ArcFace
>>> face_rec = ArcFace.ArcFace()
>>> emb1 = face_rec.calc_emb("~/Downloads/test.jpg")
>>> print(emb1)
array([-1.70827676e-02, -2.69084200e-02, -5.85994311e-02,  3.33652040e-03,
        9.58345132e-04,  1.21807214e-02, -6.81217164e-02, -1.33364811e-03,
       -2.12905575e-02,  1.67165045e-02,  3.52908894e-02, -5.26051633e-02,
	   ...
       -2.11241804e-02,  2.22553015e-02, -5.71946353e-02, -2.33468022e-02],
      dtype=float32)
>>> emb2 = face_rec.calc_emb("~/Downloads/test2.jpg")
>>> face_rec.get_distance_embeddings(emb1, emb2)
0.78542

You can feed the calc_emb function either a single image or an array of images. Furthermore, you can supply the image as (absolute or relative) path, or an cv2-image. To make it more clear, hear are the four possibilities:

  1. (Absolute or relative) path to a single image: face_rec.calc_emb("test.jpg")
  2. Array of images: face_rec.calc_emb(["test1.jpg", "test2.png"])
  3. Single cv2-image: face_rec.calc_emb(cv2.imread("test.png"))
  4. Array of cv2-images: face_rec.calc_emb([cv2.imread("test1.jpg"), cv2.imread("test2.png")])

The face recognition tool returns (an array of) 512-d embedding(s) as a numpy array.

Notice! This package does neither perform face detection nor face alignment! It assumes that the images are already pre-processsed!

Benchmark

Model Backbone Framework LFW Accuracy Speed [ms/embedding] *
ArcFace paper R100 MXNet 99.82 -
ArcFace TF2 R50 Tensorflow 2 99.35 102
This repository R50 Tensorflow Lite 96.87 45

* executed on a CPU: Intel i7-10510U

License

Licensed under the EUPL, Version 1.2 or – as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence"). You may not use this work except in compliance with the Licence.

License: European Union Public License v1.2

Metadata

Release files for arcface 0.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arcface 0.0.8
File Size Uploaded
arcface-0.0.8.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arcface 0.0.8
File Interpreter ABI Platform
arcface-0.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 28.8 kB

Release files / arcface-0.0.8.tar.gz

Download URL arcface-0.0.8.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
36f85b89139b4f3d8693cd83795c250a4f8e3a9962444e640b49da6cae83e668
BLAKE2b-256 checksum
How to use checksums
8b1fe7448fa613c8c4a8c3bc9e9271530e7f92aac98d8c9d51ec412a8590e991
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release files / arcface-0.0.8-py3-none-any.whl

Download URL arcface-0.0.8-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c13208f6446ab72b1a1ba74e8a23bee4cd7aecb203fe8618b462fc7b16e146c4
BLAKE2b-256 checksum
How to use checksums
e2d21f1d7b2fde0c90616c5caa836058d3e5e4cfc52d4b95a7dcf5d179eeb6df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.0.8 This release

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page