PocketNet: Extreme Lightweight Face Recognition Network using Neural Architecture Search and Multi-Step Knowledge Distillation
Paper on arxiv: arxiv
Accepted at IEEE ACCESS Journal
Model training: In the paper, we employ MS1MV2 as the training dataset which can be downloaded from InsightFace (MS1M-ArcFace in DataZoo) Download MS1MV2 dataset from insightface on strictly follow the licence distribution
Unzip the dataset and place it in the data folder
Rename the config/config_xxxxxx.py to config/config.py
- Train PocketNet with ArcFace loss
- ./train.sh
- Train PocketNet with template knowledge distillation
- ./train_kd.sh
- Train PocketNet with multi-step template knowledge distillation
- ./train_kd.sh
Model | Parameters (M) | configuration | log | pretrained model |
---|---|---|---|---|
PocketNetS-128 | 0.92 | Config | log | Pretrained-model |
PocketNetS-256 | 0.99 | Config | log | Pretrained-model |
PocketNetM-128 | 1.68 | Config | log | Pretrained-model |
PocketNetM-256 | 1.75 | Config | log | Pretrained-model |
All code has been trained and tested using Pytorch 1.7.1
- download the data from their offical webpages.
- alternative: The evaluation datasets are available in the training dataset package as bin file
- Rename the configuration file in config directory based on the evaluation model e.g. rename config_PocketNetM128.py to config.py to evaluate the PocketNetM128
- set the config.rec to dataset folder e.g. data/faces_emore
- set the config.val_targets for list of the evaluation dataset
- download the pretrained model from link the previous table
- set the config.output to path to pretrained model weights
- run eval/eval.py
- the output is test.log contains the evaluation results over all epochs
- Please apply for permissions from NIST before your usage NIST_Request
- run eval/IJB/runIJBEval.sh
The code of NAS is available under NAS
- Add pretrained model
- Training configuration
- Add NAS code
- Add evaluation results
If you use any of the provided code in this repository, please cite the following paper:
@article{boutros2021pocketnet,
author = {Fadi Boutros and
Patrick Siebke and
Marcel Klemt and
Naser Damer and
Florian Kirchbuchner and
Arjan Kuijper},
title = {PocketNet: Extreme Lightweight Face Recognition Network Using Neural
Architecture Search and Multistep Knowledge Distillation},
journal = {{IEEE} Access},
volume = {10},
pages = {46823--46833},
year = {2022},
url = {https://doi.org/10.1109/ACCESS.2022.3170561},
doi = {10.1109/ACCESS.2022.3170561},
}
This project is licensed under the terms of the Attribution-NonCommercial-ShareAlike 4.0
International (CC BY-NC-SA 4.0) license.
Copyright (c) 2021 Fraunhofer Institute for Computer Graphics Research IGD Darmstadt