Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
bob.bio.vein
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
bob
bob.bio.vein
Commits
ebdd8959
Commit
ebdd8959
authored
7 years ago
by
André Anjos
Committed by
André Anjos
7 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Simplify baseline, Add watershed NN training
parent
e8e89d37
No related branches found
No related tags found
1 merge request
!35
3DFV and multiple fixes
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
doc/baselines.rst
+68
-27
68 additions, 27 deletions
doc/baselines.rst
doc/links.rst
+1
-0
1 addition, 0 deletions
doc/links.rst
with
69 additions
and
27 deletions
doc/baselines.rst
+
68
−
27
View file @
ebdd8959
...
@@ -53,7 +53,7 @@ is available on the section :ref:`bob.bio.vein.resources`.
...
@@ -53,7 +53,7 @@ is available on the section :ref:`bob.bio.vein.resources`.
instructions described in this guide. You **need first** to procure yourself
instructions described in this guide. You **need first** to procure yourself
the raw data files that correspond to *each* database used here in order to
the raw data files that correspond to *each* database used here in order to
correctly run experiments with those data. Biometric data is considered
correctly run experiments with those data. Biometric data is considered
private dat
e
and, under EU regulations, cannot be distributed without a
private dat
a
and, under EU regulations, cannot be distributed without a
consent or license. You may consult our
consent or license. You may consult our
:ref:`bob.bio.vein.resources.databases` resources section for checking
:ref:`bob.bio.vein.resources.databases` resources section for checking
currently supported databases and accessing download links for the raw data
currently supported databases and accessing download links for the raw data
...
@@ -227,34 +227,28 @@ This package may generate results for other combinations of protocols and
...
@@ -227,34 +227,28 @@ This package may generate results for other combinations of protocols and
databases. Here is a summary table for some variants (results expressed
databases. Here is a summary table for some variants (results expressed
correspond to the the equal-error rate on the development set, in percentage):
correspond to the the equal-error rate on the development set, in percentage):
======================== ================= ====== ====== ====== ====== ======
======================== ====== ====== ====== ====== ======
Approach Vera Finger UTFVP
Toolchain Vera Finger UTFVP
------------------------------------------ -------------------- -------------
------------------------ -------------------- -------------
Feature Extractor Post Processing Full B Nom 1vsall nom
Feature Extractor Full B Nom 1vsall nom
======================== ================= ====== ====== ====== ====== ======
======================== ====== ====== ====== ====== ======
Repeated Line Tracking None 23.9 24.1 24.9 1.7 1.4
Repeated Line Tracking 23.9 24.1 24.9 1.7 1.4
Repeated Line Tracking Histogram Eq. 26.2 23.6 24.9 2.1 0.9
Wide Line Detector 10.2 10.2 10.5 2.3 1.7
Maximum Curvature None 3.2 3.2 3.1 0.4 0.
Maximum Curvature 3.2 3.2 3.1 0.4 0.
Maximum Curvature Histogram Eq. 3.0 2.7 2.7 0.4 0.
======================== ====== ====== ====== ====== ======
Wide Line Detector None 10.2 10.2 10.5 2.3 1.7
Wide Line Detector Histogram Eq. 8.0 9.7 7.3 1.7 0.9
======================== ================= ====== ====== ====== ====== ======
In a machine with 48 cores, running these baselines took the following time
In a machine with 48 cores, running these baselines took the following time
(hh:mm):
(hh:mm):
======================== ================= ====== ====== ====== ====== ======
======================== ====== ====== ====== ====== ======
Approach Vera Finger UTFVP
Toolchain Vera Finger UTFVP
------------------------------------------ -------------------- -------------
------------------------ -------------------- -------------
Feature Extractor Post Processing Full B Nom 1vsall nom
Feature Extractor Full B Nom 1vsall nom
======================== ================= ====== ====== ====== ====== ======
======================== ====== ====== ====== ====== ======
Repeated Line Tracking None 01:16 00:23 00:23 12:44 00:35
Repeated Line Tracking 01:16 00:23 00:23 12:44 00:35
Repeated Line Tracking Histogram Eq. 00:50 00:23 00:23 13:00 00:35
Wide Line Detector 00:07 00:01 00:01 02:25 00:05
Maximum Curvature None 03:28 00:54 00:59 58:34 01:48
Maximum Curvature 03:28 00:54 00:59 58:34 01:48
Maximum Curvature Histogram Eq. 02:45 00:54 00:59 49:03 01:49
======================== ====== ====== ====== ====== ======
Wide Line Detector None 00:07 00:01 00:01 02:25 00:05
Wide Line Detector Histogram Eq. 00:04 00:01 00:01 02:04 00:06
======================== ================= ====== ====== ====== ====== ======
Modifying Baseline Experiments
Modifying Baseline Experiments
...
@@ -326,6 +320,49 @@ This package contains other resources that can be used to evaluate different
...
@@ -326,6 +320,49 @@ This package contains other resources that can be used to evaluate different
bits of the vein processing toolchain.
bits of the vein processing toolchain.
Training the Watershed Finger region detector
=============================================
The correct detection of the finger boundaries is an important step of many
algorithms for the recognition of finger veins. It allows to compensate for
eventual rotation and scaling issues one might find when comparing models and
probes. In this package, we propose a novel finger boundary detector based on
the `Watershedding Morphological Algorithm
<https://en.wikipedia.org/wiki/Watershed_(image_processing)>`. Watershedding
works in three steps:
1. Determine markers on the original image indicating the types of areas one
would like to detect (e.g. "finger" or "background")
2. Determine a 2D (gray-scale) surface representing the original image in which
darker spots (representing valleys) are more likely to be filled by
surrounding markers. This is normally achieved by filtering the image with a
high-pass filter like Sobel or using an edge detector such as Canny.
3. Run the watershed algorithm
In order to determine markers for step 1, we train a neural network which
outputs the likelihood of a point being part of a finger, given its coordinates
and values of surrounding pixels.
When used to run an experiment,
:py:class:`bob.bio.vein.preprocessor.WatershedMask` requires you provide a
*pre-trained* neural network model that presets the markers before
watershedding takes place. In order to create one, you can run the program
`markdet.py`:
.. code-block:: sh
$ markdet.py --hidden=20 --samples=500 fv3d central dev
You input, as arguments to this application, the database, protocol and subset
name you wish to use for training the network. The data is loaded observing a
total maximum number of samples from the dataset (passed with ``--samples=N``),
the network is trained and recorded into an HDF5 file (by default, the file is
called ``model.hdf5``, but the name can be changed with the option
``--model=``). Once you have a model, you can use the preprocessor mask by
constructing an object and attaching it to the
:py:class:`bob.bio.vein.preprocessor.Preprocessor` entry on your configuration.
Region of Interest Goodness of Fit
Region of Interest Goodness of Fit
==================================
==================================
...
@@ -358,13 +395,17 @@ mask
...
@@ -358,13 +395,17 @@ mask
can use the option ``-n 5`` to print the 5 worst cases according to each of the
can use the option ``-n 5`` to print the 5 worst cases according to each of the
metrics.
metrics.
Pipeline Display
================
You can use the program ``view_sample.py`` to display the images after
You can use the program ``view_sample.py`` to display the images after
full processing using:
full processing using:
.. code-block:: sh
.. code-block:: sh
$ ./bin/view_sample.py
/path/to/
verafinger
/database
/path/to/
bob-bio-vein/output/for/toolchain 030-M/030_L_1 -s output-directory
$ ./bin/view_sample.py
--save=output-dir
verafinger /path/to/
processed/directory 030-M/030_L_1
$ # open output-dir
ectory
$ # open output-dir
And you should be able to view images like these (example taken from the Vera
And you should be able to view images like these (example taken from the Vera
fingervein database, using the automatic annotator and Maximum Curvature
fingervein database, using the automatic annotator and Maximum Curvature
...
...
This diff is collapsed.
Click to expand it.
doc/links.rst
+
1
−
0
View file @
ebdd8959
...
@@ -20,3 +20,4 @@
...
@@ -20,3 +20,4 @@
.. _mailing list: https://www.idiap.ch/software/bob/discuss
.. _mailing list: https://www.idiap.ch/software/bob/discuss
.. _bob.bio.base: https://pypi.python.org/pypi/bob.bio.base
.. _bob.bio.base: https://pypi.python.org/pypi/bob.bio.base
.. _jaccard index: https://en.wikipedia.org/wiki/Jaccard_index
.. _jaccard index: https://en.wikipedia.org/wiki/Jaccard_index
.. _watershed:
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment