User GuideΒΆ

Score-level fusion is done (as the name suggests) using the scores generated by a biometric recognition or presentation attack detection (PAD) system. The idea of fusion is to integrate several systems into one macro system that produces one decision for a given biometric sample. For example, a face biometric system and a voice biometric system can be integrated together using score-level fusion to improve the performance of biometric recognition. Another example is to integrate one or several biometric recognition systems with one or several pad systems to improve both the recognition rate and the attack resilience. Fusion can be done between different biometric systems and/or pad systems. You can mix any number of biometric systems and pad systems in this package to do score-level fusion. The scores must comply the format of bob.bio.base and bob.pad.base packages.

The actual fusion can be done in different ways. For example, the simplest approach to score-level fusion is to sum the scores of all systems. The way to do the fusion in this package is by implementing an algorithm class that inherits from bob.fusion.base.algorithm.Algorithm:

You can look into the source code of the bob.fusion.base.script.routine_fusion to see the actual steps that will be run to do score-level fusion in this package.

All the computations are done using the following script:

$ bob fusion fuse --help

What you need is some training data (or a model_file that contains an already trained algorithm) if your algorithm requires training and some scores to test your algorithm on. See the Python API or run bob fusion resource for a list of already available algorithms.

Here is a minimal example to do MEAN fusion (bob.fusion.base.algorithm.Weighted_Sum) on a face recognition system and a face PAD system.

$ bob fusion fuse -a mean face_bio/scores-{world,dev,eval} face_pad/scores-{train,dev,eval}

Finally, you can visualize the decision boundary of your fusion algorithm using bob fusion boundary.