Coder Social home page Coder Social logo

shizongyan / ddfm-face Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bdrhn9/ddfm-face

0.0 0.0 0.0 1.14 MB

Deep Discriminative Feature Models (DDFMs) for Set Based Face Recognition and Distance Metric Learning

License: MIT License

Python 100.00%

ddfm-face's Introduction

Deep Discriminative Feature Models (DDFMs) for Set Based Face Recognition and Distance Metric Learning

Abstract: This paper introduces two methods that find compact deep feature models for approximating images in set based face recognition problems. The proposed method treats each image set as a nonlinear face manifold that is composed of linear components. To find linear components of the face manifold, we first split image sets into subsets containing face images which share similar appearances. Then, our first proposed method approximates each subset by using the center of the deep feature representations of images in those subsets. Centers modeling the subsets are learned by using distance metric learning. The second proposed method uses discriminative common vectors to represent image features in the subsets, and entire subset is approximated with an affine hull in this approach. Discriminative common vectors are subset centers that are projected onto a new feature space where the combined within-class variances coming from all subsets are removed. Our proposed methods can also be considered as distance metric learning methods using triplet loss function where the learned subcluster centers are the selected anchors. This procedure yields to applying distance metric learning to quantized data and brings many advantages over using classical distance metric learning methods. We tested proposed methods on various face recognition problems using image sets and some visual object classification problems. Experimental results show that the proposed methods achieve the state-of-the-art accuracies on the most of the tested image datasets.

DDC

Illustration of the proposed method using deep discriminative centers. We first split the face images of the sets into subclusters and then discriminatively learn the deep feature centers representing these subclusters. Here, sets are split into 3 different subclusters. The discriminatively learned centers modeling each subcluster are denoted by sc,k (the center approximating k-th subcluster of the c-th class). During training, the feature embeddings are learned together with the other network weights by using back-propagation. The subcluster centers (sc,k) on the other hand are learned with stochastic gradient descent (SGD) algorithm. During testing phase, the query image features are extracted first by using the trained network and then assigned to the subcluster centers based on the shortest Euclidean distances. The final query set label assignment is accomplished by using the majority voting.

1. Requirements

Environment

Following packages are required for this repo.

  • python 3.8+
  • torch 1.9+
  • torchvision 0.10+
  • CUDA 10.2+
  • scikit-learn 0.24+
  • catalyst 21.10+
  • mlxtend 0.19+

Datasets

ESOGU-285 Video:

Gdrive

After extracting dataset to ./data folder, the script named calculate_subclusters.py needs to be invoked for preparing dataset to be training ready.

2. Training & Evaluation

To train and evaluate models in paper, run this command:

Deep Discriminative Centers (DDCs)

python run_ddfm.py --help

Deep Discriminative Common Vectors (DDCVs)

python run_ddfm.py --orthonormal --help

3. Results

The learned feature embeddings:

Feature Representation on 3D space

Learned feature representations of image set samples for different methods: (a) the embeddings returned by the proposed method trained with the full loss function, (b) the embeddings returned by the proposed method trained with the loss function without the manifold compactness term, (c) the embeddings returned by the Softmax loss function, (d) the embeddings returned by the Sub-center ArcFace method.

Verification Results on IJB-B and IJB-C Dataset:

IJB-B-11 IJB-C-11

Identification Results on IJB-B and IJB-C Dataset:

IJB-B-1N IJB-C-1N

ROC curves for various tested methods. The ROC curve on the left one is obtained for IJB-B dataset whereas the figure on the right depicts the curve for IJB-C dataset.

4. Pretrained Models

Model trained on MS1MV2 with 3 subcluster:

Gdrive

ddfm-face's People

Contributors

bdrhn9 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.