Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

🤝 FusionNet

Touchless Palmprint and Finger Texture Recognition with Deep Learning Feature Fusion

MATLABLicense: GPL v3PaperProject PageDemo

Source code for the IEEE CIVEMSA 2019 paper
Touchless palmprint and finger texture recognition: A Deep Learning fusion approach


🧠 Overview

FusionNet is a MATLAB implementation of a touchless biometric recognition pipeline that combines two complementary hand traits acquired from the same palmar image:

  • Palmprint
  • Inner Finger Texture (IFT)

The method extracts multiple Regions of Interest (ROIs), trains the same deep learning topology on each biometric trait, and performs feature-level fusion to improve recognition performance without requiring additional acquisitions.


✨ Key Ideas

  • 🖐️ Single touchless hand acquisition
  • 🌴 Palmprint ROI extraction
  • ☝️ Inner Finger Texture ROI extraction
  • 🧬 Deep feature extraction with a PCANet-inspired architecture
  • 🔗 Feature-level fusion across palm and finger texture representations
  • 📊 Biometric evaluation for touchless and less-constrained recognition

📌 Pipeline

FusionNet outline

Touchless hand image
│
▼
Database processing
│
▼
Palmprint and IFT ROI extraction
│
├───────────────┬───────────────┬───────────────┐
▼ ▼ ▼ ▼
Palmprint ROI IFT-1 ROI IFT-2 ROI IFT-n ROI
│ │ │ │
▼ ▼ ▼ ▼
Deep feature Deep feature Deep feature Deep feature
extraction extraction extraction extraction
│ │ │ │
└───────────────┴───────────────┴───────────────┘
│
▼
Feature-level fusion
│
▼
Matching and evaluation

📁 Repository Structure

FusionNet/
│
├── main_FusionNet.m # Main script
├── README.md # Project documentation
├── LICENSE # GPL-3.0 license
│
├── (0) Common functions/ # Shared utility functions
├── (A) Process DB files/ # Dataset loading and preprocessing
├── (B) ROI extraction/ # Palmprint and finger texture ROI extraction
├── (C) PCANet_featureFusion/ # Deep feature extraction and fusion routines
│
└── images/
├── outline.png # Pipeline illustration
└── DB Fusion Palm-Knuckle (orig)/
└── REST_hand_database/ # Expected REST dataset location

🚀 Getting Started

1. Clone the repository

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

2. Prepare the REST hand database

Download the REST hand database from the official provider and place it in:

./images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/

The expected folder structure is:

images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p1
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p2
images/DB Fusion Palm-Knuckle (orig)/REST_hand_database/p3
...

Each pX folder should contain the corresponding hand images for that subject.

3. Run FusionNet

Open MATLAB, move to the repository folder, and run:

main_FusionNet

📊 Output

FusionNet performs the main stages required for touchless palmprint and finger texture fusion:

StageDescription
Database processingReads and organizes REST hand images
ROI extractionExtracts palmprint and Inner Finger Texture regions
Feature extractionComputes deep features using the PCANet-inspired pipeline
FusionCombines palmprint and IFT information at feature level
EvaluationComputes biometric recognition performance

🧪 Dataset

The experiments are based on the REST hand database:

DatasetLink
REST Hand Databasehttp://www.regim.org/publications/databases/regim-sfax-tunisian-hand-database2016-rest2016/

🖥️ Demo Version

A demonstration version of FusionNet for webcam-based touchless palmprint and finger texture recognition is available here:

https://github.com/AngeloUNIMI/Demo_FusionNet

📚 Related Code and Dependencies

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

@InProceedings{civemsa19,
author = {A. Genovese and V. Piuri and F. Scotti and S. Vishwakarma},
title = {Touchless palmprint and finger texture recognition: A Deep Learning fusion approach},
booktitle = {Proc. of the 2019 IEEE Int. Conf. on Computational Intelligence and Virtual Environments for Measurement Systems and Applications (CIVEMSA 2019)},
address = {Tianjin, China},
month = {June},
day = {14--16},
year = {2019},
pages = {1--6},
doi = {10.1109/CIVEMSA45640.2019.9071620},
isbn = {978-1-5386-8344-6}
}

Paper:

https://ieeexplore.ieee.org/document/9071620

Project page:

http://iebil.di.unimi.it/fusionnet/index.htm

👥 Authors

  • Angelo Genovese
  • Vincenzo Piuri
  • Fabio Scotti
  • Sarvesh Vishwakarma

📄 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 CIVEMSA paper "Touchless palmprint and finger texture recognition: A Deep Learning fusion approach"

Topics

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages