Group-wise Scaling and Orthogonal Decomposition for Domain-Invariant Feature Extraction in Face Anti-Spoofing. (ICCV 2025)

December 16, 2025 · View on GitHub

This repository contains the official implementation of the ICCV 2025 paper. [Arxiv] [Project]

Authors: Seungjin Jung, Kanghee Lee, Younghyung Jeong, Haeun Noh, Jungmin Lee, and Jongwon Choi*

Information on the Datasets Used in the paper

The experiments in this paper are conducted on several publicly available datasets widely used in face anti-spoofing research:

DatasetPaperDatalink
CASIA-MFSDA face antispoofing database with diverse attacks
OULU-NPUOULU-NPU: A Mobile Face Presentation Attack Database with Real-World VariationsData
Idaip Replay-AttackOn the effectiveness of local binary patterns in face anti-spoofingData
MSU-MFSDFace Spoof Detection With Image Distortion AnalysisData
CelebA-SpoofCelebA-Spoof: Large-Scale Face Anti-Spoofing Dataset with Rich AnnotationsData
CASIA-SurfCASIA-SURF: A Large-scale Multi-modal Benchmark for Face Anti-spoofingData
CASIA-CeFACASIA-SURF CeFA: A Benchmark for Multi-modal Cross-ethnicity Face Anti-spoofingData
WCMABiometric Face Presentation Attack Detection with Multi-Channel Convolutional Neural NetworkData

How to Structure Data Directories

  • {dataset} : name of dataset
          e.g.) CASIA, OULU, Idaip, MSU, CeFA, Surf, WMCA, CelebA
  • {video}  : Name of the directory in the format {session}_{video_name} (without file extension)
          e.g.) Idiap - [fixed_attack_highdef_client003_session01_highdef_photo_adverse,
               hand_attack_highdef_client003_session01_highdef_photo_adverse, ...]
  • {img}     : name of image as number of frame (every 5 frames)
          e.g.) CASIA - [005.png, 010.png, ...]
dataset
|-- {dataset}
|   |-- train
|   |   |-- attack
|   |   |   |-- {video}
|   |   |       |-- {img}
|   |   |-- live
|   |   |   |-- {video}
|   |   |       |-- {img}
|   |-- test
|   |   |-- attack
|   |   |   |-- {video}
|   |   |       |-- {img}
|   |   |-- live
|   |   |   |-- {video}
|   |   |       |-- {img}

How to Preprocess Data

  1. Frame extraction. Extract every 5th frame from each video. ( Following [SAFAS])
  2. Face processing. Detect and align faces using MTCNN. We use a padding ratio of 0.6.

How to Train

python GD-FAS.py --gs --protocol O_C_I_to_M

Information about Previous Researches

DatasetConferencePaperGithub
SAFASCVPR 23Rethinking domain generalization for face anti-spoofing: Separability and alignmentGithub
FLIPICCV 23FLIP: Cross-domain Face Anti-spoofing with Language GuidanceGithub
CFPLCVPR 24CFPL-FAS: Class Free Prompt Learning for Generalizable Face Anti-spoofing-
BUDoPTECCV 24Bottom-up domain prompt tuning for generalized face anti-spoofing-
TF-FASECCV 24TF-FAS: Twofold-Element Fine-Grained Semantic Guidance for Generalizable Face Anti-SpoofingGithub

Citation

If you use this work in your research or applications, please cite:

@article{jung2025group,
  title={Group-wise Scaling and Orthogonal Decomposition for Domain-Invariant Feature Extraction in Face Anti-Spoofing},
  author={Jung, Seungjin and Lee, Kanghee and Jeong, Yonghyun and Noh, Haeun and Lee, Jungmin and Choi, Jongwon},
  booktitle={Proceedings of the IEEE/CVF international conference on computer vision},
  year={2025}
}