ctgushiwei / SeqFace

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SeqFace : Making full use of sequence information for face recognition

Paper link: https://arxiv.org/abs/1803.06524

Paper by Wei Hu, Yangyu Huang, Fan Zhang, Ruirui Li, Wei Li, Guodong Yuan

Recent Update

2018.03.21: 1.Release the code of LSRLoss and DSALoss layer; 2.Add example of Seqface.

2018.03.20: 1.Publish our paper; 2.Release test dataset and test code.

2018.03.15: 1.Create the repository; 2.Release our model.

Contents

  1. Requirements
  2. Dataset
  3. Model-and-Result
  4. How-to-test
  5. Example
  6. Demo
  7. Contact
  8. Citation
  9. License

Requirements

  1. Caffe (see: Caffe installation instructions)

  2. MTCNN (see: MTCNN - face detection & alignment)

Dataset

All faces in our dataset are detected by MTCNN and aligned by util.py. The structure of trainning dataset and testing dataset is shown below. Please note that the testing dataset have already be processed by detection and alignment, So you can reproduce our result directly by running our evaluating script.

Training Dataset

MS-Celeb-1M + Celeb-Seq

Testing Dataset

LFW @BaiduDrive, @GoogleDrive

YTF @BaiduDrive, @GoogleDrive

Testing Features

You can also use the precomputed feature instead of the testing dataset to evaluate our method.

LFW: @BaiduDrive, @GoogleDrive

YTF: @BaiduDrive, @GoogleDrive

Model-and-Result

We released our ResNet-27 model, which can be downloaded by the link below. The model was trained in caffe, please refer to our paper for the detailed training process.

Caffe: ResNet-27 @BaiduDrive, @GoogleDrive (non-commercial use only)

Performance:

Dataset Model Dataset LFW YTF
SeqFace 1 ResNet-27 MS-Celeb-1M + Celeb-Seq 99.80 98.00
SeqFace 1 ResNet-64 MS-Celeb-1M + Celeb-Seq 99.83 98.12

How-to-test

Refer to run.sh, which contains two parameters, the first one("mode") means the running mode you use("feature" or "model"), the other one("dataset") means the dataset you choose("LFW" or "YTF").

step 1: git clone https://github.com/ydwen/caffe-face.git

step 2: compile caffe

step 3: download model and testing dataset, then unzip them

step 4: run evaluate.py in LFW or YTF directory

You can try the command below to verify seqface of LFW dataset in feature mode.

./run.sh feature LFW

Example

image

The usage of LSR loss layer and DSA loss layer in train_val.prototxt:

layer {
    name: "lsro_loss"
    type: "LSROLoss"
    bottom: "fc6"
    bottom: "label000"
    top: "lsro_loss"
    loss_weight: @loss_weight
}

layer {
    name: "dsa_loss"
    type: "DSALoss"
    bottom: "fc5"
    bottom: "label000"
    top: "dsa_loss"
    param {
        lr_mult: 1
        decay_mult: 0
    }
    dsa_loss_param {
        faceid_num: @faceid_num
        seqid_num: @seqid_num
        center_filler {
            type: "xavier"
        }
        lambda: @lambda
        dropout_ratio: @dropout_ratio
        gamma: @gamma
        alpha: @alpha
        beta: @beta
        use_normalize: @use_normalize
        scale: @scale
    }
    loss_weight: @loss_weight
}

Demo

You can experience our algorithm on demo page

Contact

Wei Hu

Yangyu Huang

Citation

Waiting

License

SeqFace(not including the model) is released under the MIT License

About

License:MIT License


Languages

Language:Jupyter Notebook 51.9%Language:C++ 35.6%Language:Python 6.3%Language:Cuda 4.0%Language:CMake 1.1%Language:Shell 0.3%Language:MATLAB 0.3%Language:Makefile 0.3%Language:CSS 0.1%Language:HTML 0.1%