OpenVeinNet: Robust Open-Set Finger Vein Verification with Dynamic Snake Convolution and Graph Learning
Organizations: SAFE Centre, Department of Information Security and Communication Technology (IIK), Norwegian University of Science and Technology (NTNU), Gjøvik, Norway.
Abstract
Finger vein verification is a promising biometric modality for secure authentication because vascular patterns are internal, difficult to observe externally, and relatively resistant to presentation attacks. However, reliable verification remains challenging in open-set settings, where test identities are unseen during training and non-enrolled probes must be rejected at inference. This paper presents OpenVeinNet, a finger vein verification framework designed for cross-dataset and open-set evaluation. The proposed model combines Dynamic Snake Convolution with graph-based feature modelling. Dynamic Snake Convolution extracts local curvilinear and tubular vein structures using adaptive sampling, while the graph convolutional backbone models long-range topological relationships between vein regions. To improve the discriminative quality of the embedding space, we introduce a Centroid Angular Hybrid Loss, which jointly encourages intra-class compactness and inter-class angular separation for cosinesimilaritybased verification. Experiments are conducted on five public finger vein datasets: FV-300, MMCBNU, FV-USM, PolyU, and VERA. The method is evaluated using leaveonedatasetout training under both enrolmentbased unknownrejection and fullsubject verification protocols, and is compared with handcrafted and recent deep learning-based baselines. The results show that OpenVeinNet achieves strong cross-dataset generalisation, consistently low equal error rates, and competitive true accept rates at fixed false accept rate operating points. Ablation studies further confirm the individual and combined contributions of adaptive tubular feature extraction, graph-based relational modelling, and the proposed loss function. These findings indicate that explicitly modelling local vein geometry, global vascular relationships, and angularly compact embeddings is effective for openset finger vein verification.
Figures & tables
| Authors (Year) | Technique Description |
|---|---|
| Huafeng Qin et al., [ 1 ] (2015) | 3 Sequential convolution layers and 2 dense layers |
| Itqan et al., [ 2 ] (2016) | 3 Sequential convolution layers and 1 dense layers |
| Syafeeza Radzi et al., [ 3 ] (2016) | 2 Sequential convolution layers |
| Huafeng Qin et al., [ 4 ] (2017) | 4 Sequential convolution layers with path-based training. |
| Hyung Gil Hong et al., [ 5 ] (2017) | 12 Sequential convolution layers and 3 dense layers |
| Rig Das et al., [ 6 ] (2018) | 5 Sequential convolution layers |
| Component | Layer | Output Dimensions |
|---|---|---|
| Input | - | 224,224,3 |
| DSC module 1 (S=2, F=3) | (112,112,16) | |
| Stem | DSC module 2 (S=2, F=3) | (56,56,32) |
| DSC module 3 (S=2, F=3) | (28,28,64) | |
| Stage I (K=18, S=2, F=3) | (14,14,128) | |
| Backbone | Stage II (K=9, S=2, F=3) | (7,7,256) |
| Dataset | Classes | Images per identity | Total Images |
|---|---|---|---|
| FV-300 (A) [ 31 ] | 300 | 92* | 27,600* |
| MMCBNU (B) [ 44 ] | 600 | 10 | 6,000 |
| FV-USM (C) [ 45 ] | 492 | 12 | 5,904 |
| PolyU (D) [ 46 ] | 218 | 4 | 872 |
| VERA (E) [ 47 ] | 220 | 2 | 440 |
| Dataset | Genuine Scores | Impostor Scores | ||
| Half | Full | Half | Full | |
| FV-300 (A) [ 31 ] | 598,279 | 1,198,364 | 181,709,824 | 362,208,956 |
| MMCBNU (B) [ 44 ] | 13,500 | 27,000 | 9,000,000 | 17,970,000 |
| FV-USM (C) [ 45 ] | 16,236 | 32,472 | 8,714,304 | 17,393,184 |
| PolyU (D) [ 46 ] | 1,562 | 3,107 | 405,765 | 807,794 |
| VERA (E) [ 47 ] | 110 | 220 | 48,400 | 96,360 |
| Dataset | Algorithm | AUC (%) | EER (%) | TAR@FAR (%) | TAR@FAR (%) | TAR@FAR (%) |
| MCP [ 35 ] | 99.80 | 0.89 | 40.19 | 99.47 | 100.00 | |
| RLT [ 36 ] | 99.78 | 0.95 | 30.00 | 99.24 | 100.00 | |
| WLD [ 37 ] | 99.82 | 0.84 | 43.82 | 99.59 | 100.00 | |
| ArcVein [ 17 ] | 89.39 (82.64–96.14) | 19.49 (11.45–27.54) | 6.67 (0.00–16.88) | 22.81 (2.86–42.77) | 61.22 (35.63–86.81) | |
| LGFIN [ 34 ] | 85.52 (83.95–87.08) | 23.35 (22.54–24.15) | 4.23 (0.00–8.51) | 15.12 (6.50–23.74) | 50.09 (41.24–58.95) | |
| FV-ViT [ 30 ] | 89.72 (88.31–91.13) | 17.74 (16.16–19.33) | 0.95 (0.00–2.12) | 6.34 (3.56–9.12) | 58.68 (51.23–66.13) |
| Dataset | Algorithm | AUC (%) | EER (%) | TAR@FAR (%) | TAR@FAR (%) | TAR@FAR (%) |
| MCP [ 35 ] | 99.80 | 0.89 | 40.19 | 99.47 | 100.00 | |
| RLT [ 36 ] | 99.78 | 0.95 | 30.00 | 99.24 | 100.00 | |
| WLD [ 37 ] | 99.82 | 0.84 | 43.82 | 99.59 | 100.00 | |
| ArcVein [ 17 ] | 89.77 (83.13–96.42) | 19.38 (10.81–27.95) | 6.63 (1.15–12.10) | 24.80 (5.88–43.72) | 63.72 (39.50–87.95) | |
| LGFIN [ 34 ] | 85.65 (84.32–86.99) | 23.01 (22.30–23.72) | 3.28 (1.06–5.50) | 14.68 (6.02–23.35) | 50.09 (42.60–57.59) | |
| FV-ViT [ 30 ] | 89.87 (88.51–91.23) | 17.37 (15.84–18.89) | 1.04 (0.00–2.11) | 6.70 (3.57–9.84) | 59.09 (51.73–66.46) |
| Dataset | Gradient | Grad. Coherence | Laplacian | Contrast | Images/class |
|---|---|---|---|---|---|
| FV-300 (A) [ 31 ] | 0.0687 | 0.3675 | 0.0609 | 0.0311 | 89.57 |
| MMCBNU (B) [ 44 ] | 0.0781 | 0.5398 | 0.0026 | 0.0392 | 10.00 |
| FV-USM (C) [ 45 ] | 0.0312 | 0.2928 | 0.0009 | 0.0137 | 12.00 |
| PolyU (D) [ 46 ] | 0.0478 | 0.4605 | 0.0017 | 0.0249 | 5.84 |
| VERA (E) [ 47 ] | 0.0476 | 0.1429 | 0.0074 | 0.0196 | 2.00 |
| Kernel set | EER (%) |
|---|---|
| (3, 3, 3) | 12.3351 |
| (5, 5, 5) | 12.4453 |
| (7, 7, 7) | 11.8358 |
| (9, 9, 9) | 11.8376 |
| (9, 7, 5) | 11.0605 |
| (7, 5, 3) | 13.0697 |
| Loss Function | EER (%) |
|---|---|
| MSE | 26.68 |
| NLL | 33.98 |
| Proposed CAH Loss | 7.44 |
| Stage I | Stage II | EER (%) |
|---|---|---|
| 9 | 9 | 10.37 |
| 9 | 18 | 9.42 |
| 18 | 18 | 10.48 |
| 18 | 9 (proposed) | 7.44 |
| Loss Function | Mean EER (%) |
|---|---|
| ArcFace [ 48 ] | 7.83 |
| MagFace [ 49 ] | 8.20 |
| AdaFace [ 50 ] | 8.22 |
| Proposed CAH Loss | 7.44 |
| EER (%) | |
|---|---|
| 0.1 | 9.07 |
| 0.3 (default) | 7.44 |
| 0.5 | 10.60 |
| 0.9 | 11.57 |
| Variant | Mean EER (%) |
|---|---|
| Standard stem + no graph | 13.59 |
| DSConv stem + no graph | 10.96 |
| Standard stem + graph backbone | 11.64 |
| Full model (DSConv + graph backbone) | 7.44 |
| Method | Params (M) | FLOPs (G) | CPU Lat. (ms) | CPU Thr. (img/s) | GPU Lat. (ms) | GPU Thr. (img/s) |
|---|---|---|---|---|---|---|
| ArcVein [ 17 ] | 7.83 | 2.45 | 7.09 | 141.10 | 0.94 | 1067.42 |
| LGFIN [ 34 ] | 6.79 | 7.51 | 45.48 | 21.99 | 3.84 | 260.42 |
| FV-ViT [ 30 ] | 0.36 | 0.03 | 5.02 | 199.37 | 1.74 | 574.79 |
| VeinAttNet [ 31 ] | 0.09 | n/a | 11.24 | 88.96 | 10.63 | 94.08 |
| Proposed Method | 4.76 | 5.07 | 55.82 | 17.92 | 13.00 | 76.94 |
| Comparison | Mean EER (pp) | Holm-adjusted | Wilcoxon | Significant | |
|---|---|---|---|---|---|
| Proposed vs ArcVein | 20 | 15.17 | Yes | ||
| Proposed vs LGFIN | 20 | 13.05 | Yes | ||
| Proposed vs FV-ViT | 20 | 13.66 | Yes | ||
| Proposed vs VeinAttNet | 20 | 4.44 | Yes |
| Dataset | Algorithm | AUC (%) | EER (%) | TAR@FAR (%) | TAR@FAR (%) | TAR@FAR (%) |
|---|---|---|---|---|---|---|
| FV-300 | MCP | 99.96 | 0.42 | 95.32 | 100.00 | 100.00 |
| RLT | 99.92 | 0.74 | 78.14 | 99.70 | 100.00 | |
| ArcVein | 96.36 (94.01–98.72) | 11.03 (5.95–16.11) | 54.26 (45.30–63.22) | 67.25 (57.34–77.15) | 89.13 (81.94–96.31) | |
| LGFIN | 99.99 (99.98–100.00) | 0.43 (0.09–0.78) | 98.42 (96.98–99.86) | 99.77 (99.44–100.00) | 100.00 (100.00–100.00) | |
| FV-ViT | 96.55 (95.04–98.06) | 9.60 (7.59–11.61) | 29.05 (7.24–50.86) | 48.83 (28.26–69.40) | 90.48 (85.25–95.70) | |
| VeinAttNet | 99.73 (99.63–99.83) | 2.43 (1.81–3.05) | 63.32 (47.63–79.01) | 93.71 (90.81–96.60) | 99.90 (99.86–99.94) |
| Method | Training setup | Optimizer | LR | Epochs | Batch | Input | Loss |
|---|---|---|---|---|---|---|---|
| MCP / RLT / WLD | Handcrafted pipelines | n/a | n/a | n/a | n/a | Native | No learning |
| ArcVein | Retrained (PyTorch) | SGD (Nesterov 0.9) | ( @30) | 100 | 64 | Arc-cosine + softmax ( ) | |
| LGFIN | Retrained (PyTorch) | AdamW | 50 | 8 | Cross-entropy | ||
| FV-ViT | Retrained (PyTorch) | AdamW | 50 | 64 | Cross-entropy | ||
| VeinAttNet | Retrained (MATLAB) | Adam | 50 | 128 | Softmax classification | ||
| Proposed | Retrained (PyTorch) | AdamW | 150 | 128 | CAH ( ) |
| Dataset | Total IDs | Train / Val. IDs | Train / Val. imgs | Held-out IDs |
|---|---|---|---|---|
| FV-300 | 300 | 240 | 16,536 / 4,954 | 60 |
| MMCBNU | 600 | 480 | 2,400 / 2,400 | 120 |
| FV-USM | 492 | 393 | 2,358 / 2,358 | 99 |