wikillm

Paper · 2021-03-06 · cs.CV

WebFace260M: A Benchmark Unveiling the Power of Million-Scale Deep Face Recognition

Builds WebFace260M (4M names, 260M web faces) and its cleaned subset WebFace42M (2M identities, 42M faces) with CAST, a self-training cleaning loop. Adds the FRUITS time-limited face test and a test set. Author-reported: ArcFace ResNet-100 on WebFace42M reaches 97.70% TAR@FAR=1e-4 on IJB-C, and ranks 3rd of 430 on NIST-FRVT.

Face recognitionLearning with noisy labelsSelf-trainingDataset curationface-recognitiondatasetdata-cleaningself-trainingbenchmarkdistributed-training

arXivPDFMarkdown19 min read

AI-compiled by claude-haiku-5-5 on 2026-11-01, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

In plain words

Face recognition models learn from large collections of labelled face photos, and the biggest public collections are small compared with what large companies hold. This paper builds a much larger one. It starts from about four million celebrity names, searches the web for photos of each name, and cuts out the faces. Web photos are messy, so the authors also designed an automatic cleaning method. A model cleans the data, a new model is trained on the cleaner data, and that new model then does the cleaning again. After three rounds, about 42 million faces of 2 million people remain.

The paper also proposes a way to test face recognition under a time limit, since a real device has only a fixed time per check. Models are scored on a new, hand-built test set in three speed tracks: 100, 500 and 1000 milliseconds. The authors report that training on their cleaned set beats the public sets they compared with, and that the cleaned set gives an entry that ranks third among 430 in a NIST face-recognition benchmark.

For a practitioner, the lesson is that the training data and its cleaning matter as much as the model, and that a time limit can change which model is the right choice.

TL;DR

  • Dataset: WebFace260M has 4M identities and 260M faces; the cleaned WebFace42M has 2M identities and 42M faces §2 tab. 1 tab. 2.
  • CAST cleans the web data with three self-training rounds. Each round uses an ArcFace ResNet-100 teacher, starting from one trained on MS1MV2 §3 §5.4.
  • ArcFace ResNet-100 trained on WebFace42M reaches 97.70% TAR@FAR=1e-4 on IJB-C, against 96.03% for MS1MV2 (author-reported) tab. 5.
  • FRUITS measures accuracy under 100, 500 and 1000 ms budgets on a new test set of 2,225 identities §4 tab. 3.
  • Code: none found. Data access is by signed licence, for research use §6.

Problem

Public face training sets lag behind those available inside companies. Among public sets, MegaFace2 has the most identities and MS1M the most faces, and the paper puts MS1M's noise rate at around 50% §2 tab. 1. Hand or semi-automatic cleaning does not scale to millions of identities, and the purely automatic MegaFace2 cleaning is reported to leave more than 30% noise §3. Clustering the whole web set at once is impractical §3.

Public benchmarks are also close to saturated, and the time-limited NIST-FRVT test is restricted by a submission policy of one submission every four calendar months §1 §4. The paper argues that real deployments are limited by inference time, which those benchmarks do not measure §1 §4.

Method

The paper has four parts: (1) how the web data was collected and pre-processed §2; (2) CAST, the cleaning pipeline §3; (3) the FRUITS protocol and test set §4; and (4) training and evaluation experiments with a distributed training setup §5. No numbered equations appear in the paper. The only formulas are prose definitions of cosine thresholds §3 and of the FNMR and FMR metrics §4.3.

Data collection and pre-processing §2

  1. Names: 1M names come from the MS1M list, which was built from Freebase, and 3M are chosen from the IMDB database out of about 4M names there §2.
  2. Images: a commercial image search engine is queried per name. The top 10% of subjects get 200 images each, and the next 20%, 30% and 40% get 100, 50 and 25 §2. The ranking used to form these tiers is not stated.
  3. Faces: RetinaFace predicts five landmarks for each image. If an image has several faces, only the largest one above a score threshold is kept. The threshold value is not stated §2.
  4. Result: 4,008,130 identities and 260,890,076 faces after pre-processing tab. 2. That is 65 images per identity on average tab. 1.
  5. Attributes: WebFace42M gets seven attribute labels (pose, age, race, gender, hat, glasses, mask). The paper shows their distributions but not how they were labelled §2 fig. 3.

