User’s Guide

This package contains the access API and descriptions for the Polarimetric Thermal Database. It only contains the Bob accessor methods to use the DB directly from python, with our certified protocols. The actual raw data for the database should be downloaded by requesting the owners of the database.

The Database Interface

The bob.db.pola_thermal.Database complies with the standard biometric verification database as described in bob.db.base, implementing the interface bob.db.base.SQLiteDatabase.

Polarimetric Thermal Database Protocols

In total we provide 11 evaluation protocols (each one split in 5 splits) and they are split in four macro groups. To see all the possible protocols available in this dataset, please run the folowing code.

>>> import bob.db.pola_thermal
>>> print bob.db.pola_thermal.Database().protocols()

For each protocol (and split) the 60 subjects are randomly split in such a way that 25 subjects are used for training and 35 subjects are used for testing ([HU2016]). The next subsections describes each macro group.

VIS-VIS protocol

The VIS-VIS protocol is a baseline for visible light experiments. It uses the neutral expression images (B) for enrolment and expression images (E) for probing. The training set (world) has images from both modalities. To fetch the object files using this protocol use the following piece of code:

>>> import bob.db.pola_thermal
>>> db = bob.db.pola_thermal.Database()
>>> #split_1
>>> train = db.objects(protocol='VIS-VIS-split1', groups='world')
>>> test_enroll = db.objects(protocol='VIS-VIS-split1', groups='dev', purposes="enroll")
>>> test_probe = db.objects(protocol='VIS-VIS-split1', groups='dev', purposes="probe")
>>>

VIS-Overall protocols

The VIS-Overall protocols has heterogeneous comparisons already. It uses VIS neutral expression images (B) for enrolment and, either thermal images (S0) or polarimetric thermal (DoLP) for probing. The training set (world) has images from both modalities.

To fetch the object files using this protocol use the following piece of code:

>>> import bob.db.pola_thermal
>>> db = bob.db.pola_thermal.Database()
>>>
>>> # Thermal split_1
>>> train = db.objects(protocol='VIS-thermal-overall-split1', groups='world')
>>> test_enroll = db.objects(protocol='VIS-thermal-overall-split1', groups='dev', purposes='enroll')
>>> test_probe = db.objects(protocol='VIS-thermal-overall-split1', groups='dev', purposes='probe')
>>>
>>> # Polarimetric Thermal split_1
>>> train = db.objects(protocol='VIS-polarimetric-overall-split1', groups='world')
>>> test_enroll = db.objects(protocol='VIS-polarimetric-overall-split1', groups='dev', purposes='enroll')
>>> test_probe = db.objects(protocol='VIS-polarimetric-overall-split1', groups='dev', purposes='probe')
>>>

VIS-Expression protocols

The VIS-Expression protocols has heterogeneous comparisons. It uses VIS neutral expression images (B) for enrolment. For probing only images where the expression varies (E), either thermal (S0) or polarimetric (DoLP), are used. The training set (world) has images from both modalities and all expressions.

To fetch the object files using this protocol use the following piece of code:

>>> import bob.db.pola_thermal
>>> db = bob.db.pola_thermal.Database()
>>>
>>> # Thermal split_1
>>> train = db.objects(protocol='VIS-thermal-expression-split1', groups='world')
>>> test_enroll = db.objects(protocol='VIS-thermal-expression-split1', groups='dev', purposes='enroll')
>>> test_probe = db.objects(protocol='VIS-thermal-expression-split1', groups='dev', purposes='probe')
>>>
>>> # Polarimetric Thermal split_1
>>> train = db.objects(protocol='VIS-polarimetric-expression-split1', groups='world')
>>> test_enroll = db.objects(protocol='VIS-polarimetric-expression-split1', groups='dev', purposes='enroll')
>>> test_probe = db.objects(protocol='VIS-polarimetric-expression-split1', groups='dev', purposes='probe')
>>>

VIS-Range protocols

The VIS-Expression protocols has heterogeneous comparisons. It uses VIS neutral expression images (B) for enrolment. For probing only images where the different ranges vary (R1, R2 and R3), either thermal (S0) or polarimetric (DoLP), are used. The training set (world) has images from both modalities and ranges.

To fetch the object files using this protocol use the following piece of code:

>>> import bob.db.pola_thermal
>>> db = bob.db.pola_thermal.Database()
>>>
>>> # Thermal - Range 1 - split_1
>>> train = db.objects(protocol='VIS-thermal-R1-split1', groups='world')
>>> test_enroll = db.objects(protocol='VIS-thermal-R1-split1', groups='dev', purposes='enroll')
>>> test_probe = db.objects(protocol='VIS-thermal-R1-split1', groups='dev', purposes='probe')
>>>
>>> # Polarimetric - Range 1 - split_1
>>> train = db.objects(protocol='VIS-polarimetric-R1-split1', groups='world')
>>> test_enroll = db.objects(protocol='VIS-polarimetric-R1-split1', groups='dev', purposes='enroll')
>>> test_probe = db.objects(protocol='VIS-polarimetric-R1-split1', groups='dev', purposes='probe')
>>>