Learning Facial Representations from the Cycle-consistency of Face (ICCV 2021)

August 10, 2021 · View on GitHub

This repository contains the code for our ICCV2021 paper by Jia-Ren Chang, Yong-Sheng Chen, and Wei-Chen Chiu.

Paper Arxiv Link

Contents

  1. Introduction
  2. Results
  3. Usage
  4. Contacts

Introduction

In this work, we introduce cycle-consistency in facial characteristics as free supervisory signal to learn facial representations from unlabeled facial images. The learning is realized by superimposing the facial motion cycle-consistency and identity cycle-consistency constraints. The main idea of the facial motion cycle-consistency is that, given a face with expression, we can perform de-expression to a neutral face via the removal of facial motion and further perform re-expression to reconstruct back to the original face. The main idea of the identity cycle-consistency is to exploit both de-identity into mean face by depriving the given neutral face of its identity via feature re-normalization and re-identity into neutral face by adding the personal attributes to the mean face.

Results

More visualization

Emotion recognition

We use linear protocol to evaluate learnt representations for emotion recognition. We report accuracy (%) for two dataset.

MethodFER-2013RAF-DB
Ours48.76 %71.01 %
FAb-Net46.98 %66.72 %
TCAE45.05 %65.32 %
BMVC’2047.61 %58.86 %

Head pose regression

We use linear regression to evaluate learnt representations for head pose regression.

MethodYawPitchRoll
Ours11.7012.7612.94
FAb-Net13.9213.2514.51
TCAE21.7514.5714.83
BMVC’2022.0613.5015.14

Person recognition

We directly adopt learnt representation for person recognition.

MethodLFWCPLFW
Ours73.72 %58.52 %
VGG-like71.48 %-
LBP56.90 %51.50 %
HoG62.73 %51.73 %

Frontalization

The frontalization results from LFW dataset.

Image-to-image Translation

The image-to-image translation results.

Usage

From Others

Thanks to all the authors of these awesome repositories. SSIM Optical Flow Visualization

Download Pretrained Model

Google Drive

Test translation

python test_translation.py --loadmodel (pretrained model) \

and you can get like below

Replicate RAF-DB results

Download pretrained model and RAF-DB

python RAF_classify.py --loadmodel (pretrained model) \
                       --datapath (your RAF dataset path) \
                       --savemodel (your path for saving)

You can get 70~71% accuracy with basic emotion classification (7 categories) using linear protocol.

Contacts

followwar@gmail.com

Any discussions or concerns are welcomed!