Face BenchmarkHow face recognition and deepfake detection are measured, from the papers.

ArcFace: the additive angular margin loss and why tables cite it

The Face Benchmark editorsPublishedFigures checked

ArcFace (Deng, Guo, Xue and Zafeiriou, CVPR 2019) is a loss function, not a network. It adds an angular margin of 0.5 to the target angle inside a softmax classifier so that faces of one identity cluster more tightly on a hypersphere. A ResNet100 trained with it on MS1MV2 reached an accuracy of 99.83 percent on LFW and a TAR of 0.956 on IJB-C at FAR 1e-4 (arXiv 1801.07698).

This page is part of the face recognition section. It explains the loss in plain steps, then what a results table means when it names ArcFace as a backbone, and finally which figures the paper reported on which test sets, because those figures are reused across the literature without their conditions.

01What does the additive angular margin loss do?

A recognition network ends in a classifier over the training identities, and the ArcFace paper changes only how that classifier is scored during training. The feature vector and each class weight are normalised to unit length, so the logit for a class is the cosine of the angle between the feature and that class's weight. The paper's Figure 2 then describes the margin: "we add an angular margin penalty m on the target (ground truth) angle θyi. After that, we calculate cos(θyi + m)", after which all logits are multiplied by a feature scale s and passed through softmax and cross entropy.

The effect is that the network must place a training face within the margin of its own class centre, measured as an angle, before the loss is satisfied. The authors set s to 64 and m to 0.5 radians, and describe the margin's appeal as "a clear geometric interpretation due to the exact correspondence to the geodesic distance on the hypersphere". At test time the classifier is discarded; only the 512 dimensional embedding network remains, and two faces are compared by the angle between their embeddings. The how face recognition works page places this step in the full pipeline.

02How does it differ from softmax, SphereFace and CosFace?

All three predecessors train the same embedding; they differ in where the margin is applied. Softmax has no margin. SphereFace multiplies the target angle by a factor. CosFace subtracts a margin from the target cosine. ArcFace adds the margin to the angle itself. The paper's Table 2 compares them with everything else held fixed: training on CASIA, a ResNet50 backbone, and verification accuracy in percent on three small test sets.

Loss (margin) LFW CFP-FP AgeDB-30
Softmax 99.08 94.39 92.33
Norm-Softmax 98.56 89.79 88.72
Triplet (0.35) 98.98 91.90 89.98
SphereFace (1.35) 99.11 94.38 91.70
CosFace (0.35) 99.51 95.44 94.56
ArcFace (0.5) 99.53 95.56 95.15

The gaps are small on LFW, where every loss is above 98.5, and widen on AgeDB-30, where the pairs span age gaps: 92.33 for softmax against 95.15 for ArcFace. The paper's angle histograms show the same pattern, with pose and age gaps widening the angles between positive pairs. The verification metrics page defines the accuracy, TAR and FAR figures used here.

03What does "ArcFace" mean in a results table?

Three things at once, and a row is unreadable unless all three are stated. First, the loss above. Second, a backbone: the paper trains ResNet50 and ResNet100, with faces aligned to 112 by 112 crops from five facial landmarks. Third, a training set: the paper's Table 1 lists CASIA (10,000 identities, 0.5 million images), VGGFace2 (9,100 identities, 3.3 million) and MS1MV2 (85,000 identities, 5.8 million), and the same model name produces different figures on each. The InsightFace datasets README, maintained by the paper's authors, lists the cleaned training set as "MS1M-ArcFace (85K ids/5.8M images)", so a table that says "trained on MS1M-ArcFace" means that set, not the loss (InsightFace README).

A row such as "ArcFace, R100, MS1MV2" therefore names the loss, the network and the data in that order. When a deepfake detection paper lists ArcFace as a backbone, it means an embedding network trained this way is being reused, with its weights frozen or fine-tuned, as the feature extractor for a different task. The face recognition backbones in detectors page lists which detectors do this.

04What accuracies did the paper report, and on which sets?

The headline figures all describe one model, ResNet100 trained on MS1MV2. On the pair-verification sets the paper's Figure 7 prints an accuracy of 99.83 percent on LFW, 98.37 on CFP-FP, 98.15 on AgeDB-30, 98.02 on YTF, 95.45 on CALFW and 92.08 on CPLFW. The sizes matter for reading them: LFW has 5,749 identities and 13,233 images; CFP-FP has 500 identities and 7,000 images of frontal and profile views; AgeDB-30 has 568 identities and 16,488 images spanning age gaps. The LFW dataset page explains why a figure above 99.8 on it no longer separates methods.

On the template-based sets the paper reports TAR at FAR 1e-4 in Table 7: 0.942 on IJB-B and 0.956 on IJB-C for the MS1MV2 ResNet100 model, and 0.898 and 0.921 for a ResNet50 trained on VGGFace2, which the authors trained to compare like for like with earlier methods on that set; their text puts the gain at "about 3 ∼ 5%". On MegaFace Challenge 1, Table 6 gives rank-1 identification against one million distractors of 81.03 percent and verification TAR at FAR 1e-6 of 96.98 percent; after the authors' manual relabelling of the gallery, marked "R", the same model scores 98.35 and 98.48.