CAST: Cleaning Automatically by Self-Training §3 fig. 4

CAST treats cleaning as self-training on open-set face data. Each round uses a teacher network to embed every face. The faces in each folder are then clustered to find the dominant person, and folders are merged or dropped by comparing their centres. The next round trains a new student on the cleaned data, and that student becomes the next teacher §3. Three rounds are used §5.4.

Pseudocode
# Cleaning Automatically by Self-Training (CAST)  [§3] [fig. 4]
# Input:  faces: per name, a folder of pre-processed face crops
# Output: cleaned folders, after duplicate and overlap removal

def cast(faces, ms1mv2_teacher, num_rounds):
    # The first teacher is ArcFace ResNet-100 trained on MS1MV2  [§3]
    teacher = ms1mv2_teacher
    # Three rounds are used; the fourth gave saturated results  [§5.4]
    for round_index in range(num_rounds):
        # Each round cleans the same initial set with the current teacher
        # [§3] [fig. 4 caption]
        cleaned = clean_folders(faces, teacher)
        # Train a student on the cleaned faces; it becomes the next teacher
        # [§3]
        teacher = train_arcface_resnet100(cleaned)
    # Remove duplicates inside each subject, and identities that overlap
    # benchmarks or the FRUITS test set  [§3]
    return remove_duplicates_and_overlaps(cleaned)

The intra-class and inter-class steps that each round uses are as follows.

Pseudocode
# Intra-class cleaning, then inter-class cleaning  [§3]
# Input:  faces per name, and a teacher that outputs 512-d features
# Output: one kept set of faces per remaining folder

def clean_folders(faces, teacher):
    # Embed every face with the teacher  [§3]
    embeddings = teacher.embed(faces)                  # (N, 512)
    kept = {}
    for name, folder in faces.items():
        # Cluster the faces of one folder with DBSCAN  [§3]
        # DBSCAN's eps and min_samples are not stated
        clusters = dbscan(embeddings[folder])
        # Keep the largest cluster only, if it has more than 2 faces  [§3]
        kept[name] = largest_cluster(clusters, min_size=3)
    # Compare the feature centre of each folder  [§3]
    # How the centre is formed is not stated
    centres = {name: mean(embeddings[kept[name]]) for name in kept}
    # Merge two folders with cosine above 0.7  [§3]
    # Delete the folder with fewer faces when cosine is in 0.5 to 0.7  [§3]
    # Behaviour below 0.5 is not stated
    return merge_and_drop(kept, centres, merge_at=0.7, drop_from=0.5)

Duplicate and overlap removal, per §3:

  • Within a subject, faces with cosine above 0.95 to another face are duplicates and removed. Which copy is kept is not stated.
  • Each subject's feature centre is compared with LFW, CALFW, CPLFW, FaceScrub, IJB-C and the FRUITS test set. Overlapping identities with cosine above 0.7 are removed.

The paper reports identity and face counts after each stage tab. 2. The inference that every round cleans the same pre-processed set, rather than the output of the round before, comes from the text, which says the intra- and inter-class passes both start from the initial set and use a different teacher each time, and from the table's counts §3 tab. 2.

FRUITS protocol and test set §4

FRUITS (Face Recognition Under Inference Time conStraint) times the whole system: pre-processing (detection and alignment), feature extraction, and matching. It has three tracks §4.1:

  • FRUITS-100: 100 ms per image pair, for lightweight systems on mobile devices.
  • FRUITS-500: 500 ms, for models deployed on local surveillance systems.
  • FRUITS-1000: 1000 ms, following NIST-FRVT, for larger cloud models.

Timing uses a single core of an Intel Xeon E5-2630-v4 at 2.20 GHz, following NIST-FRVT §4.1.

The test set has 2,225 identities and 38,578 faces. Annotators picked only celebrities they knew, to avoid mistakes between look-alikes, and were asked to balance attributes. Recognition models were used to guide hard-sample selection (the models are not named) §4.2. Attributes are age, race, gender, and controlled or wild capture §4.2 tab. 3.

Metric: 1:1 verification. "All" pairs the impostors without regard to attributes; the attribute subsets pair within them, and cross-age and cross-scene comparisons are also defined §4.3. The metric is FNMR at a fixed FMR, with FMR set to 1e-5 in the reported results §4.3 tab. 5 tab. 9. The FNMR is the share of genuine pairs below the threshold. FMR is the share of impostor pairs at or above the threshold §4.3.

Pseudocode
# FNMR at a fixed FMR on verification pairs  [§4.3]
# Input:  genuine_scores, impostor_scores (match scores), target_fmr = 1e-5
# Output: FNMR at the threshold that gives the target FMR

def fnmr_at_fmr(genuine_scores, impostor_scores, target_fmr):
    # Choose the threshold so that the share of impostor pairs at or above
    # it equals the target FMR  [§4.3]
    threshold = impostor_quantile(impostor_scores, 1 - target_fmr)
    # FNMR is the share of genuine pairs below the threshold  [§4.3]
    return mean(genuine_scores < threshold)

Distributed training §5.2 fig. 6

Two ideas are used. The feature matrix X and the class-centre matrix W are both parallelised across GPUs, and the models are trained in FP16 mixed precision with large batches §5.2. The paper does not describe the communication pattern or how W is split. Learning rate is 0.05 for one node of 8 GPUs and scales with the number of machines §5.1. The paper names the linear scaling rule for this and gives no warm-up schedule §5.1.

Pseudocode
# Learning rate for multi-machine training  [§5.1]
# Input:  num_machines, with 8 GPUs per machine
# Output: base learning rate for the run

def base_learning_rate(num_machines):
    # 0.05 for one node of 8 GPUs, scaled linearly by machine count
    # [§5.1]; warm-up is not stated
    return 0.05 * num_machines

Training schedule for the compared losses §5.1

Pseudocode
# Step schedule used for all compared models  [§5.1]
# Input:  epoch index (0-based), base learning rate
# Output: learning rate for this epoch

def learning_rate_at(epoch, base_lr):
    # Multiply by 0.1 at epochs 8, 12 and 16; training stops at epoch 20
    # [§5.1]. Whether the decay applies from or after each epoch is not stated.
    decays = sum(epoch >= milestone for milestone in (8, 12, 16))
    return base_lr * 0.1 ** decays

Hyperparameters

NameValueWhereNotes
Teacher for CAST round 1ArcFace, ResNet-100, trained on MS1MV2§3
Feature size used for cleaning512-d embedding§3
Intra-class clusteringDBSCAN; keep largest cluster if it has more than 2 faces§3eps and min_samples not stated
Inter-class mergemerge folders with cosine above 0.7§3
Inter-class dropcosine 0.5 to 0.7: delete folder with fewer faces§3behaviour below 0.5 not stated
Duplicate thresholdcosine above 0.95§3which copy is kept not stated
Benchmark overlap thresholdcosine above 0.7§3
CAST rounds3§5.44th round saturated
Images per identity200 (top 10%), 100 (next 20%), 50 (next 30%), 25 (next 40%)§2ranking not stated
Largest-face score thresholdnot stated§2
Face detector, FRUITS-100RetinaFace MobileNet-0.25 (23 ms)§5.5 tab. 9
Face detector, FRUITS-500, FRUITS-1000, NISTRetinaFace ResNet-50 (272 ms)§5.5 §5.6 tab. 9
Detector inputloose crops resized to 224 x 224tab. 9
Batch size per GPU64 by default§5.132 in 100%-data rows of distributed table
Learning rate0.05 per 8-GPU node, times number of machines§5.1 §5.2warm-up not stated
Learning-rate decayx0.1 at epochs 8, 12, 16§5.1
Training length20 epochs§5.1
Augmentationhorizontal flip only§5.1
PrecisionFP16 mixed precision§5.2 tab. 4
Parallelised tensorsfeature X and centre W§5.2 tab. 4
Losses comparedCosFace, ArcFace, CurricularFace§5.1margins and scales not stated here; "referred to the original papers"
Backbone for dataset comparisonResNet-100, no flip testtab. 5
Backbone for small-model checkResNet-14§5.3 tab. 6
FRUITS time budgets100, 500, 1000 ms§4.1
Timing hardwaresingle core, Intel Xeon E5-2630-v4 at 2.20 GHz§4.1
Verification metricFNMR at FMR = 1e-5§4.3 tab. 5 tab. 9
NIST-FRVT systemArcFace ResNet-200 on WebFace42M, OpenVINO, flip test§5.6about 1300 ms against a 1500 ms limit

