PocketNet: Extreme Lightweight Face Recognition Network using Neural Architecture Search and Multi-Step Knowledge Distillation

Overview

PocketNet

This is the official repository of the paper:

PocketNet: Extreme Lightweight Face Recognition Network using Neural Architecture Search and Multi-Step Knowledge Distillation

Paper on arxiv: arxiv

evaluation

Face recognition model training

Download MS1MV2 dataset from insightface on strictly follow the licence distribution

Extract the dataset and place it in the data folder

Rename the config/config_xxxxxx.py to config/config.py

  1. Train PocketNet with ArcFace loss
    • ./train.sh
  2. Train PocketNet with template knowledge distillation
    • ./train_kd.sh
  3. 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

Differentiable architecture search training

To-do

  • Add pretrained model
  • Training configuration
  • Add NAS code
  • Add evaluation results
  • Add requirements

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}
}
You might also like...
Face-Recognition-Attendence-System - This face recognition Attendence system using Python

Face-Recognition-Attendence-System I have developed this face recognition Attend

A
A "gym" style toolkit for building lightweight Neural Architecture Search systems

A "gym" style toolkit for building lightweight Neural Architecture Search systems

PyTorch implementation of paper A Fast Knowledge Distillation Framework for Visual Recognition.
PyTorch implementation of paper A Fast Knowledge Distillation Framework for Visual Recognition.

FKD: A Fast Knowledge Distillation Framework for Visual Recognition Official PyTorch implementation of paper A Fast Knowledge Distillation Framework f

Densely Connected Search Space for More Flexible Neural Architecture Search (CVPR2020)
Densely Connected Search Space for More Flexible Neural Architecture Search (CVPR2020)

DenseNAS The code of the CVPR2020 paper Densely Connected Search Space for More Flexible Neural Architecture Search. Neural architecture search (NAS)

Light-weight network, depth estimation, knowledge distillation, real-time depth estimation, auxiliary data.
Light-weight network, depth estimation, knowledge distillation, real-time depth estimation, auxiliary data.

light-weight-depth-estimation Boosting Light-Weight Depth Estimation Via Knowledge Distillation, https://arxiv.org/abs/2105.06143 Junjie Hu, Chenyou F

CKD - Collaborative Knowledge Distillation for Heterogeneous Information Network Embedding

Collaborative Knowledge Distillation for Heterogeneous Information Network Embed

A task-agnostic vision-language architecture as a step towards General Purpose Vision
A task-agnostic vision-language architecture as a step towards General Purpose Vision

Towards General Purpose Vision Systems By Tanmay Gupta, Amita Kamath, Aniruddha Kembhavi, and Derek Hoiem Overview Welcome to the official code base f

DeepHyper: Scalable Asynchronous Neural Architecture and Hyperparameter Search for Deep Neural Networks
DeepHyper: Scalable Asynchronous Neural Architecture and Hyperparameter Search for Deep Neural Networks

What is DeepHyper? DeepHyper is a software package that uses learning, optimization, and parallel computing to automate the design and development of

Model search is a framework that implements AutoML algorithms for model architecture search at scale
Model search is a framework that implements AutoML algorithms for model architecture search at scale

Model search (MS) is a framework that implements AutoML algorithms for model architecture search at scale. It aims to help researchers speed up their exploration process for finding the right model architecture for their classification problems (i.e., DNNs with different types of layers).

Comments
  • Inference time

    Inference time

    Firstly, I really admire all your works (PocketNet, QuantFace, MixFaceNets).

    I have a concern, the inference time is extremely slow (even with GPU support), any suggestions on how to make it faster?

    Thanks!

    opened by HamDan1999 4
  • training log without KD

    training log without KD

    would you mind releasing the training log of PocketNetS-128 (no KD)? I'm curious about how loss decrease when training without KD, comparing with that with KD.

    opened by HHCorp 2
  • Issue about setting of training data and validation data

    Issue about setting of training data and validation data

    Hello, in the code of architecture search, ie DART/searchs/search.py, I found that the difference between the training data and the validation data is whether there is random cropping, is that right? 49 # get dataset and meta info 50 input_size, input_channels, n_classes, train_data = dataset.get_train_dataset(cfg.root, cfg.dataset) 51 val_data = dataset.get_dataset_without_crop(cfg.root, cfg.dataset) I am also studying the application of NAS in recognition tasks recently, but I am confused about how to set training data and validation data because I found that the conventional setting seems to be unable to be applied to the NAS. Can you tell me your understanding of this? Thanks a lot!!!

    opened by huangjiyi 0
  • where the pre-trained teacher model?

    where the pre-trained teacher model?

    `backbone_teacher = iresnet100(num_features=cfg.embedding_size).to(local_rank) try: backbone_teacher_pth = os.path.join(cfg.teacher_pth, str((epoch + 1)*11372) + "backbone.pth") backbone_teacher.load_state_dict(torch.load(backbone_teacher_pth, map_location=torch.device(local_rank)))

            if rank == 0:
                logging.info("backbone teacher loaded for epoch {} successfully!".format(epoch))
        except (FileNotFoundError, KeyError, IndexError, RuntimeError):
            logging.info("load teacher backbone for epoch {} init, failed!".format(epoch))
            break`
    

    I can not find the teacher model.

    opened by xiakj 2
Owner
Fadi Boutros
Fadi Boutros
[IJCAI-2021] A benchmark of data-free knowledge distillation from paper "Contrastive Model Inversion for Data-Free Knowledge Distillation"

DataFree A benchmark of data-free knowledge distillation from paper "Contrastive Model Inversion for Data-Free Knowledge Distillation" Authors: Gongfa

ZJU-VIPA 47 Jan 9, 2023
Block-wisely Supervised Neural Architecture Search with Knowledge Distillation (CVPR 2020)

DNA This repository provides the code of our paper: Blockwisely Supervised Neural Architecture Search with Knowledge Distillation. Illustration of DNA

Changlin Li 215 Dec 19, 2022
Step by Step on how to create an vision recognition model using LOBE.ai, export the model and run the model in an Azure Function

Step by Step on how to create an vision recognition model using LOBE.ai, export the model and run the model in an Azure Function

El Bruno 3 Mar 30, 2022
[CVPR21] LightTrack: Finding Lightweight Neural Network for Object Tracking via One-Shot Architecture Search

LightTrack: Finding Lightweight Neural Networks for Object Tracking via One-Shot Architecture Search The official implementation of the paper LightTra

Multimedia Research 290 Dec 24, 2022
This is the implementation of our work Deep Extreme Cut (DEXTR), for object segmentation from extreme points.

This is the implementation of our work Deep Extreme Cut (DEXTR), for object segmentation from extreme points.

Sergi Caelles 828 Jan 5, 2023
AMTML-KD: Adaptive Multi-teacher Multi-level Knowledge Distillation

AMTML-KD: Adaptive Multi-teacher Multi-level Knowledge Distillation

Frank Liu 26 Oct 13, 2022
Official repository of my book: "Deep Learning with PyTorch Step-by-Step: A Beginner's Guide"

This is the official repository of my book "Deep Learning with PyTorch Step-by-Step". Here you will find one Jupyter notebook for every chapter in the book.

Daniel Voigt Godoy 340 Jan 1, 2023
In this work, we will implement some basic but important algorithm of machine learning step by step.

WoRkS continued English 中文 Français Probability Density Estimation-Non-Parametric Methods(概率密度估计-非参数方法) 1. Kernel / k-Nearest Neighborhood Density Est

liziyu0104 1 Dec 30, 2021
code for paper "Does Unsupervised Architecture Representation Learning Help Neural Architecture Search?"

Does Unsupervised Architecture Representation Learning Help Neural Architecture Search? Code for paper: Does Unsupervised Architecture Representation

null 39 Dec 17, 2022
Official implementation of the paper "Lightweight Deep CNN for Natural Image Matting via Similarity Preserving Knowledge Distillation"

Lightweight-Deep-CNN-for-Natural-Image-Matting-via-Similarity-Preserving-Knowledge-Distillation Introduction Accepted at IEEE Signal Processing Letter

DongGeun-Yoon 19 Jun 7, 2022