Skip to content

AngeloUNIMI/PalmNet

Repository files navigation

🌴 PalmNet

Gabor-PCA Convolutional Networks for Touchless Palmprint Recognition

MATLAB License: GPL v3 Paper Project Page

Source code for the IEEE TIFS 2019 paper
PalmNet: Gabor-PCA Convolutional Networks for Touchless Palmprint Recognition


🧠 Overview

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.


πŸ“Œ Pipeline

PalmNet outline

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

πŸ“ Repository Structure

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

πŸš€ Getting Started

1. Clone the repository

git clone https://github.com/AngeloUNIMI/PalmNet.git
cd PalmNet

2. Prepare the dataset

Place 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:

  • NNNN is the 4-digit individual ID
  • SSSS is the 4-digit sample ID
  • ext is the image extension

Example:

0001_0001.bmp

In the original experiments, left and right palms of the same person are treated as different individuals.

3. Configure parameters

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 '/'];

4. Run PalmNet

Open MATLAB and run:

launch_PalmNet

Results are saved under:

./Results/<dataset_name>/

πŸ“Š Output

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.


πŸ§ͺ Datasets

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

πŸ“š Related Code and Dependencies

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/


πŸ“– Paper

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

πŸ› Authors

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


πŸ“„ License

This project is released under the GNU General Public License v3.0.

See the LICENSE file for details.

About

Source code for the 2019 IEEE TIFS paper "PalmNet: Gabor-PCA Convolutional Networks for Touchless Palmprint Recognition"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors