Skip to main content

Face Recognition Metric

Project description

Identity Similarity

This repository can helps researchers that want to use face recognition in their researches. You can easly implement powerfull face recognition in your project. I motivated for this repository from LPIPS. The models are borrowed from Insigtface.

Warning : Please, be careful when chosing your criterion. Lower is more similar in MSE while higher is more similar in CosineSimilarity.

Usage

1. Training with preprocessed dataset.

In this case, we assume that you have aligned images using a keypoint template and you want to calculate identity similarity between two aligned images or a image and a saved identity vector.

import torch
import numpy as np
from idsim import IdentitySimilarity

idsim = IdentitySimilarity()
template = np.array([[35.066223, 34.23266],
                  [84.1586, 33.96113],
                  [59.768444, 62.152763],
                  [39.60066, 90.89288],
                  [80.255, 90.66802]], dtype=np.float32)
idsim.set_ref_point(template)

# dummy variables
v1 = torch.rand(1, 512)
im1 = torch.rand(5, 3, 128, 128)

# useful functions
sim_v2v = idsim.forward_v2v(v1, v1)
sim_im2im = idsim.forward_img2img(im1, im1)
sim_v2im = idsim.forward_v2img(v1, im1)
print("\nsim_v2v :", sim_v2v, "\nsim_im2im :", sim_im2im, "\nsim_v2im :", sim_v2im)

2. Face recognition

In this case, Idsim can caculate identity similarity of your images.

import cv2
from idsim import IdentitySimilarity

idsim = IdentitySimilarity(criterion="Cosine")
img1 = cv2.imread("a.jpg")
img2 = cv2.imread("b.jpg")
v1 = idsim.extract_identity(img1) 
v2 = idsim.extract_identity(img2)
sim = idsim.forward_v2v(v1,v2)
print("Similarity :", sim)

Note: You can check the proving_differentiability.ipynb for an example training.

Todo

  • [] Release pypi package

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Run make style && make quality in the root repo directory, to ensure code quality.
  4. Commit your Changes (git commit -m 'Add some AmazingFeature')
  5. Push to the Branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

idsim-0.0.1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

idsim-0.0.1-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file idsim-0.0.1.tar.gz.

File metadata

  • Download URL: idsim-0.0.1.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.12

File hashes

Hashes for idsim-0.0.1.tar.gz
Algorithm Hash digest
SHA256 da932ef0b698ebfb0048c944d2a6f3e910476c35d8798337cc3a69c389bd44a3
MD5 472476b6c2026b05bb73bd5198892612
BLAKE2b-256 4b426c15ea8d4f5a2295821c245cac5f3af7e347dae97ab24f548f0ebe29ce41

See more details on using hashes here.

File details

Details for the file idsim-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: idsim-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.12

File hashes

Hashes for idsim-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d53b2f7907983d4b1633cc23cb2275e6ca283fc7c0b3b6ff6cf83ee25401a04
MD5 9599119bca02738547ae44fb3a9c56cc
BLAKE2b-256 9c01b2232f5ac35d678ab0d24c797d1f46d93fcb3de728af67851c7aa93e0f58

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page