Giter Site home page Giter Site logo

duxingren14 / insightface-v2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from foamliu/insightface-v2

0.0 0.0 0.0 8.12 MB

PyTorch implementation of Additive Angular Margin Loss for Deep Face Recognition.

License: Apache License 2.0

Python 98.94% MATLAB 1.06%

insightface-v2's Introduction

InsightFace

apm

PyTorch implementation of Additive Angular Margin Loss for Deep Face Recognition. paper.

@article{deng2018arcface,
title={ArcFace: Additive Angular Margin Loss for Deep Face Recognition},
author={Deng, Jiankang and Guo, Jia and Niannan, Xue and Zafeiriou, Stefanos},
journal={arXiv:1801.07698},
year={2018}
}

Dataset

Function Dataset
Train MS-Celeb-1M
Test-1 LFW
Test-2 MegaFace

Introduction

MS-Celeb-1M dataset for training, 3,804,846 faces over 85,164 identities.

Dependencies

  • Python 3.6.8
  • PyTorch 1.3.0

Usage

Data wrangling

Extract images, scan them, to get bounding boxes and landmarks:

$ python extract.py
$ python pre_process.py

Image alignment:

  1. Face detection(MTCNN).
  2. Face alignment(similar transformation).
  3. Central face selection.
  4. Resize -> 112x112.
Original Aligned & Resized Original Aligned & Resized
image image image image
image image image image
image image image image
image image image image
image image image image

Train

$ python train.py

To visualize the training process:

$ tensorboard --logdir=runs

Performance evaluation

LFW

Introduction

Use Labeled Faces in the Wild (LFW) dataset for performance evaluation:

  • 13233 faces
  • 5749 identities
  • 1680 identities with >=2 photo

Download

Download LFW database put it under data folder:

$ wget http://vis-www.cs.umass.edu/lfw/lfw-funneled.tgz
$ wget http://vis-www.cs.umass.edu/lfw/pairs.txt
$ wget http://vis-www.cs.umass.edu/lfw/people.txt

Start evaluation

$ python lfw_eval.py

Results

Backbones LFW(%) Inference speed(*)
SE-LResNet101E-IR 99.83% 46.63 ms
SE-LResNet50E-IR 99.75% 27.30 ms
SE-LResNet18E-IR 99.65% 17.53 ms

Note(*): with 1 Nvidia Tesla P100.

theta j Distribution

image

Error analysis

See also LFW Face Database Errata

False Positive

2 false positives:

1 2 1 2
image image image image
image image image image
False Negative

8 false negative:

1 2 1 2
image image image image
image image image image
image image image image
image image image image
image image image image
image image image image
image image image image
image image image image

MegaFace

Introduction

MegaFace dataset includes 1,027,060 faces, 690,572 identities. Link

Challenge 1 is taken to test our model with 1 million distractors.

image

Download

  1. Download MegaFace and FaceScrub Images
  2. Download Linux DevKit from MagaFace WebSite then extract to megaface folder:
$ tar -vxf linux-devkit.tar.gz

Generate features

  1. Crop MegaFace.
  2. Generate features for FaceScrub and MegaFace.
  3. Remove noises. Note: we used the noises list proposed by InsightFace, at https://github.com/deepinsight/insightface.
$ python3 megaface.py --action crop_megaface

$ find megaface/facescrub_images -name "*.bin" -type f -delete
$ find megaface/MegaFace_aligned/FlickrFinal2 -name "*.bin" -type f -delete

$ python3 megaface.py --action gen_features

Evaluation

Start MegaFace evaluation through devkit:

$ cd megaface/devkit/experiments
$ python run_experiment.py -p /dev/code/mnt/InsightFace-v2/megaface/devkit/templatelists/facescrub_uncropped_features_list.json /dev/code/mnt/InsightFace-v2/megaface/MegaFace_aligned/FlickrFinal2 /dev/code/mnt/InsightFace-v2/megaface/facescrub_images _0.bin results -s 1000000

Results

Curves

Draw curves with matlab script @ megaface/draw_curve.m.

CMC ROC
image image
image image
Textual results
Done matching! Score matrix size: 3379 972313
Saving to results/otherFiles/facescrub_megaface_0_1000000_1.bin
Computing test results with 1000000 images for set 1
Loaded 3379 probes spanning 80 classes
Loading from results/otherFiles/facescrub_facescrub_0.bin
Probe score matrix size: 3379 3379
distractor score matrix size: 3379 972313
Done loading. Time to compute some stats!
Finding top distractors!
Done sorting distractor scores
Making gallery!
Done Making Gallery!
Allocating ranks (972393)

Rank 1: 0.964733

insightface-v2's People

Contributors

foamliu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.