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.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Run
make style && make quality
in the root repo directory, to ensure code quality. - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | da932ef0b698ebfb0048c944d2a6f3e910476c35d8798337cc3a69c389bd44a3 |
|
MD5 | 472476b6c2026b05bb73bd5198892612 |
|
BLAKE2b-256 | 4b426c15ea8d4f5a2295821c245cac5f3af7e347dae97ab24f548f0ebe29ce41 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d53b2f7907983d4b1633cc23cb2275e6ca283fc7c0b3b6ff6cf83ee25401a04 |
|
MD5 | 9599119bca02738547ae44fb3a9c56cc |
|
BLAKE2b-256 | 9c01b2232f5ac35d678ab0d24c797d1f46d93fcb3de728af67851c7aa93e0f58 |