SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2609.02644 · September 2026

Learning to Attract and Repel: Dual Quality Margin Learning for Face Recognition (DQM-Face)

Philipp Terhörst, Bhavesh Wani, El Ouanas Belabbaci

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 11 functions out of this paper's own repositories and ran 3 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
RAIB-group/DQM-Face canonical 3 of 11
FunctionStatusWhere it lives
conv1x1 Ran RAIB-group/DQM-Face/backbones/iresnet.py
pointer only (licence: NONE) · get_code("158bf4c3a5f11f04")
conv3x3 Ran RAIB-group/DQM-Face/backbones/iresnet.py
pointer only (licence: NONE) · get_code("29df79c9fdb0cee8")
divideIntoNstrand Ran RAIB-group/DQM-Face/eval/eval_ijbc.py
pointer only (licence: NONE) · get_code("2da848988b60d9cc")
dali_data_iter Not yet run RAIB-group/DQM-Face/dataset.py
pointer only (licence: NONE) · get_code("5d4f053df0d470c0")
get_attention_module Not yet run RAIB-group/DQM-Face/attention_modules.py
pointer only (licence: NONE) · get_code("0a65872d0d3a6ae9")
get_config Not yet run RAIB-group/DQM-Face/configs/DQMFace_config.py
pointer only (licence: NONE) · get_code("4526e3cb89fcc64d")
get_mbf Not yet run RAIB-group/DQM-Face/backbones/mobilefacenet.py
pointer only (licence: NONE) · get_code("4d9c7539a3cd23a8")
get_mbf_large Not yet run RAIB-group/DQM-Face/backbones/mobilefacenet.py
pointer only (licence: NONE) · get_code("ba27305324d07ed1")
iresnet18 Not yet run RAIB-group/DQM-Face/backbones/iresnet.py
pointer only (licence: NONE) · get_code("000c54655537fe64")
read_template_media_list Not yet run RAIB-group/DQM-Face/eval/eval_ijbc.py
pointer only (licence: NONE) · get_code("e60885cdbeb940b6")
read_template_pair_list Not yet run RAIB-group/DQM-Face/eval/eval_ijbc.py
pointer only (licence: NONE) · get_code("897480715a729925")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Face recognition in unconstrained environments remains highly challenging due to diverse and extreme variations encountered in real-world scenarios. To mitigate these effects, existing margin-based approaches model sample quality through feature magnitude. However, magnitude-based modeling alone is susceptible to identity-agnostic noise, which can degrade the reliability and discriminative power of learned representations. In this paper, we propose Dual Quality Margin Learning for Face Recognition (DQM-Face), a novel framework that enables refined attraction and repulsion dynamics during representation learning. Our approach unifies conventional magnitude-based quality estimation with a newly introduced semantic quality learning mechanism, realized via squeeze-and-excitation semantic attention. By jointly leveraging magnitude and semantic cues, we construct enhanced quality-aware margins that adaptively strengthen intra-class compactness through improved attraction during learning. To further enhance inter-class discrimination, we introduce a repulsion margin formulation that explicitly enlarges inter-class separation. The unified integration of semantic quality modeling with dual attraction-repulsion margin optimization results in a more structured and discriminative feature geometry. Extensive experiments on multiple challenging benchmarks demonstrate that DQM-Face consistently outperforms state-of-the-art face recognition methods. Moreover, we show that the quality learned for margin optimization is highly effective for face image quality assessment within the proposed framework, demonstrating that the learned quality signal is intrinsically aligned with the recognition objective. The code is publicly available: https://github.com/RAIB-group/DQM-Face

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2609.02644")
get_code_for_paper("2609.02644")
have("2609.02644")

Connect an agent — have() is free.