Results

Author-reported. Setup: ResNet-100 with ArcFace, CosFace or CurricularFace on each training set, scored on several verification sets tab. 5; distributed training speed on WebFace42M tab. 4; FRUITS baselines tab. 9 fig. 8; NIST-FRVT tab. 10.

Headline numbers:

SettingMetricBaselineThis paperSource
WebFace42M vs MS1MV2, ArcFace ResNet-100IJB-C TAR@FAR=1e-496.0397.70tab. 5 §5.3
WebFace42M vs MS1MV2, ArcFace ResNet-100Our test FNMR@FMR=1e-5 (lower is better)5.081.58tab. 5
WebFace42M, ArcFace ResNet-200, NIST-FRVTRank among 430 entriesnot applicable3rdtab. 10 §5.6
ResNet-100 training time, distributedHours233 (1 node)9 (32 nodes)tab. 4 §5.2
FRUITS-100 best baseline (RegNet-800MF)FNMR@FMR=1e-5 on All pairsnot stated5.88%§5.5

The paper says the IJB-C error falls by about 40% relative §1 §5.3. Taking the table values, (100 - 96.03) to (100 - 97.70) is a drop of about 42% tab. 5.

Dataset statistics tab. 1 tab. 2

The paper's Table 1 compares training sets. Rows marked private are left out here.

Dataset# Identities# ImagesImages/IDCleaning# AttributesAvailabilityPublications
CASIA-WebFace10 K0.5 M47Auto-PublicArxiv 2014
CelebFaces10 K0.2 M20Manual40PublicICCV 2015
UMDFaces8 K0.3 M45Semi-auto4PublicIJCB 2017
VGGFace2 K2.6 M1,000Semi-auto-PublicBMVC 2015
VGGFace29 K3.3 M363Semi-auto11PublicFG 2018
MS1M0.1 M10 M100No-PublicECCV 2016
MS1M-IBUG85 K3.8 M45Semi-auto-PublicCVPRW 2017
MS1MV285 K5.8 M68Semi-auto-PublicCVPR 2019
MS1M-Glint87 K3.9 M44Semi-auto-Public-
MegaFace20.6 M4.7 M7Auto-PublicCVPR 2017
IMDB-Face59 K1.7 M29Manual-PublicECCV 2018
WebFace260M4 M260M65No-Public-
WebFace42M2 M42M21Auto7Public-

Note: the paper's Table 1 marks WebFace260M and WebFace42M as "Public" in availability. Section 6 says access is granted on application under a licence for research use §6. See Pitfalls.

CAST stages tab. 2:

Stage# Identities# Faces
Collect name list and images4,073,509265,777,598
Face pre-processing4,008,130260,890,076
First iteration, intra-class3,341,76161,792,387
First iteration, inter-class2,437,14050,672,354
Second iteration, intra-class3,027,81460,274,892
Second iteration, inter-class2,176,42747,352,741
Third iteration, intra-class2,878,88658,155,345
Third iteration, inter-class2,070,87046,220,417
Remove duplicates2,070,87043,977,802
Remove test set overlaps2,059,90642,474,558

FRUITS test set tab. 3

Attributes# Id.# Faces# Impostor# Genuine
All2,22538,578743,683,994427,759
Cross-age-10--374,849,719109,350
Cross-age-20--196,770,68027,056
Caucasian99717,46276,747,746138,454
East Asian64712,40120,384,59660,219
African4416,3952,666,16223,878
Others1402,320--
Male1,37022,846260,724,139234,296
Female85515,732123,546,583193,463
Controlled-20,446208,876,619132,616
Wild-18,132164,250,414125,232
Cross-scene--370,556,961169,911

Distributed training tab. 4 fig. 6

B x G x M is batch size per GPU x GPUs per machine x machines. Memory is in MB, in brackets. Accuracy is IJB-C TAR@FAR=1e-4. Speed is in samples per second, as the text gives it §5.2.

