Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UNPG

Unified Negative Pair Generation toward Well-discriminative Feature Space for Face Recognition

Data prepration

MS1M-ArcFace (85K ids/5.8M images) download link

#Preprocess 'train.rec' and 'train.idx' to 'jpg'

# example
cd detection

python rec2image.py --include '{path}/face_emore' --output '{path}/MS1MV2'

K-FACE download link

"""
    ###################################################################

    K-Face : Korean Facial Image AI Dataset
    url    : http://www.aihub.or.kr/aidata/73

    Directory structure : High-ID-Accessories-Lux-Emotion
    ID example          : '19062421' ... '19101513' len 400
    Accessories example : 'S001', 'S002' .. 'S006'  len 6
    Lux example         : 'L1', 'L2' .. 'L30'       len 30
    Emotion example     : 'E01', 'E02', 'E03'       len 3
    
    ###################################################################
"""

# example
cd detection

python align_kfaces.py --ori_data_path '/data/FACE/KFACE/High' --detected_data_path 'kface_retina_align_112x112'

IJBB & IJBC

download link

Please apply for permissions from NIST before your usage.

Evaluation

Performance on public benchmark datasets with ResNet-100

Method IJB-B
(1e-5)
IJB-B
(1e-4)
IJB-C
(1e-5)
IJB-C
(1e-4)
MegaFace
(Rank-1 acc)
LFW Path
Circle-loss* - - - 93.95 98.50 99.73 -
ArcFace* - 94.20 - 95.60 98.35 99.82 -
MagFace* 90.36 94.51 94.08 95.97 - 99.83 -
CosFace 89.38 94.39 94.42 96.35 99.08 99.83 -
CosFace+UNPG 90.61 94.99 94.48 96.39 99.27 99.81 link
ArcFace 89.99 94.89 93.93 96.25 98.56 99.83 -
ArcFace+UNPG 90.57 95.04 94.47 96.33 98.82 99.83 link
MagFace 89.03 93.99 93.30 95.54 98.51 99.81 -
MagFace+UNPG 90.93 95.21 94.70 96.38 98.03 99.81 link

“*” indicates results from the original paper.

Example script

cd recognition

# example
python evaluation.py --weights 'face.r100.cos.unpg.wisk1.5.pt' --data 'ijbc.yaml' 
# --data (e.g., 'ijbb.yaml', 'bins.yaml')

Performance on K-FACE test datasets (Q1-Q4) with ResNet-34

Method Q4
(1e-5)
Q4
(1e-4)
Q3
(1e-5)
Q3
(1e-4)
Q2
(1e-5)
Q2
(1e-4)
Q1
(1e-3)
Q1
(1e-2)
Path
ArcFace 0.05 0.29 2.06 4.40 26.56 41.29 94.00 100 -
SN-pair 3.50 7.21 17.67 21.16 21.93 33.26 91.80 97.60 -
MS-loss 5.68 8.70 15.15 18.74 38.33 46.64 94.60 99.20 -
MixFace 7.11 10.92 9.19 22.55 39.09 44.48 97.00 100 -
Circle-loss 18.08 25.05 33.56 41.54 71.38 77.93 100 100 -
Arc+UNPG 29.89 50.43 51.59 60.88 91.28 93.26 100 100 link
cd recognition

# example
python evaluation.py --weights 'kface.r34.arc.unpg.wisk1.0.pt' --data 'kface.yaml' 

Training

Example script (FACE)

cd recognition

# example 
python train.py --model 'iresnet-100' --head 'arcface' --aux 'unpg' --data 'data/face.yaml' --hyp 'data/hyp.yaml' --name 'example' --device 0,1

Example script (KFACE)

cd recognition

# example 
python train.py --model 'iresnet-34' --head 'arcface' --aux 'unpg' --data 'data/kface.yaml' --hyp 'data/hyp.yaml' --name 'example' --device 0,1

License

The source code in this repository is released under the Apache License 2.0.

The Apache License 2.0 does not apply to any model weights, including:

  • Pretrained UNPG models (e.g., face.r100.cos.unpg.wisk1.5.pt, kface.r34.arc.unpg.wisk1.0.pt). These were trained on MS1MV2 (distributed by InsightFace) and K-FACE, whose terms permit non-commercial research use only. Accordingly, these weights are provided for non-commercial research purposes only.
  • detection/retinaface/weights/mobilenet0.25_Final.pth, a third-party model included for convenience. It is subject to its original license and training-data terms, not this repository's license.

If you wish to use the models commercially, you must obtain the appropriate permissions from the respective dataset and model rights holders.

About

Unified Negative Pair Generation toward Well-discriminative Feature Space for Face Recognition

Topics

Resources

Stars

34 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages