Home

Awesome

Noise-Tolerant Paradigm for Training Face Recognition CNNs

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

Presented at CVPR 2019

This is the code for the paper

Contents

  1. Requirements
  2. Dataset
  3. How-to-use
  4. Diagram
  5. Performance
  6. Contact
  7. Citation
  8. License

Requirements

  1. Caffe

Dataset

Training dataset:

  1. CASIA-Webface clean
  2. IMDB-Face
  3. MS-Celeb-1M

Testing dataset:

  1. LFW
  2. AgeDB
  3. CFP
  4. MegaFace

Both the training data and testing data are aligned by the method described in util.py

How-to-use

Firstly, you can train the network in noisy dataset as following steps:

step 1: add noise_tolerant_fr and relevant layers(at ./layers directory) to caffe project and recompile it.

step 2: download training dataset to ./data directory, and corrupt training dataset in different noise ratio which you can refer to ./code/gen_noise.py, then generate the lmdb file through caffe tool.

step 3: configure prototxt file in ./deploy directory.

step 4: run caffe command to train the network by using noisy dataset.

After training, you can evaluate the model on testing dataset by using evaluate.py.

Diagram

The figure shows three strategies in different purposes. At the beginning of the training process, we focus on all samples; then we focus on easy/clean samples; at last we focus on semi-hard clean samples.

The strategy

The figure explains the fusion function of three strategies. The left part demonstrates three functions: α(δ<sub>r</sub>), β(δ<sub>r</sub>), and γ(δ<sub>r). The right part shows two fusion examples. According to the ω, we can see that the easy/clean samples are emphasized in the first example(δ<sub>r</sub> < 0.5), and the semi-hard clean samples are emphasized in the second example(δ<sub>r</sub> > 0.5). For more detail, please click here to play demo video. The detail

The figure shows the 2D Hist<sub>all</sub> of CNN<sub>common</sub> (up) and CNN<sub>m2</sub> (down) under 40% noise rate. The 2D Hist

The figure shows the 3D Hist<sub>all</sub> of CNN<sub>common</sub> (left) and CNN<sub>m2</sub> (right) under 40% noise rate. The 3D Hist

Performance

The table shows comparison of accuracies(%) on LFW, ResNet-20 models are used. CNN<sub>clean</sub> is trained with clean data WebFace-Clean-Sub by using the traditional method. CNN<sub>common</sub> is trained with noisy dataset WebFace-All by using the traditional method. CNN<sub>ct</sub> is trained with noisy dataset WebFace-All by using our implemented Co-teaching(with pre-given noise rates). CNN<sub>m1</sub> and CNN<sub>m2</sub> are all trained with noisy dataset WebFace-All but through the proposed approach, and they respectively use the 1st and 2nd method to compute loss. Note: The WebFace-Clean-Sub is the clean part of the WebFace-All, the WebFace-All contains noise data with different rate as describe below.

LossActual Noise RateCNN<sub>clean</sub>CNN<sub>common</sub>CNN<sub>ct</sub>CNN<sub>m1</sub>CNN<sub>m2</sub>Estimated Noise Rate
L2softmax0%94.6594.65-95.0096.282%
L2softmax20%94.1889.0592.1292.9595.2618%
L2softmax40%92.7185.6387.1089.9193.9042%
L2softmax60%91.1576.6183.6686.1187.6156%
Arcface0%97.9597.95-97.1198.112%
Arcface20%97.8096.4896.5396.8397.7618%
Arcface40%96.5392.3394.2595.8897.2336%
Arcface60%94.5684.0590.3693.6695.1554%

Contact

Wei Hu

Yangyu Huang

Citation

If you find this work useful in your research, please cite

@inproceedings{Hu2019NoiseFace,
  title = {Noise-Tolerant Paradigm for Training Face Recognition CNNs},
  author = {Hu, Wei and Huang, Yangyu and Zhang, Fan and Li, Ruirui},
  booktitle = {IEEE Conference on Computer Vision and Pattern Recognition},
  month = {June},
  year = {2019},
  address = {Long Beach, CA}
}

License

The project is released under the MIT License