DataB x G x MPrecisionParallelSpeedTimeIJB-C
10%32 x 8 x 1FP32X (7913)0.6K39 h96.67
10%64 x 8 x 1FP32X W (7521)0.9K26 h96.83
10%64 x 8 x 1FP16X (7551)1K23 h96.80
10%64 x 8 x 1FP16X W (7182)1.8K13 h96.78
10%64 x 8 x 4FP16X W (7125)6.3K4 h96.73
10%64 x 8 x 8FP16X W (7119)12.4K2 h96.77
30%64 x 8 x 1FP16X W (8901)1.7K41 h97.41
30%64 x 8 x 4FP16X W (8519)5.5K13 h97.50
30%64 x 8 x 8FP16X W (8455)11.3K6 h97.47
100%32 x 8 x 1FP16X W (10503)1K233 h97.71
100%32 x 8 x 8FP16X W (8359)6.8K34 h97.65
100%32 x 8 x 16FP16X W (8297)12.9K18 h97.74
100%32 x 8 x 32FP16X W (8221)25.3K9 h97.70

The paper says scaling efficiency is above 80% on 256 GPUs (32 nodes) §5.2. From the 100% rows, 233 h on one machine and 9 h on 32 machines is about 81% of linear scaling.

Training-data comparison tab. 5 fig. 7

ResNet-100 without flip test. Columns are: Pairs (average over LFW, CFP-FP, CPLFW, AgeDB, CALFW), RFW (average), Mega (MegaFace rank-1 identification), IJB-C (TAR@FAR=1e-4), and Our test (FNMR@FMR=1e-5 on All pairs, lower is better).

DataLossPairsRFWMegaIJB-COur test (lower is better)
MS1MCosFace95.6998.0996.2192.9626.87
MS1MArcFace95.5397.6497.6793.4519.47
MS1MCurricular95.7198.1296.8692.9933.14
MS1M-IBUGCosFace95.6797.6297.3394.356.36
MS1M-IBUGArcFace95.4997.7897.2794.577.05
MS1M-IBUGCurricular95.7197.8697.1994.727.13
MS1MV2CosFace97.0598.8598.3096.014.49
MS1MV2ArcFace97.1098.9898.4096.035.08
MS1MV2Curricular97.2399.0298.4696.214.95
MS1M-GlintCosFace95.9999.5998.6096.156.11
MS1M-GlintArcFace95.8199.6098.4896.246.66
MS1M-GlintCurricular96.4199.6598.5796.316.93
MegaFace2CosFace92.5288.9086.6287.7545.90
MegaFace2ArcFace93.1889.4588.2889.3541.58
MegaFace2Curricular93.4090.0688.3290.1141.97
IMDB-FaceCosFace96.4193.8094.0393.9616.73
IMDB-FaceArcFace96.4093.0893.4893.3719.07
IMDB-FaceCurricular96.6294.1193.6394.1219.23
WebFace4MCosFace97.3798.1697.5996.864.43
WebFace4MArcFace97.3998.1497.6096.774.95
WebFace4MCurricular97.4098.1497.9497.024.33
WebFace12MCosFace97.6199.1598.6697.412.16
WebFace12MArcFace97.6699.0898.8297.472.34
WebFace12MCurricular97.6899.1898.7597.512.44
WebFace42MCosFace97.7699.4199.0297.681.72
WebFace42MArcFace97.6599.3399.0297.701.58
WebFace42MCurricular97.6899.3999.1197.761.63

Small-model check, ResNet-14 with ArcFace, IJB-C TAR@FAR=1e-4 tab. 6:

Training dataWebFace4MWebFace12MWebFace42M
IJB-C93.1393.9294.22

Cleaning comparison tab. 7 tab. 8

ResNet-100 with ArcFace for all rows. The MS1M cleaning rows use a teacher trained on IMDB-Face §5.4.

Data# Id# FacePairsMegaFaceIJB-C
MS1M100K10M95.5397.6793.45
MS1M-IBUG85K3.8M95.4997.2794.57
MS1MV285K5.8M97.1098.4096.03
MS1M-Glint87K3.9M95.8198.4896.24
MS1M-GCN [MillionCelebs]--96.51--
MS1M by CAST-194K6.3M95.3797.9394.31
MS1M by CAST-292K5.5M97.0898.4795.90
MS1M by CAST-391K4.9M97.4298.6196.55
MS1M by CAST-491K4.9M97.4998.5796.52
WebFace by CAST-12.4M46M97.4298.6497.28
WebFace by CAST-22.1M43M97.5398.9897.51
WebFace by CAST-32M42M97.6599.0297.70
WebFace by CAST-42M42M97.6999.0897.66

Intra-class cleaning on MS1M, ResNet-100 with ArcFace tab. 8:

Method# Id# FacePairsMegaFaceIJB-C
K-Means93K5.2M95.1797.3196.03
DBSCAN91K4.9M97.4298.6196.55
GCN-D86K4.4M96.5698.5596.48
GCN-V82K4.5M96.9398.2996.42

FRUITS baselines tab. 9 fig. 8

Table 9 gives model settings and time. Accuracy for these baselines appears only in Figure 8, as plots. The paper's text states one value (RegNet-800MF, 5.88%) §5.5.

ProtocolDet and alignEmbeddingFLOPsParamsTime
FRUITS-100M-0.25ResNet-142.1G19.2M97 ms
FRUITS-100M-0.25MobileFaceNet (Flip)230.3M1.2M65 ms
FRUITS-100M-0.25EfficientNet-B0394.2M11.6M94 ms
FRUITS-100M-0.25RegNet-800MF831.0M23.4M89 ms
FRUITS-500R-50ResNet-10012.1G65.2M481 ms
FRUITS-500R-50ResNet-50 (Flip)6.3G43.6M492 ms
FRUITS-500R-50SENet-506.3G43.8M374 ms
FRUITS-500R-50ResNeXt-1008.2G56.2M411 ms
FRUITS-500R-50RegNet-8GF8.0G82.7M429 ms
FRUITS-1000R-50ResNet-100 (Flip)12.1G65.2M826 ms
FRUITS-1000R-50ResNet-20023.9G109.3M892 ms
FRUITS-1000R-50SENet-15218.1G101.0M792 ms
FRUITS-1000R-50AttentionNet-15214.8G61.3M785 ms
FRUITS-1000R-50RegNet-16GF16.0G103.7M772 ms

The table caption says M-0.25 is RetinaFace MobileNet-0.25 (23 ms) and R-50 is RetinaFace ResNet-50 (272 ms). Time is for the whole system tab. 9.

Text-reported FRUITS results §5.5:

  • FRUITS-100: the best baseline is RegNet-800MF, with 5.88% FNMR@FMR=1e-5. Lower is better, and the paper says there is much room for improvement.
  • FRUITS-500: ResNet-100 performs best overall. ResNet-50 with flip testing is best on the Wild and Male subsets. ResNeXt is first on Cross-scene.
  • FRUITS-1000: ResNet-200 is best overall and wins five attribute comparisons. SENet-152 and AttentionNet-152 win three and two. The paper says the large models are close together in this track.

NIST-FRVT tab. 10 §5.6

For the NIST submission, the detector is a ResNet-50 RetinaFace model. The embedding network is a 200-layer ResNet with the ArcFace loss, trained on WebFace42M. OpenVINO is used for acceleration, with a flip test. The paper reports about 1300 ms against a 1500 ms limit §5.6.

RankEntryVisaMugshotVisaBorderBorderWild
1deepglint0.00270.00330.00430.00840.0301
2visionlabs0.00250.00290.00350.00640.0306
3ours0.00340.00280.00460.00880.0303
4dahua0.00460.00490.00460.00760.0300
5cib0.00610.00410.00480.05780.0302

The values are FNMR at the corresponding FMR, as reported in the paper tab. 10.

Paper vs code

No official code.

What was searched:

  1. Links in the paper: the abstract gives the project page https://www.face-benchmark.org and no code repository. Section 6 says access to the data is granted to applicants who sign a licence §6.
  2. The project page: WebFetch failed on a TLS certificate mismatch (the certificate names dynadot.com), so its content could not be read.
  3. GitHub search: "WebFace42M" and "CAST face cleaning self-training" return no repositories. "WebFace260M" returns three repositories, none verifiably owned by the authors. WebFace260M/webface260m-iccv21-mfr is a submission package for an ICCV 2021 masked-face challenge. It ships inference and submission code only, and no training code. It has no licence. The owner account is not verifiable: the organisation endpoint returned 404. biometric-community/WebFace260M is a catalogue of data links, and ducanhho2296/MaskedFaceRecognition is a third-party challenge repository. None of these is used.

