User’s Guide¶
Reproduction of the Figure 1¶
The Figure 1 in the paper presents a plot explaining the intuition of the ISV. To reproduce this plot run the following command:
$ ./bin/ISV_intuition.py
An output file called ISV_intuition.pdf will be generated.
Reproduction of the Figures 3 and 4¶
There are two ways to reproduce the Figures 3 and 4, either generate the plots directly from the pre-computed score files or execute every single experiment from scratch.
Generate the plots from the pre-computed scores¶
This is the fastest way to do it and you can generate the plots via the 4 commands bellow:
$ cd ./bob.paper.CVPRW_2016 #Moving to the package directory
$ wget http://www.idiap.ch/resource/biometric/data/CVPRW_2016.tar.gz #Downloading the scores
$ tar -xzvf CVPRW_2016.tar.gz
$ ./bin/generate_plot_results.py
Generate the plots from scratch¶
Warning
This is the slowest way to do it and can take several days (specially for the CBSR NIR-VIS-2.0 database). This paper is a result of 175 experiments.
To run the experiments using the CUHK_CUFS, please, run variations following base command:
$ ./bin/verify.py \
--database "bob.bio.base.database.DatabaseBobZT(bob.db.cuhk_cufs.Database(original_directory = '[CUFS_DATABASE_DIR]', arface_directory='[ARFACE_DATABASE_DIR]', xm2vts_directory='[XM2VTS_DATABASE_DIR]', original_extension = ['.jpg','.JPG','.ppm']), name='cuhk-cufs')" \
--preprocessor face-crop-eyes \
--extractor dct-blocks \
--imports bob.db.cuhk_cufs bob.bio.base bob.bio.gmm \
--temp-directory [INTERMEDIATE_FILE_DIRECTORY] \
--result-directory [SCORES_DIRECTORY] \
-vv \
--groups dev \
--protocol [DATABASE_PROTOCOL] \
--algorithm "bob.bio.gmm.algorithm.ISV(subspace_dimension_of_u = [RANK_U], number_of_gaussians = [GAUSSIAN_COMPONENTS], gmm_training_iterations = 10, update_weights = False,update_variances = False)" \
--sub-directory [DATABASE_PROTOCOL]/ISV_nofilter/g[GAUSSIAN_COMPONENTS]_u[RANK_U]
- Where
- [CUFS_DATABASE_DIR]: The directory of the CUHK-CUFS dataset
- [ARFACE_DATABASE_DIR]: The directory of the ARFACE dataset (in order to get the ARFACE VIS images)
- [XM2VTS_DATABASE_DIR]: The directory of the XM2VTS dataset (in order to get the XM2VTS VIS images)
- [INTERMEDIATE_FILE_DIRECTORY]: The directory for the intermediate files (features, models, etc...)
- [SCORES_DIRECTORY]: The directory for the scores
- [DATABASE_PROTOCOL]: The database protocol [search_split1_p2s, search_split2_p2s, search_split3_p2s, search_split4_p2s, search_split5_p2s]
- [RANK_U]: The rank of U. Specially for this paper was tested [200, 160, 100, 50, 10]
- [GAUSSIAN_COMPONENTS]: Number of Gaussian components. Specially for this paper was tested [1024, 512, 256, 128, 64]
To run the experiments using the CBSR NIR-VIS-2.0, please, run variations following base command:
$ ./bin/verify.py \
--database "bob.bio.base.database.DatabaseBob(bob.db.cbsr_nir_vis_2.Database(original_directory = '[CBSR_DATABASE_DIR]', original_extension=['.bmp','.jpg'], annotation_directory='[ANNOTATIONS_DATABASE_DIR]'), name='cbsr_nir_vis_2')" \
--preprocessor face-crop-eyes \
--extractor dct-blocks \
--imports bob.db.cuhk_cufs bob.bio.base bob.bio.gmm \
--temp-directory [INTERMEDIATE_FILE_DIRECTORY] \
--result-directory [SCORES_DIRECTORY] \
-vv \
--groups dev \
--protocol [DATABASE_PROTOCOL] \
--algorithm "bob.bio.gmm.algorithm.ISV(subspace_dimension_of_u = [RANK_U], number_of_gaussians = [GAUSSIAN_COMPONENTS], gmm_training_iterations = 10, update_weights = False,update_variances = False)" \
--sub-directory [DATABASE_PROTOCOL]/ISV_nofilter/g[GAUSSIAN_COMPONENTS]_u[RANK_U]
- Where
- [CBSR_DATABASE_DIR]: The directory of the CBSR NIR-VIS-2.0 dataset
- [ANNOTATIONS_DATABASE_DIR]: The directory of the annotations CBSR NIR-VIS-2.0 dataset
- [INTERMEDIATE_FILE_DIRECTORY]: The directory for the intermediate files (features, models, etc...)
- [SCORES_DIRECTORY]: The directory for the scores
- [DATABASE_PROTOCOL]: The database protocol [search_split1_p2s, search_split2_p2s, search_split3_p2s, search_split4_p2s, search_split5_p2s]
- [RANK_U]: The rank of U. Specially for this paper was tested [200, 160, 100, 50, 10]
- [GAUSSIAN_COMPONENTS]: Number of Gaussian components. Specially for this paper was tested [1024, 512, 256, 128, 64]
Once you have all the scores generated from this sequence of experiments, you can ran the command bellow to generate the plots:
$ ./bin/generate_plot_results.py