Verification accuracy reported for one ArcFace model, ResNet100 trained on MS1MV2, on six named test setsHorizontal bars in percent: LFW 99.83; CFP-FP 98.37; AgeDB-30 98.15; YTF 98.02; CALFW 95.45; CPLFW 92.08. All six figures describe the same model, ResNet100 trained on MS1MV2 with the ArcFace loss, as printed in Figure 7 and Tables 4 and 5 of arXiv 1801.07698v3, read 9 Nov 2026.0.0025.0050.0075.00100.00LFW99.83CFP-FP98.37AgeDB-3098.15YTF98.02CALFW95.45CPLFW92.08verification accuracy, percent
Figure 1One model, six test sets. The spread from 99.83 on LFW to 92.08 on CPLFW is the effect of pose and age gaps in the test pairs, not of the loss. Source: ArcFace, arXiv 1801.07698v3, Figure 7 and Tables 4 and 5, read 9 Nov 2026.

05Why do the numbers differ between sources?

Four reasons recur. The paper itself prints LFW as 99.83 in Table 4 and Figure 7 and as 99.82 in Table 5; the difference is a rounding step on 6,000 pairs and both describe the same model. The MegaFace figures exist in two versions, raw and refined, and 81.03 against 98.35 for identification is the same network on relabelled data, so a table must say which. The arXiv paper has four versions; this page quotes v3, the CVPR 2019 text, while the 2022 journal version adds sub-center ArcFace and reports 99.83 on LFW for a model trained on a later set, MS1MV3. And a figure quoted without its training set, as "ArcFace 99.83", hides that CASIA training gives 99.53 for the same loss and backbone family. One number per fact needs the loss, the backbone, the training set and the test protocol together.

06Why do deepfake generators use ArcFace?

Because a swap has to carry an identity, and a recognition embedding is the field's measure of identity. SimSwap's identity injection module uses "a pretrained Arcface model" to extract the identity vector that it writes into the target face (arXiv 2106.06340), and FaceShifter uses "a pretrained state-of-the-art face recognition model" as its identity encoder (arXiv 1912.13457). The generator is trained until a recognition network agrees that the swapped face is the source person.

This is why the deepfake AI on both sides page treats ArcFace as a shared component of the making and finding sides. It also explains a property of modern swaps described on the swapped, edited and generated stills page: the identity in a good swap passes a verification check even when the blending boundary gives the swap away. For a reader asking whether a face is real, the evidence order for an AI generated image page puts a recognition match low on the list for the same reason.

SRCSources

  1. S1
    ArcFace: Additive Angular Margin Loss for Deep Face Recognition(external)Deng, Guo, Xue, Zafeiriou. CVPR 2019
    Checked
  2. S2
    Face recognition datasets README(external)InsightFace contributors. GitHub 2026
    Checked
  3. S3
    SimSwap: An Efficient Framework For High Fidelity Face Swapping(external)Chen, Chen, Ni, Ge. ACM Multimedia 2020
    Checked
  4. S4Checked

FAQQuestions

What is ArcFace?

A loss function for training face recognition networks, published at CVPR 2019. It normalises features and class weights, adds a margin of 0.5 radians to the angle between a face and its class centre, scales by 64 and applies softmax cross entropy. The paper's ResNet100 trained on MS1MV2 reached 99.83 percent on LFW.

Is ArcFace a model or a loss?

A loss. The networks trained with it in the paper are ResNet50 and ResNet100 producing 512 dimensional embeddings from 112 by 112 face crops. A results table that lists "ArcFace" as a backbone means one of those embedding networks, trained with the loss on a named set such as MS1MV2.

How accurate is ArcFace?

It depends on the training set and the test set. The MS1MV2 ResNet100 model scored 99.83 percent on LFW, 98.37 on CFP-FP, 98.15 on AgeDB-30 and 92.08 on CPLFW, and a TAR of 0.956 at FAR 1e-4 on IJB-C. The same loss trained on CASIA with ResNet50 scored 99.53 on LFW.

What is the difference between ArcFace and CosFace?

Where the margin is applied. CosFace subtracts a margin from the target cosine; ArcFace adds it to the target angle before taking the cosine. In the paper's like-for-like Table 2 (CASIA, ResNet50) the two score 99.51 and 99.53 on LFW and 94.56 and 95.15 on AgeDB-30.

Why is ArcFace used in deepfake generation?

Swap generators need a measure of identity, and SimSwap takes its identity vector from a pretrained ArcFace model while FaceShifter uses a pretrained recognition model as its identity encoder. The swap is trained until a recognition network reads the output as the source person.