Pitfalls

  • Data access and licence. The dataset is not included here. Section 6 says access is granted to licence signatories for research purposes only §6. Table 1 labels both WebFace datasets "Public" tab. 1, which conflicts with that text. Do not assume the data is usable commercially, and do not redistribute it.
  • No code, so cleaning is not reproducible from the paper alone. Missing: DBSCAN eps and min_samples §3; how a folder's centre is formed §3; what happens below cosine 0.5 §3; which duplicate is kept §3; the face score threshold §2; the ranking that sets the 200/100/50/25 image tiers §2; how the seven attributes were labelled §2; and the MS1MV2 teacher's training schedule (only the compared-loss schedule is given in §5.1).
  • The 10% claim is not uniform. The paper says WebFace4M beats MS1M families and MegaFace2. On IJB-C, WebFace4M ArcFace (96.77) is above MS1MV2 ArcFace (96.03). On MegaFace rank-1, it is below: 97.60 against 98.40 for MS1MV2 and 98.48 for MS1M-Glint tab. 5. Curricular on WebFace4M is 97.94, below MS1MV2 Curricular at 98.46 tab. 5.
  • The headline IJB-C number is ArcFace, not the best loss. WebFace42M ArcFace gives 97.70. CurricularFace gives 97.76 on the same data, and CosFace gives 97.68 tab. 5.
  • Protocols differ between tables. Table 5 is ResNet-100 without flip test. The NIST entry uses ResNet-200 with flip test tab. 5 §5.6. The FRUITS baselines add detection and alignment and are timed as whole systems tab. 9. Numbers across these tables are not directly comparable.
  • The CAST teacher for MS1M is different. For MS1M cleaning, the initial teacher is trained on IMDB-Face, not MS1MV2 §5.4. The WebFace cleaning uses the MS1MV2 teacher §3.
  • Dataset construction is not random. Annotators chose celebrities they already knew, and recognition models guided hard-sample selection. The models are not named §4.2. The test set therefore does not measure typical error rates. The paper also says it will be maintained and updated §4.2, but gives no version or date.
  • FNMR at FMR = 1e-5 needs very many impostor pairs. The All row has 743,683,994 impostor pairs tab. 3. The paper does not say whether the threshold is found exactly or estimated. Confidence intervals are not given.
  • Timing depends on hardware. The timing setup is a single Xeon core §4.1. Times in tab. 9 are whole-system times, and the caption does not restate the hardware. Re-timing elsewhere will not match.
  • Fairness is shown only in plots. The attribute results are in Figure 8 and the discussion says bias may exist §6 fig. 8. No numeric bias metric is given in the text.
  • Batch size is inconsistent. The default is 64 per GPU §5.1, but the 100%-data rows of the distributed table use 32 tab. 4. The paper does not say which batch size produced the dataset comparison.
  • Learning rate and warm-up. The rate scales with machines §5.1. No warm-up is stated for the distributed runs §5.2.
  • The overall NIST rank method is not stated. Rank 3 of 430 is given, but the paper does not say how five track values combine into one rank tab. 10. Among these five entries, it is best only on Mugshot (0.0028).
  • Loss margins and scales are not stated. The paper says the compared losses follow their original papers §5.1. Those values belong to the cited papers, so an implementer must take them from there.

Lineage

  • Builds on: ArcFace, the loss used for the teacher and student §3 §5.1 (/papers/1801.07698); CosFace and CurricularFace, also compared §5.1 tab. 5.
  • Compares its datasets against: VGGFace2 tab. 1 (/papers/1710.08092), MS1M, MS1M-IBUG, MS1MV2, MS1M-Glint, MegaFace2 and IMDB-Face tab. 1 tab. 5.
  • Cleaning methods compared: DBSCAN, K-Means, GCN-D and GCN-V tab. 8; a GCN cleaner from MillionCelebs is compared in tab. 7.
  • Self-training is the base for CAST; the paper cites several self-training works for image classification §3.
  • Superseded by: not stated.

Source and license

Adapted from “WebFace260M: A Benchmark Unveiling the Power of Million-Scale Deep Face Recognition” by Zheng Zhu, Guan Huang, Jiankang Deng, Yun Ye, Junjie Huang, Xinze Chen, Jiagang Zhu, Tian Yang, Jiwen Lu, Dalong Du, Jie Zhou (arXiv:2103.04098), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.