PocketNet: Extreme Lightweight Face Recognition Network using Neural Architecture Search and Multi-Step Knowledge Distillation
Paper on arxiv: arxiv
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:
@misc{boutros2021pocketnet,
title={PocketNet: Extreme Lightweight Face Recognition Network using Neural Architecture Search and Multi-Step Knowledge Distillation},
author={Fadi Boutros and Patrick Siebke and Marcel Klemt and Naser Damer and Florian Kirchbuchner and Arjan Kuijper},
year={2021},
eprint={2108.10710},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
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