This assignment is due on Apr. 2, 2021 at 11:59pm UTC+8.

Please refer to the Training Code, Training Dataset for model training.
Test Dataset for submission.
Training label and test image list for training and submission.

Download the code and data from Tsinghua Cloud if you can't open the link above.

1. Introduction to Face Recognition

The image above shows the standard pipeline of face recognition.

There are three sub-modules in full pipeline of the face recognition: face detection, face alignment and face recognition

In this assignment, we only focus on the face recognition task as shown in the red box

2. Target of the Assignment

We will provide a standard sub-dataset and the testset. Moreover, we also provide the demo code for baseline training.

If you want to achieve high performance, you need to know the following knowledge.

  • Learn the standard skills for basic model training.
  • Learn the skills for adjusting the hyperparameters in training.
  • Learn to how to compute the Flops of a standard CNN architecture. We suggest Thop.
  • Learn basic data augmentation.
  • Learn the evaluation metric (we provide the evaluation code).
  • Learn the noise-roubust model training methods. We suggest you read [1][2][3].

[1]: ArcFace: Additive Angular Margin Loss for Deep Face Recognition.
[2]: Towards Flops-constrained Face Recognition.
[3]: Sub-center ArcFace: Boosting Face Recognition by Large-scale Noisy Web Faces.

Requirements of Assignment 1:

  • Flops of the submitted for processing single image should be less than 1G. (Madd < 500M).
  • External dataset is not allowed.
  • You can only submit two times each day.

Finaly Report Submission:

  • Introduce your data processing.
  • Introduce your network architecture and the corresponding Flops.
  • Introduce your training method.
  • Introduce your performance improvement.
  • Introduce your understanding about this whole training stage.

3. Description of the Training Dataset

We provide a standard sub-dataset for this assignment and the corresponding testset.
You need to train your model on the training dataset and submit the feature representation of the testset.

Note that the order of the features in the submitted file should be the same as the given image order.

Introduction to training dataset.

  • The number of images is 55K;
  • The number of identities is 1K;
  • The training data contains about 20% label noise;

Introduction to testset.

  • The number of images is 52,000;

Please refer to the Training Code, Training Dataset for model training.
Test Dataset for submission.
Training label and test image list for training and submission.

4. Evalution Metric

Submissions are evaluated by computing TPR (true positive rate)@FPR=1e-1 (false positive rate). The metric is described as follows:

TPR = TP(true positives) / (TP(true positives) + FN(false negatives))

FPR = FP(false positives) / (FP(false positives) + TN(true negatives))

We also provide the evaluation code and you can obtain the detailed information from it.

5. Start

Please refer to the README in demo code for start.

6. Advice

  • Data augmentation is important when the training samples is insufficient. You can try to adopt different types of data augmentation to improve your generalized ability of your model.
  • The choice of the training hyperparameters is important. You can try to adopt different types of learning rate decay such as Cosine Manner; And also, you can try to adjust the weight_decay and other optimizors.
  • The architecture is important for roubust representa learning. We provide the popular RegNet and you can try to modify it or deisgn more powerful architecture.
  • Loss function is important for face recognition, especially with noisy data. You can try to use some noise-roubust loss function, such as ArcNegFace in [2] or Sub-center ArcFace in [3].

7. Submit Your Project and Final Report

Your final grade depends on two aspects:

  • You need to submit the feature extracted by you model based on our provided test list. We will evaluate the performance of your model. [two times each day][The detailed submission method and test result feedback will be provided on March 22]
  • You need to submit your final code project and corresponding report. [we will check the Flops of your model] [This is due on Apr. 2, 2021 at 11:59pm UTC+8.]