Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DriveFace: A Cross-Spectral Through-Glass Face Dataset for On-the-Move Vehicular Border Control

This repository contains protocols and source code to reproduce the following paper:

@inproceedings{george2026driveface,
  title={DriveFace: A Cross-Spectral Through-Glass Face Dataset for On-the-Move Vehicular Border Control},
  author={George, Anjith and Luevano, Luis and Komaty, Alain and Al Amine, Zeina and Vidit, Vidit and Marcel, S\'ebastien},
  booktitle={IEEE International Joint Conference on Biometrics (IJCB)},
  year={2026},
}

Project page: https://www.idiap.ch/paper/driveface/

Contents

Folder Experiments
FR/ Face recognition baselines — paper Table 4
PAD/ Presentation attack detection — paper Table 7

1. Installation

The experiments need Bob (for scoring and metrics) plus PyTorch. Create the driveface environment from the provided file:

conda env create -f environment.yml
conda activate driveface

This pulls Bob from the Idiap conda channel and installs PyTorch, timm, transformers, onnxruntime-gpu and gdown. If you have mamba, use mamba env create -f environment.yml — it solves considerably faster.

For CPU-only machines, replace onnxruntime-gpu with onnxruntime in environment.yml before creating the environment.

2. Download the data

Download DriveFace from https://www.idiap.ch/en/scientific-research/data/driveface

The protocol CSVs in this repository reference images by a path relative to the dataset root, so you pass that root as --data-root (FR) or --data_root (PAD). Both tracks expect preprocessed images: faces are detected and aligned with SCRFD, cropped to 112×112 (FR) and 224×224 (PAD).

3. Reproduce the results

Face recognition (Table 4)

cd FR
python download_models.py --model all --model-dir ./models

python evaluate_fr.py \
    --model edgeface_base --protocol outdoor \
    --data-root /path/to/DriveFace_preprocessed \
    --model-dir ./models --output-root ./experiments_fr

python hface_metrics.py \
    -sf ./experiments_fr/edgeface_base/outdoor/scores.csv \
    -s performance.yaml -u edgeface_base_outdoor

Models: adaface_ir101_webface12m, lvface_vit_l, edgeface_base. Protocols: outdoor, simulation, indoor_car (plus *_mp multi-pose enrollment variants). Reports AUC / EER / VR@FAR=1% / Rank-1.

The xEdgeFace rows of Table 4 come from a separate codebase: https://gitlab.idiap.ch/bob/bob.paper.ijcb2025_xedgeface

See FR/README.md for details.

Presentation attack detection (Table 7)

cd PAD
python pad_train_eval.py \
    --architecture CLIPViTB32 --protocol grandtest \
    --epochs 100 --batch_size 64 --lr 1e-4 --weight_decay 1e-6 \
    --data_root /path/to/DriveFace_preprocessed \
    --balance_train

Protocols: grandtest, unseen_print, unseen_mask. Trains the model, scores dev/eval, and reports APCER / BPCER / ACER via bob pad metrics.

See PAD/README.md for the full list of benchmarked architectures and their flags.

About

A Cross-Spectral Through-Glass Face Dataset for On-the-Move Vehicular Border Control

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages