This repository can help researchers who want to use face recognition in their research. You can easily implement powerful face recognition models in your project. I motivated by LPIPS for this repository. 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.
- MSE
- L1
- Cosine
- ms1mv3_arcface_r50
- glint360k_cosface_r100
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)
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.
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