Source code for the IEEE TIFS 2019 paper
PalmNet: Gabor-PCA Convolutional Networks for Touchless Palmprint Recognition
PalmNet is a MATLAB implementation of a palmprint recognition pipeline designed for touchless biometric acquisition.
The method combines:
- Gabor filtering
- PCA-inspired convolutional learning
- Adaptive orientation and frequency analysis
- Feature extraction for verification and identification
- k-NN based classification
PalmNet was proposed for robust recognition in less-constrained palmprint acquisition scenarios.
At a high level, the system performs:
Palmprint images
β
βΌ
Pre-processing / ROI input
β
βΌ
Adaptive Gabor filter learning
β
βΌ
Gabor-PCA feature extraction
β
βΌ
Feature encoding and comparison
β
βββ Verification: EER / FMR1000
β
βββ Identification: k-NN accuracy
PalmNet/
β
βββ launch_PalmNet.m # Main script
βββ params/
β βββ paramsPalmNet.m # Main parameter configuration
β
βββ functions_Biometrics/ # Biometric evaluation utilities
βββ functions_Classifiers/ # Classification functions
βββ functions_DBProc/ # Dataset and label processing
βββ functions_FeatExtr/ # Feature extraction routines
βββ functions_Freq/ # Frequency analysis functions
βββ functions_Gabor/ # Gabor filter learning and processing
βββ functions_Kovesi/ # Peter Kovesi computer vision functions
βββ functions_Orient/ # Orientation analysis functions
βββ histogram_distance/ # Distance metrics
βββ util/ # Utility functions
β
βββ images/
β βββ Tongji_Contactless_Palmprint_Dataset/
β
βββ LICENSE
git clone https://github.com/AngeloUNIMI/PalmNet.git
cd PalmNetPlace palmprint images inside:
./images/<dataset_name>/
By default, the main script expects:
./images/Tongji_Contactless_Palmprint_Dataset/
The expected filename format is:
NNNN_SSSS.ext
where:
NNNNis the 4-digit individual IDSSSSis the 4-digit sample IDextis the image extension
Example:
0001_0001.bmp
In the original experiments, left and right palms of the same person are treated as different individuals.
Edit the main configuration file:
./params/paramsPalmNet.m
You can also adjust dataset settings in launch_PalmNet.m, for example:
ext = 'bmp';
dbname = 'Tongji_Contactless_Palmprint_Dataset';
dirDB = ['./images/' dbname '/'];Open MATLAB and run:
launch_PalmNetResults are saved under:
./Results/<dataset_name>/
PalmNet computes both verification and identification metrics, including:
| Task | Metrics |
|---|---|
| Verification | EER, FMR1000, FPR, FNR |
| Aggregated verification | Aggregated EER and FMR1000 |
| Identification | k-NN classification accuracy |
| Logs | Iteration-wise training/testing information |
Generated .mat files include extracted features, score matrices, labels, and final performance summaries.
The datasets used in the original paper can be obtained from the following providers:
| Dataset | Link |
|---|---|
| CASIA Palmprint Database | http://www.cbsr.ia.ac.cn/english/Palmprint%20Databases.asp |
| IITD Palmprint Database | http://www4.comp.polyu.edu.hk/~csajaykr/IITD/Database_Palm.htm |
| REST Hand Database | http://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/ |
| Tongji Contactless Palmprint Dataset | http://sse.tongji.edu.cn/linzhang/cr3dpalm/cr3dpalm.htm |
For palmprint segmentation and ROI extraction, see:
https://github.com/AngeloUNIMI/PalmSeg
This repository includes or uses code inspired by the following works and libraries:
-
T. Chan, K. Jia, S. Gao, J. Lu, Z. Zeng, and Y. Ma,
βPCANet: A Simple Deep Learning Baseline for Image Classification?β
IEEE Transactions on Image Processing, 2015.
DOI:10.1109/TIP.2015.2475625 -
A. Vedaldi and B. Fulkerson,
βVLFeat: An Open and Portable Library of Computer Vision Algorithmsβ, 2008.
http://www.vlfeat.org/ -
Peter Kovesi,
MATLAB and Octave Functions for Computer Vision and Image Processing.
https://www.peterkovesi.com/matlabfns/
If you use this code, please cite:
@Article{tifs19,
author = {A. Genovese and V. Piuri and K. N. Plataniotis and F. Scotti},
title = {PalmNet: Gabor-PCA Convolutional Networks for Touchless Palmprint Recognition},
journal = {IEEE Transactions on Information Forensics and Security},
year = {2019},
note = {1556-6013}
}Paper:
https://ieeexplore.ieee.org/document/8691498
Project page:
http://iebil.di.unimi.it/palmnet/index.htm
Angelo Genovese
Department of Computer Science
UniversitΓ degli Studi di Milano, Italy
Vincenzo Piuri
Department of Computer Science
UniversitΓ degli Studi di Milano, Italy
Konstantinos N. Plataniotis
Department of Electrical and Computer Engineering
University of Toronto, Canada
Fabio Scotti
Department of Computer Science
UniversitΓ degli Studi di Milano, Italy
This project is released under the GNU General Public License v3.0.
See the LICENSE file for details.
