diff --git a/bob/paper/nir_patch_pooling/config/mlfp.py b/bob/paper/nir_patch_pooling/config/mlfp.py new file mode 100644 index 0000000000000000000000000000000000000000..2430f9451fd333c9eae880c3cb83a41df40f2a9a --- /dev/null +++ b/bob/paper/nir_patch_pooling/config/mlfp.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +""" +Database configuration for NIR data from MLFP database for detection of +mask-based presentation attacks +""" + +from bob.paper.nir_patch_pooling.database import MLFPDatabase +from bob.extension import rc + +PROTOCOL = "grandtest" + +database = MLFPDatabase( + protocol=PROTOCOL, + original_directory=rc["bob.db.mlfp.directory"], + original_extension=".hdf5", + annotation_directory=rc["bob.db.mlfp.annotation_directory"], + training_depends_on_protocol=True, + ) + +groups = ["train", "dev"] +protocol = PROTOCOL +#------------------------------------------------------------------------------ + diff --git a/bob/paper/nir_patch_pooling/config/patch_pooling_lr.py b/bob/paper/nir_patch_pooling/config/patch_pooling_lr.py new file mode 100644 index 0000000000000000000000000000000000000000..17f63564bb7146e5955681c4f6e7f0edee53dcd8 --- /dev/null +++ b/bob/paper/nir_patch_pooling/config/patch_pooling_lr.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Configuration file to run PatchPooling + LR classifier for Face PAD +toward detection of mask attacks in NIR. + +""" +#---------------------------------------------------------- + +sub_directory = "pooling_lr" + + +# define preprocessor: + +from bob.pad.face.preprocessor import FaceCropAlign +from bob.bio.video.preprocessor import Wrapper +from bob.bio.video.utils import FrameSelector + +# parameters and constants +FACE_SIZE = 128 +RGB_OUTPUT_FLAG = False +USE_FACE_ALIGNMENT = True +ALIGNMENT_TYPE = "lightcnn" +MAX_IMAGE_SIZE = None +FACE_DETECTION_METHOD = None +MIN_FACE_SIZE = 50 + +_image_preprocessor = FaceCropAlign(face_size=FACE_SIZE, + rgb_output_flag=RGB_OUTPUT_FLAG, + use_face_alignment=USE_FACE_ALIGNMENT, + alignment_type=ALIGNMENT_TYPE, + max_image_size=MAX_IMAGE_SIZE, + face_detection_method=FACE_DETECTION_METHOD, + min_face_size=MIN_FACE_SIZE, + ) + +_frame_selector = FrameSelector(selection_style = "all") + +preprocessor = Wrapper(preprocessor = _image_preprocessor, frame_selector = _frame_selector) + +#---------------------------------------------------------- + +# define extractor: + +from bob.paper.nir_patch_pooling.extractor import PatchPoolingCNN +from bob.bio.video.extractor import Wrapper +from bob.extension import rc +import os + +_model_dir = rc.get("LIGHTCNN9_MODEL_DIRECTORY") +_model_name = "LightCNN_9Layers_checkpoint.pth.tar" +_model_file = os.path.join(_model_dir, _model_name) +if not os.path.exists(_model_file): + print("Error: Could not find the LightCNN-9 model at [{}].\nPlease follow the download instructions from README".format(_model_dir)) + exit(0) + +extractor = Wrapper(PatchPoolingCNN(model_file=_model_file), frame_selector = _frame_selector) + +#---------------------------------------------------------- + +# define algorithm + +from bob.pad.base.algorithm import LogRegr + +C = 1.0 + +algorithm = LogRegr(C=C, frame_level_scores_flag=True) + +#---------------------------------------------------------- + + + + + + + + diff --git a/bob/paper/nir_patch_pooling/config/wmca_mask.py b/bob/paper/nir_patch_pooling/config/wmca_mask.py new file mode 100644 index 0000000000000000000000000000000000000000..0fd95bf12afa023f3ea24ece4f85805c3ca13017 --- /dev/null +++ b/bob/paper/nir_patch_pooling/config/wmca_mask.py @@ -0,0 +1,26 @@ + +""" +Configuration for PAD experiments using NIR channel of WMCA. +This specific protocol/database selects only *mask* attacks and bona-fide +presentations. +""" + +from bob.paper.nir_patch_pooling.database import WMCAMask +from bob.extension import rc + + +PROTOCOL = "grandtest-nir-50" + +database = WMCAMask( + protocol = PROTOCOL, + original_directory = rc["bob.db.wmca_mask.directory"], + annotation_directory = rc["bob.db.wmca_mask.annotation_directory"], + landmark_detect_method = "mtcnn" + ) + + +groups = ["train", "dev", "eval"] +protocol = PROTOCOL +#--- + + diff --git a/bob/paper/nir_patch_pooling/database/lists/grandtest/dev/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/grandtest/dev/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..0e1db045403435ef904b6ae4061d652dc3f7e785 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/grandtest/dev/for_attack.lst @@ -0,0 +1,150 @@ +face-station/07.05.18/002_07_000_2_82 002 siliconemask +face-station/21.02.18/002_03_020_2_13 002 custommask +face-station/22.02.18/002_03_044_2_13 002 custommask +face-station/21.02.18/002_03_000_2_82 002 siliconemask +face-station/02.02.18/002_01_050_2_13 002 custommask +face-station/02.05.18/002_05_003_2_82 002 siliconemask +face-station/30.01.18/002_01_028_2_82 002 siliconemask +face-station/29.01.18/002_01_020_2_13 002 custommask +face-station/06.02.18/002_02_018_2_82 002 siliconemask +face-station/01.05.18/002_06_064_2_13 002 custommask +face-station/04.06.18/002_06_000_2_13 002 custommask +face-station/07.05.18/002_06_000_2_82 002 siliconemask +face-station/14.03.18/002_04_010_2_13 002 custommask +face-station/14.03.18/002_04_010_2_82 002 siliconemask +face-station/09.02.18/002_02_000_2_82 002 siliconemask +face-station/07.02.18/002_02_044_2_82 002 siliconemask +face-station/07.05.18/002_05_000_2_82 002 siliconemask +face-station/15.05.18/002_05_019_2_13 002 custommask +face-station/23.05.18/002_07_073_2_13 002 custommask +face-station/04.06.18/002_05_000_2_13 002 custommask +face-station/04.06.18/002_04_000_2_13 002 custommask +face-station/07.05.18/002_04_000_2_82 002 siliconemask +face-station/14.02.18/002_03_051_2_82 002 siliconemask +face-station/06.02.18/002_02_055_2_13 002 custommask +face-station/04.06.18/002_07_000_2_13 002 custommask +face-station/27.02.18/002_01_000_2_82 002 siliconemask +face-station/19.02.18/002_02_000_2_13 002 custommask +face-station/02.02.18/002_01_056_2_82 002 siliconemask +face-station/21.02.18/002_03_000_2_13 002 custommask +face-station/04.05.18/002_06_004_2_82 002 siliconemask +face-station/27.02.18/002_01_000_2_13 002 custommask +face-station/03.05.18/002_07_064_2_82 002 siliconemask +face-station/01.02.18/016_01_002_2_85 016 siliconemask +face-station/12.02.18/016_03_056_2_85 016 siliconemask +face-station/23.05.18/016_07_068_2_85 016 siliconemask +face-station/04.05.18/016_06_004_2_85 016 siliconemask +face-station/07.02.18/016_03_028_2_85 016 siliconemask +face-station/31.01.18/016_01_033_2_85 016 siliconemask +face-station/27.02.18/016_01_000_2_85 016 siliconemask +face-station/19.02.18/016_02_000_2_85 016 siliconemask +face-station/29.05.18/016_06_000_2_85 016 siliconemask +face-station/29.05.18/016_04_000_2_85 016 siliconemask +face-station/14.03.18/016_04_010_2_85 016 siliconemask +face-station/07.02.18/016_02_045_2_85 016 siliconemask +face-station/29.05.18/016_05_000_2_85 016 siliconemask +face-station/06.02.18/016_02_017_2_85 016 siliconemask +face-station/24.05.18/016_05_012_2_85 016 siliconemask +face-station/22.02.18/016_03_000_2_85 016 siliconemask +face-station/29.05.18/016_07_000_2_85 016 siliconemask +face-station/14.02.18/018_03_018_2_16 018 custommask +face-station/12.06.18/018_07_003_2_16 018 custommask +face-station/29.01.18/018_01_022_2_16 018 custommask +face-station/20.04.18/018_05_066_2_16 018 custommask +face-station/14.03.18/018_04_010_2_16 018 custommask +face-station/04.06.18/018_06_000_2_16 018 custommask +face-station/04.06.18/018_07_000_2_16 018 custommask +face-station/04.06.18/018_05_000_2_16 018 custommask +face-station/24.05.18/018_06_014_2_16 018 custommask +face-station/21.02.18/018_03_000_2_16 018 custommask +face-station/15.02.18/018_03_045_2_16 018 custommask +face-station/27.02.18/018_01_000_2_16 018 custommask +face-station/04.06.18/018_04_000_2_16 018 custommask +face-station/02.02.18/018_01_047_2_16 018 custommask +face-station/09.02.18/018_02_051_2_16 018 custommask +face-station/19.02.18/018_02_000_2_16 018 custommask +face-station/14.02.18/018_03_008_2_16 018 custommask +face-station/02.02.18/018_01_060_2_16 018 custommask +face-station/07.02.18/018_02_056_2_16 018 custommask +face-station/30.05.18/099_06_000_2_09 099 papermask +face-station/29.01.18/099_01_022_2_09 099 papermask +face-station/16.02.18/099_03_043_2_09 099 papermask +face-station/21.02.18/099_03_000_2_09 099 papermask +face-station/27.02.18/099_01_000_2_09 099 papermask +face-station/30.05.18/099_05_000_2_09 099 papermask +face-station/30.05.18/099_07_000_2_09 099 papermask +face-station/02.02.18/099_01_047_2_09 099 papermask +face-station/24.05.18/099_06_073_2_09 099 papermask +face-station/15.02.18/099_03_004_2_09 099 papermask +face-station/14.03.18/099_04_010_2_09 099 papermask +face-station/06.02.18/099_02_018_2_09 099 papermask +face-station/23.04.18/099_07_066_2_09 099 papermask +face-station/19.02.18/099_02_000_2_09 099 papermask +face-station/30.05.18/099_04_000_2_09 099 papermask +face-station/15.05.18/099_05_069_2_09 099 papermask +face-station/07.02.18/099_02_045_2_09 099 papermask +face-station/29.05.18/102_06_000_2_91 102 siliconemask +face-station/06.06.18/102_04_018_2_91 102 siliconemask +face-station/25.06.18/102_05_004_2_91 102 siliconemask +face-station/28.05.18/102_07_000_2_91 102 siliconemask +face-station/23.04.18/102_07_066_2_91 102 siliconemask +face-station/25.06.18/102_06_018_2_91 102 siliconemask +face-station/22.05.18/102_05_068_2_91 102 siliconemask +face-station/24.04.18/102_06_067_2_91 102 siliconemask +face-station/29.05.18/102_04_000_2_91 102 siliconemask +face-station/25.06.18/102_01_006_2_91 102 siliconemask +face-station/25.06.18/102_07_019_2_91 102 siliconemask +face-station/22.06.18/102_01_000_2_91 102 siliconemask +face-station/29.05.18/102_05_000_2_91 102 siliconemask +face-station/25.06.18/104_07_019_2_97 104 siliconemask +face-station/01.05.18/104_05_065_2_97 104 siliconemask +face-station/25.06.18/104_06_018_2_97 104 siliconemask +face-station/25.06.18/104_01_006_2_97 104 siliconemask +face-station/28.05.18/104_06_000_2_97 104 siliconemask +face-station/28.05.18/104_05_000_2_97 104 siliconemask +face-station/28.05.18/104_07_000_2_97 104 siliconemask +face-station/28.05.18/104_04_000_2_97 104 siliconemask +face-station/25.06.18/104_05_004_2_97 104 siliconemask +face-station/04.05.18/104_06_038_2_97 104 siliconemask +face-station/06.06.18/104_04_018_2_97 104 siliconemask +face-station/04.05.18/104_07_003_2_97 104 siliconemask +face-station/22.06.18/104_01_000_2_97 104 siliconemask +face-station/29.05.18/105_05_000_2_94 105 siliconemask +face-station/25.06.18/105_07_019_2_94 105 siliconemask +face-station/25.06.18/105_05_004_2_94 105 siliconemask +face-station/22.06.18/105_01_000_2_94 105 siliconemask +face-station/30.04.18/105_05_064_2_94 105 siliconemask +face-station/16.05.18/105_07_004_2_94 105 siliconemask +face-station/07.05.18/105_06_002_2_94 105 siliconemask +face-station/29.05.18/105_06_000_2_94 105 siliconemask +face-station/25.06.18/105_06_018_2_94 105 siliconemask +face-station/29.05.18/105_04_000_2_94 105 siliconemask +face-station/25.06.18/105_01_006_2_94 105 siliconemask +face-station/06.06.18/105_04_018_2_94 105 siliconemask +face-station/28.05.18/105_07_000_2_94 105 siliconemask +face-station/28.06.18/107_01_000_2_76 107 siliconemask +face-station/28.06.18/107_06_003_2_76 107 siliconemask +face-station/04.07.18/107_05_073_2_76 107 siliconemask +face-station/28.06.18/107_04_000_2_76 107 siliconemask +face-station/28.06.18/107_01_003_2_76 107 siliconemask +face-station/02.07.18/107_07_007_2_76 107 siliconemask +face-station/28.06.18/107_04_007_2_76 107 siliconemask +face-station/28.06.18/107_06_000_2_76 107 siliconemask +face-station/05.07.18/107_07_073_2_76 107 siliconemask +face-station/02.07.18/107_05_064_2_76 107 siliconemask +face-station/03.07.18/107_06_064_2_76 107 siliconemask +face-station/28.06.18/107_07_000_2_76 107 siliconemask +face-station/28.06.18/107_05_000_2_76 107 siliconemask +face-station/02.07.18/110_05_064_2_79 110 siliconemask +face-station/28.06.18/110_04_000_2_79 110 siliconemask +face-station/28.06.18/110_05_000_2_79 110 siliconemask +face-station/05.07.18/110_07_073_2_79 110 siliconemask +face-station/28.06.18/110_07_000_2_79 110 siliconemask +face-station/28.06.18/110_04_007_2_79 110 siliconemask +face-station/04.07.18/110_05_073_2_79 110 siliconemask +face-station/02.07.18/110_07_007_2_79 110 siliconemask +face-station/03.07.18/110_06_064_2_79 110 siliconemask +face-station/28.06.18/110_06_000_2_79 110 siliconemask +face-station/28.06.18/110_06_003_2_79 110 siliconemask +face-station/28.06.18/110_01_003_2_79 110 siliconemask +face-station/28.06.18/110_01_000_2_79 110 siliconemask \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/grandtest/dev/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/grandtest/dev/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..75bdbc97e34c0cd424ba61b34b1f91f388e0ce39 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/grandtest/dev/for_real.lst @@ -0,0 +1,80 @@ +face-station/08.02.18/006_02_000_0_00 006 +face-station/15.02.18/006_03_000_0_00 006 +face-station/22.01.18/006_01_000_0_00 006 +face-station/25.05.18/006_06_000_0_00 006 +face-station/23.05.18/006_07_000_0_00 006 +face-station/15.05.18/006_05_000_0_00 006 +face-station/16.02.18/013_03_000_0_00 013 +face-station/09.02.18/013_02_000_0_00 013 +face-station/24.01.18/013_01_000_0_00 013 +face-station/22.05.18/018_06_000_0_00 018 +face-station/23.05.18/018_07_000_0_00 018 +face-station/15.05.18/018_05_000_0_00 018 +face-station/06.02.18/018_02_000_0_00 018 +face-station/14.02.18/018_03_000_0_00 018 +face-station/18.01.18/018_01_000_0_00 018 +face-station/15.05.18/019_05_000_0_00 019 +face-station/31.01.18/019_01_000_0_00 019 +face-station/14.02.18/019_03_000_0_00 019 +face-station/08.02.18/019_02_000_0_00 019 +face-station/16.05.18/019_07_000_0_00 019 +face-station/23.05.18/019_06_000_0_00 019 +face-station/12.02.18/021_03_000_0_00 021 +face-station/06.02.18/021_02_000_0_00 021 +face-station/29.01.18/021_01_000_0_00 021 +face-station/29.01.18/024_01_000_0_00 024 +face-station/06.02.18/024_02_000_0_00 024 +face-station/21.02.18/024_03_000_0_00 024 +face-station/14.02.18/027_03_000_0_00 027 +face-station/07.02.18/027_02_000_0_00 027 +face-station/30.01.18/027_01_000_0_00 027 +face-station/30.01.18/031_01_000_0_00 031 +face-station/13.02.18/031_03_000_0_00 031 +face-station/13.02.18/031_02_000_0_00 031 +face-station/12.02.18/035_03_000_0_00 035 +face-station/07.02.18/035_02_000_0_00 035 +face-station/31.01.18/035_01_000_0_00 035 +face-station/31.01.18/036_01_000_0_00 036 +face-station/07.02.18/036_02_000_0_00 036 +face-station/13.02.18/036_03_000_0_00 036 +face-station/01.02.18/039_01_000_0_00 039 +face-station/01.02.18/044_01_000_0_00 044 +face-station/07.02.18/044_02_000_0_00 044 +face-station/22.02.18/044_03_000_0_00 044 +face-station/02.02.18/051_01_000_0_00 051 +face-station/14.02.18/051_03_000_0_00 051 +face-station/09.02.18/051_02_000_0_00 051 +face-station/14.02.18/053_03_000_0_00 053 +face-station/08.02.18/053_02_000_0_00 053 +face-station/02.02.18/053_01_000_0_00 053 +face-station/02.02.18/055_01_000_0_00 055 +face-station/13.02.18/055_03_000_0_00 055 +face-station/06.02.18/055_02_000_0_00 055 +face-station/02.02.18/057_01_000_0_00 057 +face-station/02.02.18/060_01_000_0_00 060 +face-station/09.02.18/060_02_000_0_00 060 +face-station/09.02.18/060_03_000_0_00 060 +face-station/27.02.18/063_01_000_0_00 063 +face-station/12.02.18/063_03_000_0_00 063 +face-station/07.02.18/063_02_000_0_00 063 +face-station/30.04.18/064_05_000_0_00 064 +face-station/01.05.18/064_06_000_0_00 064 +face-station/03.05.18/064_07_000_0_00 064 +face-station/24.01.18/011_01_000_0_00 011 +face-station/14.02.18/011_03_000_0_00 011 +face-station/16.02.18/011_02_000_0_00 011 +face-station/22.05.18/068_06_000_0_00 068 +face-station/23.05.18/068_07_000_0_00 068 +face-station/22.05.18/068_05_000_0_00 068 +face-station/17.01.18/003_01_000_0_00 003 +face-station/14.02.18/003_03_000_0_00 003 +face-station/06.02.18/003_02_000_0_00 003 +face-station/02.05.18/003_05_000_0_00 003 +face-station/04.05.18/003_07_000_0_00 003 +face-station/03.05.18/003_06_000_0_00 003 +face-station/29.01.18/020_01_000_0_00 020 +face-station/21.02.18/020_02_000_0_00 020 +face-station/21.02.18/020_03_000_0_00 020 +face-station/02.02.18/052_01_000_0_00 052 +face-station/08.02.18/052_02_000_0_00 052 +face-station/08.02.18/052_03_000_0_00 052 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/grandtest/eval/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/grandtest/eval/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..5337ee2376593524792695635efe213d08965efd --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/grandtest/eval/for_attack.lst @@ -0,0 +1,155 @@ +face-station/02.02.18/001_01_051_2_80 001 siliconemask +face-station/29.05.18/001_07_000_2_80 001 siliconemask +face-station/04.05.18/001_05_071_2_80 001 siliconemask +face-station/14.03.18/001_04_010_2_80 001 siliconemask +face-station/27.02.18/001_01_000_2_80 001 siliconemask +face-station/29.05.18/001_05_000_2_80 001 siliconemask +face-station/23.05.18/001_07_073_2_80 001 siliconemask +face-station/30.01.18/001_01_028_2_80 001 siliconemask +face-station/19.02.18/001_02_000_2_80 001 siliconemask +face-station/14.02.18/001_03_027_2_80 001 siliconemask +face-station/22.02.18/001_03_000_2_80 001 siliconemask +face-station/08.02.18/001_02_038_2_80 001 siliconemask +face-station/08.02.18/001_03_054_2_80 001 siliconemask +face-station/29.05.18/001_06_000_2_80 001 siliconemask +face-station/07.02.18/001_02_008_2_80 001 siliconemask +face-station/29.05.18/001_04_000_2_80 001 siliconemask +face-station/23.05.18/001_06_072_2_80 001 siliconemask +face-station/08.05.18/012_07_002_2_14 012 custommask +face-station/14.03.18/012_04_010_2_14 012 custommask +face-station/27.02.18/012_01_000_2_14 012 custommask +face-station/04.06.18/012_06_000_2_14 012 custommask +face-station/24.01.18/012_01_010_2_14 012 custommask +face-station/29.05.18/012_07_000_2_83 012 siliconemask +face-station/22.02.18/012_03_000_2_83 012 siliconemask +face-station/16.05.18/012_07_070_2_83 012 siliconemask +face-station/06.02.18/012_02_009_2_14 012 custommask +face-station/15.02.18/012_03_001_2_14 012 custommask +face-station/01.02.18/012_01_045_2_83 012 siliconemask +face-station/16.02.18/012_03_013_2_14 012 custommask +face-station/22.05.18/012_06_068_2_14 012 custommask +face-station/26.01.18/012_01_017_2_83 012 siliconemask +face-station/04.06.18/012_04_000_2_14 012 custommask +face-station/14.02.18/012_03_011_2_83 012 siliconemask +face-station/29.05.18/012_06_000_2_83 012 siliconemask +face-station/19.02.18/012_02_000_2_14 012 custommask +face-station/14.02.18/012_03_051_2_14 012 custommask +face-station/20.04.18/012_05_066_2_83 012 siliconemask +face-station/29.05.18/012_05_000_2_83 012 siliconemask +face-station/14.03.18/012_04_010_2_83 012 siliconemask +face-station/02.02.18/012_01_060_2_14 012 custommask +face-station/04.06.18/012_07_000_2_14 012 custommask +face-station/06.02.18/012_02_055_2_83 012 siliconemask +face-station/22.05.18/012_06_018_2_83 012 siliconemask +face-station/29.05.18/012_04_000_2_83 012 siliconemask +face-station/27.02.18/012_01_000_2_83 012 siliconemask +face-station/21.02.18/012_03_000_2_14 012 custommask +face-station/22.05.18/012_05_008_2_14 012 custommask +face-station/01.02.18/012_01_041_2_14 012 custommask +face-station/13.02.18/012_03_031_2_14 012 custommask +face-station/19.02.18/012_02_000_2_83 012 siliconemask +face-station/13.02.18/012_03_042_2_83 012 siliconemask +face-station/04.06.18/012_05_000_2_14 012 custommask +face-station/07.02.18/012_02_035_2_14 012 custommask +face-station/06.02.18/018_02_025_2_86 018 siliconemask +face-station/29.05.18/018_07_000_2_86 018 siliconemask +face-station/19.02.18/018_02_000_2_86 018 siliconemask +face-station/16.05.18/018_07_069_2_86 018 siliconemask +face-station/22.02.18/018_03_000_2_86 018 siliconemask +face-station/29.05.18/018_05_000_2_86 018 siliconemask +face-station/29.05.18/018_04_000_2_86 018 siliconemask +face-station/15.05.18/018_05_007_2_86 018 siliconemask +face-station/14.03.18/018_04_010_2_86 018 siliconemask +face-station/23.01.18/018_01_009_2_86 018 siliconemask +face-station/24.05.18/018_06_008_2_86 018 siliconemask +face-station/29.05.18/018_06_000_2_86 018 siliconemask +face-station/07.02.18/018_02_059_2_86 018 siliconemask +face-station/01.02.18/018_01_041_2_86 018 siliconemask +face-station/27.02.18/018_01_000_2_86 018 siliconemask +face-station/14.02.18/018_03_038_2_86 018 siliconemask +face-station/14.03.18/019_04_010_2_17 019 custommask +face-station/27.02.18/019_01_000_2_17 019 custommask +face-station/21.02.18/019_03_000_2_17 019 custommask +face-station/18.01.18/019_01_005_2_17 019 custommask +face-station/04.06.18/019_05_000_2_17 019 custommask +face-station/04.06.18/019_07_000_2_17 019 custommask +face-station/04.06.18/019_06_000_2_17 019 custommask +face-station/19.02.18/019_02_000_2_17 019 custommask +face-station/07.05.18/019_06_070_2_17 019 custommask +face-station/04.06.18/019_04_000_2_17 019 custommask +face-station/12.02.18/019_03_025_2_17 019 custommask +face-station/02.05.18/019_05_003_2_17 019 custommask +face-station/23.05.18/019_07_018_2_17 019 custommask +face-station/02.02.18/019_01_061_2_17 019 custommask +face-station/06.02.18/019_02_025_2_17 019 custommask +face-station/31.01.18/019_01_036_2_17 019 custommask +face-station/22.05.18/100_05_068_2_10 100 papermask +face-station/30.05.18/100_04_000_2_10 100 papermask +face-station/30.05.18/100_07_000_2_10 100 papermask +face-station/09.02.18/100_03_060_2_10 100 papermask +face-station/16.05.18/100_07_069_2_10 100 papermask +face-station/21.02.18/100_03_000_2_10 100 papermask +face-station/08.02.18/100_02_054_2_10 100 papermask +face-station/30.05.18/100_06_000_2_10 100 papermask +face-station/08.02.18/100_02_019_2_10 100 papermask +face-station/30.05.18/100_05_000_2_10 100 papermask +face-station/01.02.18/100_01_042_2_10 100 papermask +face-station/19.02.18/100_02_000_2_10 100 papermask +face-station/27.02.18/100_01_000_2_10 100 papermask +face-station/14.03.18/100_04_010_2_10 100 papermask +face-station/03.05.18/100_06_003_2_10 100 papermask +face-station/14.02.18/100_03_061_2_10 100 papermask +face-station/12.02.18/100_03_015_2_10 100 papermask +face-station/30.01.18/100_01_027_2_10 100 papermask +face-station/06.06.18/103_04_018_2_92 103 siliconemask +face-station/22.06.18/103_01_000_2_92 103 siliconemask +face-station/25.06.18/103_05_004_2_92 103 siliconemask +face-station/29.05.18/103_06_000_2_92 103 siliconemask +face-station/07.05.18/103_06_002_2_92 103 siliconemask +face-station/25.06.18/103_07_019_2_92 103 siliconemask +face-station/25.06.18/103_01_006_2_92 103 siliconemask +face-station/16.05.18/103_07_004_2_92 103 siliconemask +face-station/28.05.18/103_07_000_2_92 103 siliconemask +face-station/25.06.18/103_06_018_2_92 103 siliconemask +face-station/30.04.18/103_05_064_2_92 103 siliconemask +face-station/29.05.18/103_04_000_2_92 103 siliconemask +face-station/29.05.18/103_05_000_2_92 103 siliconemask +face-station/25.06.18/105_07_019_2_98 105 siliconemask +face-station/04.05.18/105_07_003_2_98 105 siliconemask +face-station/06.06.18/105_04_018_2_98 105 siliconemask +face-station/04.05.18/105_06_038_2_98 105 siliconemask +face-station/25.06.18/105_05_004_2_98 105 siliconemask +face-station/28.05.18/105_05_000_2_98 105 siliconemask +face-station/28.05.18/105_04_000_2_98 105 siliconemask +face-station/25.06.18/105_01_006_2_98 105 siliconemask +face-station/01.05.18/105_05_065_2_98 105 siliconemask +face-station/25.06.18/105_06_018_2_98 105 siliconemask +face-station/22.06.18/105_01_000_2_98 105 siliconemask +face-station/28.05.18/105_06_000_2_98 105 siliconemask +face-station/28.05.18/105_07_000_2_98 105 siliconemask +face-station/25.06.18/106_06_018_2_95 106 siliconemask +face-station/16.05.18/106_07_004_2_95 106 siliconemask +face-station/29.05.18/106_04_000_2_95 106 siliconemask +face-station/29.05.18/106_05_000_2_95 106 siliconemask +face-station/25.06.18/106_07_019_2_95 106 siliconemask +face-station/07.05.18/106_06_002_2_95 106 siliconemask +face-station/22.06.18/106_01_000_2_95 106 siliconemask +face-station/25.06.18/106_01_006_2_95 106 siliconemask +face-station/30.04.18/106_05_064_2_95 106 siliconemask +face-station/06.06.18/106_04_018_2_95 106 siliconemask +face-station/28.05.18/106_07_000_2_95 106 siliconemask +face-station/25.06.18/106_05_004_2_95 106 siliconemask +face-station/29.05.18/106_06_000_2_95 106 siliconemask +face-station/28.06.18/108_07_000_2_77 108 siliconemask +face-station/28.06.18/108_04_000_2_77 108 siliconemask +face-station/28.06.18/108_01_003_2_77 108 siliconemask +face-station/05.07.18/108_07_073_2_77 108 siliconemask +face-station/04.07.18/108_05_073_2_77 108 siliconemask +face-station/28.06.18/108_06_000_2_77 108 siliconemask +face-station/28.06.18/108_05_000_2_77 108 siliconemask +face-station/02.07.18/108_07_007_2_77 108 siliconemask +face-station/28.06.18/108_06_003_2_77 108 siliconemask +face-station/03.07.18/108_06_064_2_77 108 siliconemask +face-station/28.06.18/108_04_007_2_77 108 siliconemask +face-station/02.07.18/108_05_064_2_77 108 siliconemask +face-station/28.06.18/108_01_000_2_77 108 siliconemask \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/grandtest/eval/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/grandtest/eval/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..12f162b32388a2677582d6ef6d423bf15eeda19e --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/grandtest/eval/for_real.lst @@ -0,0 +1,74 @@ +face-station/15.02.18/001_03_000_0_00 001 +face-station/06.02.18/001_02_000_0_00 001 +face-station/24.01.18/001_01_000_0_00 001 +face-station/06.02.18/007_02_000_0_00 007 +face-station/22.01.18/007_01_000_0_00 007 +face-station/15.05.18/007_05_000_0_00 007 +face-station/16.05.18/007_07_000_0_00 007 +face-station/22.05.18/007_06_000_0_00 007 +face-station/13.02.18/007_03_000_0_00 007 +face-station/27.02.18/012_02_000_0_00 012 +face-station/27.02.18/012_03_000_0_00 012 +face-station/23.05.18/012_06_000_0_00 012 +face-station/24.05.18/012_05_000_0_00 012 +face-station/16.05.18/012_07_000_0_00 012 +face-station/25.01.18/012_01_000_0_00 012 +face-station/14.02.18/017_03_000_0_00 017 +face-station/06.02.18/017_02_000_0_00 017 +face-station/26.01.18/017_01_000_0_00 017 +face-station/29.01.18/022_01_000_0_00 022 +face-station/08.02.18/022_02_000_0_00 022 +face-station/08.02.18/022_03_000_0_00 022 +face-station/07.02.18/026_02_000_0_00 026 +face-station/12.02.18/026_03_000_0_00 026 +face-station/30.01.18/026_01_000_0_00 026 +face-station/15.02.18/029_03_000_0_00 029 +face-station/07.02.18/029_02_000_0_00 029 +face-station/30.01.18/029_01_000_0_00 029 +face-station/07.02.18/030_02_000_0_00 030 +face-station/13.02.18/030_03_000_0_00 030 +face-station/30.01.18/030_01_000_0_00 030 +face-station/14.02.18/033_03_000_0_00 033 +face-station/07.02.18/033_02_000_0_00 033 +face-station/31.01.18/033_01_000_0_00 033 +face-station/07.02.18/037_02_000_0_00 037 +face-station/01.02.18/037_01_000_0_00 037 +face-station/13.02.18/037_03_000_0_00 037 +face-station/06.02.18/043_02_000_0_00 043 +face-station/01.02.18/043_01_000_0_00 043 +face-station/16.02.18/043_03_000_0_00 043 +face-station/15.02.18/045_03_000_0_00 045 +face-station/07.02.18/045_02_000_0_00 045 +face-station/01.02.18/045_01_000_0_00 045 +face-station/02.02.18/047_01_000_0_00 047 +face-station/13.02.18/047_03_000_0_00 047 +face-station/08.02.18/047_02_000_0_00 047 +face-station/02.02.18/050_01_000_0_00 050 +face-station/08.02.18/054_02_000_0_00 054 +face-station/08.02.18/054_03_000_0_00 054 +face-station/02.02.18/054_01_000_0_00 054 +face-station/02.02.18/058_01_000_0_00 058 +face-station/06.02.18/058_02_000_0_00 058 +face-station/13.02.18/058_03_000_0_00 058 +face-station/06.02.18/010_02_000_0_00 010 +face-station/09.02.18/010_03_000_0_00 010 +face-station/24.01.18/010_01_000_0_00 010 +face-station/06.02.18/062_02_000_0_00 062 +face-station/28.02.18/062_01_000_0_00 062 +face-station/12.02.18/062_03_000_0_00 062 +face-station/07.05.18/070_06_000_0_00 070 +face-station/16.05.18/070_07_000_0_00 070 +face-station/04.05.18/070_05_000_0_00 070 +face-station/23.05.18/072_07_000_0_00 072 +face-station/23.05.18/072_05_000_0_00 072 +face-station/23.05.18/072_06_000_0_00 072 +face-station/29.01.18/023_01_000_0_00 023 +face-station/12.02.18/009_03_000_0_00 009 +face-station/06.02.18/009_02_000_0_00 009 +face-station/23.01.18/009_01_000_0_00 009 +face-station/14.02.18/061_03_000_0_00 061 +face-station/06.02.18/061_02_000_0_00 061 +face-station/02.02.18/061_01_000_0_00 061 +face-station/23.04.18/067_05_000_0_00 067 +face-station/24.04.18/067_07_000_0_00 067 +face-station/24.04.18/067_06_000_0_00 067 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/grandtest/train/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/grandtest/train/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..59eced249441eb1b406ac346fe05d224f1e710e0 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/grandtest/train/for_attack.lst @@ -0,0 +1,182 @@ +face-station/30.05.18/001_06_000_2_08 001 papermask +face-station/14.03.18/001_04_010_2_12 001 custommask +face-station/27.02.18/001_01_000_2_08 001 papermask +face-station/06.02.18/001_02_021_2_12 001 custommask +face-station/13.02.18/001_03_036_2_08 001 papermask +face-station/01.05.18/001_06_065_2_12 001 custommask +face-station/01.02.18/001_01_002_2_08 001 papermask +face-station/30.05.18/001_04_000_2_08 001 papermask +face-station/24.05.18/001_06_008_2_08 001 papermask +face-station/30.05.18/001_07_000_2_08 001 papermask +face-station/30.05.18/001_05_000_2_08 001 papermask +face-station/01.02.18/001_01_043_2_12 001 custommask +face-station/27.02.18/001_03_012_2_08 001 papermask +face-station/21.02.18/001_03_000_2_12 001 custommask +face-station/08.05.18/001_07_002_2_12 001 custommask +face-station/07.02.18/001_02_056_2_08 001 papermask +face-station/13.02.18/001_03_047_2_12 001 custommask +face-station/19.02.18/001_02_000_2_12 001 custommask +face-station/14.03.18/001_04_010_2_08 001 papermask +face-station/04.06.18/001_06_000_2_12 001 custommask +face-station/15.02.18/001_03_014_2_12 001 custommask +face-station/27.02.18/001_01_000_2_12 001 custommask +face-station/04.06.18/001_04_000_2_12 001 custommask +face-station/24.01.18/001_01_014_2_12 001 custommask +face-station/04.06.18/001_05_000_2_12 001 custommask +face-station/07.02.18/001_02_027_2_08 001 papermask +face-station/04.06.18/001_07_000_2_12 001 custommask +face-station/02.02.18/001_01_061_2_12 001 custommask +face-station/02.05.18/001_05_003_2_08 001 papermask +face-station/19.02.18/001_02_000_2_08 001 papermask +face-station/12.02.18/001_03_005_2_08 001 papermask +face-station/16.05.18/001_07_019_2_08 001 papermask +face-station/21.02.18/001_03_000_2_08 001 papermask +face-station/04.05.18/001_05_071_2_12 001 custommask +face-station/31.01.18/001_01_033_2_08 001 papermask +face-station/08.02.18/002_03_022_2_81 002 siliconemask +face-station/27.02.18/002_01_000_2_81 002 siliconemask +face-station/06.02.18/002_02_001_2_81 002 siliconemask +face-station/29.05.18/002_04_000_2_81 002 siliconemask +face-station/23.05.18/002_05_073_2_81 002 siliconemask +face-station/22.05.18/002_06_018_2_81 002 siliconemask +face-station/17.01.18/002_01_003_2_81 002 siliconemask +face-station/31.01.18/002_01_034_2_81 002 siliconemask +face-station/29.05.18/002_06_000_2_81 002 siliconemask +face-station/13.02.18/002_03_047_2_81 002 siliconemask +face-station/14.03.18/002_04_010_2_81 002 siliconemask +face-station/19.02.18/002_02_000_2_81 002 siliconemask +face-station/13.02.18/002_02_031_2_81 002 siliconemask +face-station/29.05.18/002_05_000_2_81 002 siliconemask +face-station/29.05.18/002_07_000_2_81 002 siliconemask +face-station/23.05.18/002_07_073_2_81 002 siliconemask +face-station/22.02.18/002_03_000_2_81 002 siliconemask +face-station/08.02.18/012_02_054_2_11 012 papermask +face-station/30.05.18/012_04_000_2_11 012 papermask +face-station/14.03.18/012_04_010_2_11 012 papermask +face-station/27.02.18/012_01_000_2_11 012 papermask +face-station/07.02.18/012_02_027_2_11 012 papermask +face-station/24.04.18/012_07_067_2_11 012 papermask +face-station/30.05.18/012_05_000_2_11 012 papermask +face-station/30.05.18/012_07_000_2_11 012 papermask +face-station/14.02.18/012_03_003_2_11 012 papermask +face-station/08.02.18/012_03_034_2_11 012 papermask +face-station/02.02.18/012_01_057_2_11 012 papermask +face-station/22.05.18/012_05_008_2_11 012 papermask +face-station/24.05.18/012_06_005_2_11 012 papermask +face-station/06.02.18/012_02_024_2_11 012 papermask +face-station/21.02.18/012_03_000_2_11 012 papermask +face-station/25.01.18/012_01_012_2_11 012 papermask +face-station/19.02.18/012_02_000_2_11 012 papermask +face-station/30.05.18/012_06_000_2_11 012 papermask +face-station/07.02.18/016_02_030_2_15 016 custommask +face-station/04.06.18/016_05_000_2_15 016 custommask +face-station/16.05.18/016_07_070_2_15 016 custommask +face-station/24.01.18/016_01_011_2_15 016 custommask +face-station/04.06.18/016_07_000_2_15 016 custommask +face-station/13.02.18/016_03_059_2_15 016 custommask +face-station/24.05.18/016_06_005_2_15 016 custommask +face-station/08.02.18/016_03_022_2_15 016 custommask +face-station/21.02.18/016_03_000_2_15 016 custommask +face-station/14.03.18/016_04_007_2_15 016 custommask +face-station/24.05.18/016_05_012_2_15 016 custommask +face-station/01.02.18/016_01_042_2_15 016 custommask +face-station/09.02.18/016_02_060_2_15 016 custommask +face-station/19.02.18/016_02_000_2_15 016 custommask +face-station/04.06.18/016_04_000_2_15 016 custommask +face-station/27.02.18/016_01_000_2_15 016 custommask +face-station/04.06.18/016_06_000_2_15 016 custommask +face-station/13.02.18/019_02_031_2_87 019 siliconemask +face-station/23.05.18/019_07_005_2_87 019 siliconemask +face-station/24.01.18/019_01_013_2_87 019 siliconemask +face-station/13.02.18/019_03_042_2_87 019 siliconemask +face-station/14.03.18/019_04_010_2_87 019 siliconemask +face-station/27.02.18/019_01_000_2_87 019 siliconemask +face-station/29.05.18/019_04_000_2_87 019 siliconemask +face-station/29.05.18/019_05_000_2_87 019 siliconemask +face-station/14.02.18/019_03_011_2_87 019 siliconemask +face-station/29.05.18/019_06_000_2_87 019 siliconemask +face-station/22.02.18/019_03_000_2_87 019 siliconemask +face-station/19.02.18/019_02_000_2_87 019 siliconemask +face-station/07.05.18/019_06_071_2_87 019 siliconemask +face-station/29.05.18/019_07_000_2_87 019 siliconemask +face-station/06.02.18/019_02_001_2_87 019 siliconemask +face-station/23.05.18/019_05_072_2_87 019 siliconemask +face-station/01.02.18/019_01_043_2_87 019 siliconemask +face-station/28.06.18/064_06_003_2_75 064 siliconemask +face-station/28.06.18/064_05_000_2_75 064 siliconemask +face-station/04.07.18/064_05_073_2_75 064 siliconemask +face-station/28.06.18/064_07_000_2_75 064 siliconemask +face-station/28.06.18/064_04_007_2_75 064 siliconemask +face-station/02.07.18/064_07_007_2_75 064 siliconemask +face-station/28.06.18/064_01_000_2_75 064 siliconemask +face-station/05.07.18/064_07_073_2_75 064 siliconemask +face-station/02.07.18/064_05_064_2_75 064 siliconemask +face-station/28.06.18/064_01_003_2_75 064 siliconemask +face-station/28.06.18/064_06_000_2_75 064 siliconemask +face-station/03.07.18/064_06_064_2_75 064 siliconemask +face-station/28.06.18/064_04_000_2_75 064 siliconemask +face-station/25.06.18/066_07_019_2_84 066 siliconemask +face-station/25.06.18/066_06_018_2_84 066 siliconemask +face-station/29.05.18/066_04_000_2_84 066 siliconemask +face-station/28.05.18/066_07_000_2_84 066 siliconemask +face-station/29.05.18/066_06_000_2_84 066 siliconemask +face-station/20.04.18/066_05_066_2_84 066 siliconemask +face-station/25.06.18/066_01_006_2_84 066 siliconemask +face-station/29.05.18/066_05_000_2_84 066 siliconemask +face-station/22.06.18/066_01_000_2_84 066 siliconemask +face-station/06.06.18/066_04_018_2_84 066 siliconemask +face-station/23.05.18/066_06_012_2_84 066 siliconemask +face-station/08.05.18/066_07_071_2_84 066 siliconemask +face-station/25.06.18/066_05_004_2_84 066 siliconemask +face-station/22.06.18/103_01_000_2_96 103 siliconemask +face-station/25.06.18/103_05_004_2_96 103 siliconemask +face-station/28.05.18/103_05_000_2_96 103 siliconemask +face-station/25.06.18/103_06_018_2_96 103 siliconemask +face-station/28.05.18/103_06_000_2_96 103 siliconemask +face-station/28.05.18/103_07_000_2_96 103 siliconemask +face-station/01.05.18/103_05_065_2_96 103 siliconemask +face-station/25.06.18/103_01_006_2_96 103 siliconemask +face-station/04.05.18/103_07_003_2_96 103 siliconemask +face-station/06.06.18/103_04_018_2_96 103 siliconemask +face-station/25.06.18/103_07_019_2_96 103 siliconemask +face-station/28.05.18/103_04_000_2_96 103 siliconemask +face-station/04.05.18/103_06_038_2_96 103 siliconemask +face-station/25.06.18/104_01_006_2_93 104 siliconemask +face-station/25.06.18/104_05_004_2_93 104 siliconemask +face-station/16.05.18/104_07_004_2_93 104 siliconemask +face-station/29.05.18/104_06_000_2_93 104 siliconemask +face-station/29.05.18/104_04_000_2_93 104 siliconemask +face-station/25.06.18/104_06_018_2_93 104 siliconemask +face-station/29.05.18/104_05_000_2_93 104 siliconemask +face-station/25.06.18/104_07_019_2_93 104 siliconemask +face-station/22.06.18/104_01_000_2_93 104 siliconemask +face-station/30.04.18/104_05_064_2_93 104 siliconemask +face-station/28.05.18/104_07_000_2_93 104 siliconemask +face-station/07.05.18/104_06_002_2_93 104 siliconemask +face-station/06.06.18/104_04_018_2_93 104 siliconemask +face-station/01.05.18/106_05_065_2_99 106 siliconemask +face-station/28.05.18/106_07_000_2_99 106 siliconemask +face-station/25.06.18/106_01_006_2_99 106 siliconemask +face-station/28.05.18/106_05_000_2_99 106 siliconemask +face-station/28.05.18/106_06_000_2_99 106 siliconemask +face-station/04.05.18/106_06_038_2_99 106 siliconemask +face-station/25.06.18/106_07_019_2_99 106 siliconemask +face-station/06.06.18/106_04_018_2_99 106 siliconemask +face-station/25.06.18/106_05_004_2_99 106 siliconemask +face-station/04.05.18/106_07_003_2_99 106 siliconemask +face-station/25.06.18/106_06_018_2_99 106 siliconemask +face-station/28.05.18/106_04_000_2_99 106 siliconemask +face-station/22.06.18/106_01_000_2_99 106 siliconemask +face-station/05.07.18/109_07_073_2_78 109 siliconemask +face-station/28.06.18/109_01_003_2_78 109 siliconemask +face-station/28.06.18/109_04_000_2_78 109 siliconemask +face-station/03.07.18/109_06_064_2_78 109 siliconemask +face-station/02.07.18/109_07_007_2_78 109 siliconemask +face-station/04.07.18/109_05_073_2_78 109 siliconemask +face-station/28.06.18/109_01_000_2_78 109 siliconemask +face-station/28.06.18/109_06_000_2_78 109 siliconemask +face-station/28.06.18/109_04_007_2_78 109 siliconemask +face-station/28.06.18/109_06_003_2_78 109 siliconemask +face-station/28.06.18/109_05_000_2_78 109 siliconemask +face-station/02.07.18/109_05_064_2_78 109 siliconemask +face-station/28.06.18/109_07_000_2_78 109 siliconemask \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/grandtest/train/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/grandtest/train/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..4e210ad31ca49771e4f2b52fb39006c51fdaacb6 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/grandtest/train/for_real.lst @@ -0,0 +1,86 @@ +face-station/07.05.18/002_06_000_0_00 002 +face-station/08.05.18/002_07_000_0_00 002 +face-station/04.05.18/002_05_000_0_00 002 +face-station/08.02.18/002_02_000_0_00 002 +face-station/08.02.18/002_03_000_0_00 002 +face-station/01.02.18/002_01_000_0_00 002 +face-station/15.05.18/005_05_000_0_00 005 +face-station/23.05.18/005_07_000_0_00 005 +face-station/12.02.18/005_03_000_0_00 005 +face-station/08.02.18/005_02_000_0_00 005 +face-station/18.01.18/005_01_000_0_00 005 +face-station/24.05.18/005_06_000_0_00 005 +face-station/25.05.18/014_07_000_0_00 014 +face-station/07.02.18/014_02_000_0_00 014 +face-station/15.02.18/014_03_000_0_00 014 +face-station/24.01.18/014_01_000_0_00 014 +face-station/24.05.18/014_06_000_0_00 014 +face-station/24.05.18/014_05_000_0_00 014 +face-station/25.01.18/015_01_000_0_00 015 +face-station/12.02.18/015_03_000_0_00 015 +face-station/06.02.18/015_02_000_0_00 015 +face-station/12.02.18/025_03_000_0_00 025 +face-station/06.02.18/025_02_000_0_00 025 +face-station/29.01.18/025_01_000_0_00 025 +face-station/30.01.18/028_01_000_0_00 028 +face-station/07.02.18/028_02_000_0_00 028 +face-station/07.02.18/028_03_000_0_00 028 +face-station/31.01.18/032_01_000_0_00 032 +face-station/08.02.18/032_02_000_0_00 032 +face-station/14.02.18/032_03_000_0_00 032 +face-station/31.01.18/034_01_000_0_00 034 +face-station/08.02.18/034_02_000_0_00 034 +face-station/08.02.18/034_03_000_0_00 034 +face-station/04.05.18/038_06_000_0_00 038 +face-station/07.05.18/038_07_000_0_00 038 +face-station/01.05.18/038_05_000_0_00 038 +face-station/08.02.18/038_02_000_0_00 038 +face-station/14.02.18/038_03_000_0_00 038 +face-station/01.02.18/038_01_000_0_00 038 +face-station/01.02.18/040_01_000_0_00 040 +face-station/01.02.18/041_01_000_0_00 041 +face-station/07.02.18/042_02_000_0_00 042 +face-station/13.02.18/042_03_000_0_00 042 +face-station/01.02.18/042_01_000_0_00 042 +face-station/06.02.18/046_02_000_0_00 046 +face-station/13.02.18/046_03_000_0_00 046 +face-station/01.02.18/046_01_000_0_00 046 +face-station/09.02.18/048_03_000_0_00 048 +face-station/02.02.18/048_01_000_0_00 048 +face-station/09.02.18/048_02_000_0_00 048 +face-station/26.01.18/008_01_000_0_00 008 +face-station/07.02.18/008_02_000_0_00 008 +face-station/14.02.18/008_03_000_0_00 008 +face-station/22.05.18/008_05_000_0_00 008 +face-station/24.05.18/008_06_000_0_00 008 +face-station/25.05.18/008_07_000_0_00 008 +face-station/02.02.18/056_01_000_0_00 056 +face-station/07.02.18/056_02_000_0_00 056 +face-station/12.02.18/056_03_000_0_00 056 +face-station/02.02.18/059_01_000_0_00 059 +face-station/13.02.18/059_03_000_0_00 059 +face-station/07.02.18/059_02_000_0_00 059 +face-station/01.05.18/065_05_000_0_00 065 +face-station/01.05.18/065_07_000_0_00 065 +face-station/01.05.18/065_06_000_0_00 065 +face-station/23.04.18/066_06_000_0_00 066 +face-station/23.04.18/066_07_000_0_00 066 +face-station/23.04.18/066_05_000_0_00 066 +face-station/22.05.18/069_06_000_0_00 069 +face-station/15.05.18/069_05_000_0_00 069 +face-station/16.05.18/069_07_000_0_00 069 +face-station/04.05.18/071_05_000_0_00 071 +face-station/08.05.18/071_07_000_0_00 071 +face-station/07.05.18/071_06_000_0_00 071 +face-station/23.05.18/073_07_000_0_00 073 +face-station/24.05.18/073_06_000_0_00 073 +face-station/23.05.18/073_05_000_0_00 073 +face-station/15.05.18/004_05_000_0_00 004 +face-station/04.05.18/004_06_000_0_00 004 +face-station/16.05.18/004_07_000_0_00 004 +face-station/17.01.18/004_01_000_0_00 004 +face-station/07.02.18/004_02_000_0_00 004 +face-station/15.02.18/004_03_000_0_00 004 +face-station/09.02.18/049_03_000_0_00 049 +face-station/02.02.18/049_01_000_0_00 049 +face-station/09.02.18/049_02_000_0_00 049 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/dev/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/dev/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..f93078b211b115a296e4161afd4b28e21c284bcf --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/dev/for_attack.lst @@ -0,0 +1,280 @@ +Session1/Indoor/04/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask9/Infrared/Infrared 111 attack \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/dev/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/dev/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..d495a6c715a25345275cb2ab7dd787da0d78584c --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/dev/for_real.lst @@ -0,0 +1,28 @@ +Session1/Indoor/04/Real/Infrared/Infrared 0 +Session1/Indoor/05/Real/Infrared/Infrared 0 +Session1/Indoor/06/Real/Infrared/Infrared 0 +Session1/Indoor/07/Real/Infrared/Infrared 0 +Session1/Indoor/08/Real/Infrared/Infrared 0 +Session1/Indoor/09/Real/Infrared/Infrared 0 +Session1/Indoor/10/Real/Infrared/Infrared 0 +Session1/Outdoor/04/Real/Infrared/Infrared 0 +Session1/Outdoor/05/Real/Infrared/Infrared 0 +Session1/Outdoor/06/Real/Infrared/Infrared 0 +Session1/Outdoor/07/Real/Infrared/Infrared 0 +Session1/Outdoor/08/Real/Infrared/Infrared 0 +Session1/Outdoor/09/Real/Infrared/Infrared 0 +Session1/Outdoor/10/Real/Infrared/Infrared 0 +Session2/Indoor/04/Real/Infrared/Infrared 0 +Session2/Indoor/05/Real/Infrared/Infrared 0 +Session2/Indoor/06/Real/Infrared/Infrared 0 +Session2/Indoor/07/Real/Infrared/Infrared 0 +Session2/Indoor/08/Real/Infrared/Infrared 0 +Session2/Indoor/09/Real/Infrared/Infrared 0 +Session2/Indoor/10/Real/Infrared/Infrared 0 +Session2/Outdoor/04/Real/Infrared/Infrared 0 +Session2/Outdoor/05/Real/Infrared/Infrared 0 +Session2/Outdoor/06/Real/Infrared/Infrared 0 +Session2/Outdoor/07/Real/Infrared/Infrared 0 +Session2/Outdoor/08/Real/Infrared/Infrared 0 +Session2/Outdoor/09/Real/Infrared/Infrared 0 +Session2/Outdoor/10/Real/Infrared/Infrared 0 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/train/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/train/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..0bfdd55b590604fd1e311cb1324edfc8632f9dfd --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/train/for_attack.lst @@ -0,0 +1,120 @@ +Session1/Indoor/01/M1/Infrared/Infrared 111 attack +Session1/Indoor/01/M10/Infrared/Infrared 111 attack +Session1/Indoor/01/M2/Infrared/Infrared 111 attack +Session1/Indoor/01/M3/Infrared/Infrared 111 attack +Session1/Indoor/01/M4/Infrared/Infrared 111 attack +Session1/Indoor/01/M5/Infrared/Infrared 111 attack +Session1/Indoor/01/M6/Infrared/Infrared 111 attack +Session1/Indoor/01/M7/Infrared/Infrared 111 attack +Session1/Indoor/01/M8/Infrared/Infrared 111 attack +Session1/Indoor/01/M9/Infrared/Infrared 111 attack +Session1/Indoor/02/M1/Infrared/Infrared 111 attack +Session1/Indoor/02/M10/Infrared/Infrared 111 attack +Session1/Indoor/02/M2/Infrared/Infrared 111 attack +Session1/Indoor/02/M3/Infrared/Infrared 111 attack +Session1/Indoor/02/M4/Infrared/Infrared 111 attack +Session1/Indoor/02/M5/Infrared/Infrared 111 attack +Session1/Indoor/02/M6/Infrared/Infrared 111 attack +Session1/Indoor/02/M7/Infrared/Infrared 111 attack +Session1/Indoor/02/M8/Infrared/Infrared 111 attack +Session1/Indoor/02/M9/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask9/Infrared/Infrared 111 attack \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/train/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/train/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..61b23f9a93656948a939d8052c1b5d546acfd00b --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv1/train/for_real.lst @@ -0,0 +1,12 @@ +Session1/Indoor/01/R/Infrared/Infrared 0 +Session1/Indoor/02/Real/Infrared/Infrared 0 +Session1/Indoor/03/Real/Infrared/Infrared 0 +Session1/Outdoor/01/Real/Infrared/Infrared 0 +Session1/Outdoor/02/Real/Infrared/Infrared 0 +Session1/Outdoor/03/Real/Infrared/Infrared 0 +Session2/Indoor/01/Real/Infrared/Infrared 0 +Session2/Indoor/02/Real/Infrared/Infrared 0 +Session2/Indoor/03/Real/Infrared/Infrared 0 +Session2/Outdoor/01/Real/Infrared/Infrared 0 +Session2/Outdoor/02/Real/Infrared/Infrared 0 +Session2/Outdoor/03/Real/Infrared/Infrared 0 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/dev/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/dev/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..5586f93889b6236ce3df3400559ccdfb2435ba29 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/dev/for_attack.lst @@ -0,0 +1,280 @@ +Session1/Indoor/01/M1/Infrared/Infrared 111 attack +Session1/Indoor/01/M10/Infrared/Infrared 111 attack +Session1/Indoor/01/M2/Infrared/Infrared 111 attack +Session1/Indoor/01/M3/Infrared/Infrared 111 attack +Session1/Indoor/01/M4/Infrared/Infrared 111 attack +Session1/Indoor/01/M5/Infrared/Infrared 111 attack +Session1/Indoor/01/M6/Infrared/Infrared 111 attack +Session1/Indoor/01/M7/Infrared/Infrared 111 attack +Session1/Indoor/01/M8/Infrared/Infrared 111 attack +Session1/Indoor/01/M9/Infrared/Infrared 111 attack +Session1/Indoor/02/M1/Infrared/Infrared 111 attack +Session1/Indoor/02/M10/Infrared/Infrared 111 attack +Session1/Indoor/02/M2/Infrared/Infrared 111 attack +Session1/Indoor/02/M3/Infrared/Infrared 111 attack +Session1/Indoor/02/M4/Infrared/Infrared 111 attack +Session1/Indoor/02/M5/Infrared/Infrared 111 attack +Session1/Indoor/02/M6/Infrared/Infrared 111 attack +Session1/Indoor/02/M7/Infrared/Infrared 111 attack +Session1/Indoor/02/M8/Infrared/Infrared 111 attack +Session1/Indoor/02/M9/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask9/Infrared/Infrared 111 attack \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/dev/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/dev/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..6e381014660d5120c72b564113183520f5791b75 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/dev/for_real.lst @@ -0,0 +1,28 @@ +Session1/Indoor/01/R/Infrared/Infrared 0 +Session1/Indoor/02/Real/Infrared/Infrared 0 +Session1/Indoor/03/Real/Infrared/Infrared 0 +Session1/Indoor/07/Real/Infrared/Infrared 0 +Session1/Indoor/08/Real/Infrared/Infrared 0 +Session1/Indoor/09/Real/Infrared/Infrared 0 +Session1/Indoor/10/Real/Infrared/Infrared 0 +Session1/Outdoor/01/Real/Infrared/Infrared 0 +Session1/Outdoor/02/Real/Infrared/Infrared 0 +Session1/Outdoor/03/Real/Infrared/Infrared 0 +Session1/Outdoor/07/Real/Infrared/Infrared 0 +Session1/Outdoor/08/Real/Infrared/Infrared 0 +Session1/Outdoor/09/Real/Infrared/Infrared 0 +Session1/Outdoor/10/Real/Infrared/Infrared 0 +Session2/Indoor/01/Real/Infrared/Infrared 0 +Session2/Indoor/02/Real/Infrared/Infrared 0 +Session2/Indoor/03/Real/Infrared/Infrared 0 +Session2/Indoor/07/Real/Infrared/Infrared 0 +Session2/Indoor/08/Real/Infrared/Infrared 0 +Session2/Indoor/09/Real/Infrared/Infrared 0 +Session2/Indoor/10/Real/Infrared/Infrared 0 +Session2/Outdoor/01/Real/Infrared/Infrared 0 +Session2/Outdoor/02/Real/Infrared/Infrared 0 +Session2/Outdoor/03/Real/Infrared/Infrared 0 +Session2/Outdoor/07/Real/Infrared/Infrared 0 +Session2/Outdoor/08/Real/Infrared/Infrared 0 +Session2/Outdoor/09/Real/Infrared/Infrared 0 +Session2/Outdoor/10/Real/Infrared/Infrared 0 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/train/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/train/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..bcda4ec47eee61f6ecac70c561c9cc5e03b6fe48 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/train/for_attack.lst @@ -0,0 +1,120 @@ +Session1/Indoor/04/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask9/Infrared/Infrared 111 attack \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/train/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/train/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..1535fb4fac57b162f1c5c7306294081f35351a3a --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv2/train/for_real.lst @@ -0,0 +1,12 @@ +Session1/Indoor/04/Real/Infrared/Infrared 0 +Session1/Indoor/05/Real/Infrared/Infrared 0 +Session1/Indoor/06/Real/Infrared/Infrared 0 +Session1/Outdoor/04/Real/Infrared/Infrared 0 +Session1/Outdoor/05/Real/Infrared/Infrared 0 +Session1/Outdoor/06/Real/Infrared/Infrared 0 +Session2/Indoor/04/Real/Infrared/Infrared 0 +Session2/Indoor/05/Real/Infrared/Infrared 0 +Session2/Indoor/06/Real/Infrared/Infrared 0 +Session2/Outdoor/04/Real/Infrared/Infrared 0 +Session2/Outdoor/05/Real/Infrared/Infrared 0 +Session2/Outdoor/06/Real/Infrared/Infrared 0 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/dev/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/dev/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..4b8c4c6b5da7588be6d7e3985c6799f964950489 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/dev/for_attack.lst @@ -0,0 +1,240 @@ +Session1/Indoor/01/M1/Infrared/Infrared 111 attack +Session1/Indoor/01/M10/Infrared/Infrared 111 attack +Session1/Indoor/01/M2/Infrared/Infrared 111 attack +Session1/Indoor/01/M3/Infrared/Infrared 111 attack +Session1/Indoor/01/M4/Infrared/Infrared 111 attack +Session1/Indoor/01/M5/Infrared/Infrared 111 attack +Session1/Indoor/01/M6/Infrared/Infrared 111 attack +Session1/Indoor/01/M7/Infrared/Infrared 111 attack +Session1/Indoor/01/M8/Infrared/Infrared 111 attack +Session1/Indoor/01/M9/Infrared/Infrared 111 attack +Session1/Indoor/02/M1/Infrared/Infrared 111 attack +Session1/Indoor/02/M10/Infrared/Infrared 111 attack +Session1/Indoor/02/M2/Infrared/Infrared 111 attack +Session1/Indoor/02/M3/Infrared/Infrared 111 attack +Session1/Indoor/02/M4/Infrared/Infrared 111 attack +Session1/Indoor/02/M5/Infrared/Infrared 111 attack +Session1/Indoor/02/M6/Infrared/Infrared 111 attack +Session1/Indoor/02/M7/Infrared/Infrared 111 attack +Session1/Indoor/02/M8/Infrared/Infrared 111 attack +Session1/Indoor/02/M9/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/03/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/04/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/05/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/06/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/01/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/02/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/03/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/04/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/05/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/06/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/01/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/02/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/03/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/04/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/05/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/06/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/01/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/02/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/03/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/04/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/05/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/06/Mask9/Infrared/Infrared 111 attack \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/dev/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/dev/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..b4e9d2c37b4c4b74023c8c8565fe269a3ae6cdcb --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/dev/for_real.lst @@ -0,0 +1,24 @@ +Session1/Indoor/01/R/Infrared/Infrared 0 +Session1/Indoor/02/Real/Infrared/Infrared 0 +Session1/Indoor/03/Real/Infrared/Infrared 0 +Session1/Indoor/04/Real/Infrared/Infrared 0 +Session1/Indoor/05/Real/Infrared/Infrared 0 +Session1/Indoor/06/Real/Infrared/Infrared 0 +Session1/Outdoor/01/Real/Infrared/Infrared 0 +Session1/Outdoor/02/Real/Infrared/Infrared 0 +Session1/Outdoor/03/Real/Infrared/Infrared 0 +Session1/Outdoor/04/Real/Infrared/Infrared 0 +Session1/Outdoor/05/Real/Infrared/Infrared 0 +Session1/Outdoor/06/Real/Infrared/Infrared 0 +Session2/Indoor/01/Real/Infrared/Infrared 0 +Session2/Indoor/02/Real/Infrared/Infrared 0 +Session2/Indoor/03/Real/Infrared/Infrared 0 +Session2/Indoor/04/Real/Infrared/Infrared 0 +Session2/Indoor/05/Real/Infrared/Infrared 0 +Session2/Indoor/06/Real/Infrared/Infrared 0 +Session2/Outdoor/01/Real/Infrared/Infrared 0 +Session2/Outdoor/02/Real/Infrared/Infrared 0 +Session2/Outdoor/03/Real/Infrared/Infrared 0 +Session2/Outdoor/04/Real/Infrared/Infrared 0 +Session2/Outdoor/05/Real/Infrared/Infrared 0 +Session2/Outdoor/06/Real/Infrared/Infrared 0 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/train/for_attack.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/train/for_attack.lst new file mode 100644 index 0000000000000000000000000000000000000000..62fc69f3438354960ef0f855c3ee16385f4f408e --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/train/for_attack.lst @@ -0,0 +1,160 @@ +Session1/Indoor/07/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/07/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/08/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/09/Mask9/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask1/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask10/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask2/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask3/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask4/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask5/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask6/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask7/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask8/Infrared/Infrared 111 attack +Session1/Indoor/10/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/07/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/08/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/09/Mask9/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask1/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask10/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask2/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask3/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask4/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask5/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask6/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask7/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask8/Infrared/Infrared 111 attack +Session1/Outdoor/10/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/07/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/08/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/09/Mask9/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask1/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask10/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask2/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask3/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask4/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask5/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask6/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask7/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask8/Infrared/Infrared 111 attack +Session2/Indoor/10/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/07/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/08/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/09/Mask9/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask1/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask10/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask2/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask3/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask4/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask5/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask6/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask7/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask8/Infrared/Infrared 111 attack +Session2/Outdoor/10/Mask9/Infrared/Infrared 111 attack \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/train/for_real.lst b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/train/for_real.lst new file mode 100644 index 0000000000000000000000000000000000000000..761c6fd3b3e3bdc311ef663d8edef4b545551f9b --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/lists/mlfp/cv3/train/for_real.lst @@ -0,0 +1,16 @@ +Session1/Indoor/07/Real/Infrared/Infrared 0 +Session1/Indoor/08/Real/Infrared/Infrared 0 +Session1/Indoor/09/Real/Infrared/Infrared 0 +Session1/Indoor/10/Real/Infrared/Infrared 0 +Session1/Outdoor/07/Real/Infrared/Infrared 0 +Session1/Outdoor/08/Real/Infrared/Infrared 0 +Session1/Outdoor/09/Real/Infrared/Infrared 0 +Session1/Outdoor/10/Real/Infrared/Infrared 0 +Session2/Indoor/07/Real/Infrared/Infrared 0 +Session2/Indoor/08/Real/Infrared/Infrared 0 +Session2/Indoor/09/Real/Infrared/Infrared 0 +Session2/Indoor/10/Real/Infrared/Infrared 0 +Session2/Outdoor/07/Real/Infrared/Infrared 0 +Session2/Outdoor/08/Real/Infrared/Infrared 0 +Session2/Outdoor/09/Real/Infrared/Infrared 0 +Session2/Outdoor/10/Real/Infrared/Infrared 0 \ No newline at end of file diff --git a/bob/paper/nir_patch_pooling/database/mlfp.py b/bob/paper/nir_patch_pooling/database/mlfp.py new file mode 100644 index 0000000000000000000000000000000000000000..a5b971161e38c4007ef628aed482fc9d451abab0 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/mlfp.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +""" +Implementation of dataset interface of MLFP for PAD. +@author: Ketan Kotwal + +""" + +# Imports +from bob.pad.base.database import FileListPadDatabase +from bob.pad.base.database import PadFile +from bob.pad.face.database import VideoPadFile +from bob.bio.video import FrameSelector, FrameContainer +import bob.io.base + +import json +import numpy as np +import os, h5py +import pkg_resources + +import logging +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +class RGBPadFile(VideoPadFile): + """ + A high level implementation of the File class for the RGB images database. + """ + + def __init__(self, attack_type, client_id, path, file_id=None): + + super(RGBPadFile, self).__init__(attack_type, client_id, path, file_id) + +#---------------------------------------------------------- + + def load(self, directory=None, extension=None, frame_selector=FrameSelector(selection_style='all')): + """ + Overridden version of the load method defined in the ``VideoPadFile``. + + **Parameters:** + + ``directory`` : :py:class:`str` + String containing the path to the MIFS database. + Default: None + + ``extension`` : :py:class:`str` + Extension of the video files in the MIFS database. + Default: None + + ``frame_selector`` : ``FrameSelector`` + The frame selector to use. + + **Returns:** + + ``video_data`` : FrameContainer + Video data stored in the FrameContainer, see ``bob.bio.video.utils.FrameContainer`` + for further details. + """ + + + path = self.make_path(directory=directory, extension=extension) + + fc = FrameContainer() + data = h5py.File(path) + for i, data1 in enumerate(data.keys()): + frame = data[data1]["array"].value + fc.add(i, frame, None) + + data.close() + #data = np.expand_dims(data, axis=0) # upgrade to 4D (video) + #video_data = frame_selector(data) # video data + + return fc + +#---------------------------------------------------------- + +#---------------------------------------------------------- +class MLFPDatabase(FileListPadDatabase): + """ + A high level implementation of the Database class for the MLFP + dataset. + """ + + def __init__( + self, + name = "MLFP", + original_directory = None, + original_extension = ".hdf5", + protocol = "grandtest", + annotation_directory = None, + pad_file_class = RGBPadFile, + **kwargs): + + self.annotation_directory = annotation_directory + filelists_directory = pkg_resources.resource_filename( __name__, "/lists/mlfp/") + + super(MLFPDatabase, self).__init__( + filelists_directory=filelists_directory, + name=name, + protocol=protocol, + original_directory=original_directory, + original_extension=original_extension, + pad_file_class=pad_file_class, + annotation_directory=annotation_directory, + **kwargs) + + logger.info("Dataset: {}".format(self.name)) + logger.info("Original directory: {}; Annotation directory: {}".format(self.original_directory, self.annotation_directory)) + +#---------------------------------------------------------- + + def annotations(self, f): + + file_path = os.path.join(self.annotation_directory, f.path + ".json") + + # if file exists, load the annotations + if os.path.isfile(file_path): + + with open(file_path, "r") as json_file: + annotations = json.load(json_file) + + if not annotations: # if dictionary is empty + logger.warning("Empty annotations for %s", f.path) + return None + return annotations + + else: + logger.warning("Annotation file for %s does not exist. (Overall path: %s)", f.path, file_path) + return None + +#---------------------------------------------------------- + + diff --git a/bob/paper/nir_patch_pooling/database/wmca_mask.py b/bob/paper/nir_patch_pooling/database/wmca_mask.py new file mode 100644 index 0000000000000000000000000000000000000000..e8c5e0b274768b453b76f717962fceb55e14c2e8 --- /dev/null +++ b/bob/paper/nir_patch_pooling/database/wmca_mask.py @@ -0,0 +1,260 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Implementation of dataset interface of WMCA Masks for PAD. +@author: Ketan Kotwal + +""" + +# Imports +from bob.pad.base.database import FileListPadDatabase, PadFile +from bob.pad.face.database.batl import BatlPadFile +from bob.db.batl.models import VideoFile +from bob.extension import rc +from bob.bio.video.utils import FrameSelector, FrameContainer +from bob.pad.face.preprocessor.FaceCropAlign import detect_face_landmarks_in_image + +import json +import os +import bob.io.base +import pkg_resources +#--- + +# Constants +valid_protocols = ["grandtest", "cv"] +stream_batl_convention = {"nir" : "infrared", "nirhq" : "infrared_high_def"} + +#-------- + +class File(VideoFile): + def __init__(self, path, client_id, session_id, presenter_id, type_id, pai_id): + + super(File, self).__init__( + path = path, + client_id = client_id, + session_id = session_id, + presenter_id = presenter_id, + type_id = type_id, + pai_id = pai_id) + + self.id = path + + def load(self, directory=None, extension=None, + frame_selector=FrameSelector()): + + path = self.make_path(directory, extension) + print(path) + + if path.endswith('hdf5'): + with bob.io.base.HDF5File(path) as f: + return FrameContainer(hdf5=f) + else: + raise NotImplementedError + + +#--------- + +class MaskDatabase(FileListPadDatabase): + """ + A high level implementation of the Database class for the WMCA Mask PAD + database. + """ + + def __init__( + self, + name="Mask Database", + original_directory=None, + original_extension=".h5", + protocol="grandtest", + annotation_directory=None, + pad_file_class = BatlPadFile, + low_level_pad_file_class = File, + landmark_detect_method = "mtcnn", + **kwargs + ): + + + """ + **Parameters:** + + ``original_directory`` : str or None + original directory refers to the location of XCSMAD parent directory + + ``original_extension`` : str or None + extension of original data + + ``groups`` : str or [str] + The groups for which the clients should be returned. + Usually, groups are one or more elements of ['train', 'dev', 'eval']. + Default: ['train', 'dev', 'eval']. + + ``protocol`` : str + The protocol for which the clients should be retrieved. + Default: 'grandtest'. + + """ + + filelists_directory = pkg_resources.resource_filename( __name__, "lists/") + self.filelists_directory = filelists_directory + + # init the parent class using super. + super(MaskDatabase, self).__init__( + filelists_directory = filelists_directory, + name = name, + protocol=protocol, + original_directory = original_directory, + original_extension = original_extension, + pad_file_class = low_level_pad_file_class, + annotation_directory = annotation_directory, + **kwargs) + + self.low_level_pad_file_class = low_level_pad_file_class + self.pad_file_class = pad_file_class + self.annotation_directory = annotation_directory + self.landmark_detect_method = landmark_detect_method + self.protocol = protocol + +#---- + + def _split_protocol(self, protocol): + + split_protocol = protocol.split("-") + [None, None] + + protocol = split_protocol[0] + + stream_type = split_protocol[1] + if(stream_type in stream_batl_convention): + stream_type = stream_batl_convention[stream_type] + else: + stream_type = "color" + + num_frames = split_protocol[2] + if(num_frames is not None): + num_frames = int(num_frames) + else: + num_frames = 50 + + return protocol, stream_type, num_frames +#---- + + # override the _make_pad function in bob.pad.base since we want the PAD + # files to be of BatlPad class + + def _make_pad(self, files): + + low_level_files = [] + for f in files: + path = f.path + client_id = f.client_id + info = path.split("/")[-1] + session_id = int(info.split("_")[1]) + presenter_id = int(info.split("_")[2]) + type_id = int(info.split("_")[3]) + pai_id = int(info.split("_")[4]) + v_file = self.low_level_pad_file_class(path=path, + client_id=client_id, + session_id=session_id, + presenter_id=presenter_id, + type_id=type_id, + pai_id=pai_id) + + low_level_files.append(v_file) + + return low_level_files +#---- + + def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs): + + # default the parameters if the values are not provided + if protocol is None: + protocol = self.protocol + + if groups is None: + groups = ["train", "dev", "eval"] + + # parse the protocol to extract necessary information + protocol, stream_type, num_frames = self._split_protocol(protocol) + + # obtain the file list using the parent class's functionality + files = super(MaskDatabase, self).objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs) + + # create objects for each file where the class is BATLPadFile + files = [self.pad_file_class(f=f, stream_type=stream_type, max_frames=num_frames) for f in files] + + return files +#---- + + + + def annotations(self, f): + """ + Computes annotations for a given file object ``f``, which + is an instance of the ``BatlPadFile`` class. + + NOTE: you can pre-compute annotation in your first experiment + and then reuse them in other experiments setting + ``self.annotations_temp_dir`` path of this class, where + precomputed annotations will be saved. + + **Parameters:** + + ``f`` : :py:class:`object` + An instance of ``BatlPadFile`` defined above. + + **Returns:** + + ``annotations`` : :py:class:`dict` + A dictionary containing annotations for + each frame in the video. + Dictionary structure: + ``annotations = {'1': frame1_dict, '2': frame1_dict, ...}``. + Where + ``frameN_dict`` contains coordinates of the + face bounding box and landmarks in frame N. + """ + + file_path = os.path.join(self.annotation_directory, f.f.path + ".json") + + + # if annotations do not exist, then generate. + if not os.path.isfile(file_path): + + f.stream_type = "color" + f.reference_stream_type = "color" + f.warp_to_reference = False + f.convert_to_rgb = False + f.crop = None + f.video_data_only = True + + video = f.load(directory=self.original_directory, extension=self.original_extension) + + annotations = {} + + for idx, image in enumerate(video.as_array()): + frame_annotations = detect_face_landmarks_in_image(image, method=self.landmark_detect_method) + if frame_annotations: + annotations[str(idx)] = frame_annotations + + if self.annotation_directory: # if directory is not an empty string + bob.io.base.create_directories_safe(directory=os.path.split(file_path)[0], dryrun=False) + with open(file_path, 'w+') as json_file: + json_file.write(json.dumps(annotations)) + + # if annotations exist, then load. + else: + + with open(file_path, 'r') as json_file: + annotations = json.load(json_file) + + # if dictionary is empty + if not annotations: + return None + + return annotations +#----- + + + + + diff --git a/bob/paper/nir_patch_pooling/extractor/patch_pooling_cnn.py b/bob/paper/nir_patch_pooling/extractor/patch_pooling_cnn.py new file mode 100644 index 0000000000000000000000000000000000000000..5941c877c73d2fba8b661d8e241f5bfefb925b72 --- /dev/null +++ b/bob/paper/nir_patch_pooling/extractor/patch_pooling_cnn.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +""" +Implementation of PCNN feature extractor for LightCNN-9. +@author: Ketan Kotwal + +""" + +# Imports +import numpy as np +import torch +from PIL import Image +import torch.nn.functional as F +from torch.autograd import Variable +import torchvision.transforms as transforms +from bob.learn.pytorch.architectures import LightCNN9 +from bob.bio.base.extractor import Extractor + +import logging +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +#---------------------------------------------------------- + +class PatchPoolingCNN(Extractor): + + """ + The class implements the feature extraction of LightCNN9 embeddings. + It has some implementation differences from a similar extractor from + bob.learn.pytorch. + """ + + def __init__(self, model_file=None, num_classes=79077): + + Extractor.__init__(self, skip_extractor_training=True) + self.network = LightCNN9Patch() + + # load the model into network. + cp = torch.load(model_file, map_location="cpu") + + # checked if pre-trained model was saved using nn.DataParallel ... + saved_with_nnDataParallel = False + for k, v in cp["state_dict"].items(): + if("module" in k): + saved_with_nnDataParallel = True + break + + # if DataParallel format, remove module term + if(saved_with_nnDataParallel): + if("state_dict" in cp): + from collections import OrderedDict + new_state_dict = OrderedDict() + for k, v in cp["state_dict"].items(): + name = k[7:] + new_state_dict[name] = v + self.network.load_state_dict(new_state_dict) + else: + self.network.load_state_dict(cp["state_dict"]) + self.network.eval() + + # image pre-processing + self.data_transform = transforms.Compose([transforms.Resize(size=128), transforms.ToTensor()]) + +#---------------------------------------------------------- + + def __call__(self, image): + + """ Extract features from an image + + Parameters + ---------- + image : 2D :py:class:`numpy.ndarray` (floats) + The grayscale image to extract the features from. Its size must be 128x128 + + Returns + ------- + feature : :py:class:`numpy.ndarray` (floats) + The extracted features as a 1d array of size 320 + + """ + + # torchvision.transforms expect a numpy array of size HxWxC + pil_image = Image.fromarray(image.astype(np.uint8)) + input_image = self.data_transform(pil_image) + input_image = input_image.unsqueeze(0) + + # to be compliant with the loaded model, where weight and biases are torch.FloatTensor + input_image = input_image.float() + + _ , features = self.network.forward(Variable(input_image)) + features = self.conv_to_patch(features) + features = features.data.numpy().flatten() + return features.astype(np.float64) + +#---------------------------------------------------------- + + def conv_to_patch(self, features): + + logger.debug("Shape of input features: {} {}".format(features.shape, features.squeeze().shape)) + + # parameters for the patch conversion + stride = 4 # orig:4 #feat.shape[2]/4 + idx = 0 # purely for debugging + num_patch = features.shape[2]/stride + feat_patch = torch.zeros(1, stride*stride*features.shape[1]) + + # obtain patches by tesselation of feature maps + for i in range(0, features.shape[2], stride): + for j in range(0, features.shape[3], stride): + feat_tmp = features[:, :, i:i+stride, j:j+stride] + feat_tmp = feat_tmp.contiguous().view(feat_tmp.size(0), -1) + feat_patch += feat_tmp + idx += 1 + + # normalize the patch vector + feat_patch = feat_patch/stride/stride + logger.debug("Feat patch shape: {}".format(feat_patch.shape)) + + return feat_patch + +#---------------------------------------------------------- + +# class LightCNN9Patch: it inherits the LightCNN-9 class, and returns the last +# conv layer features; instead of embeddings. + +class LightCNN9Patch(LightCNN9): + + def __init__(self): + + # do not change the init + super(LightCNN9Patch, self).__init__() + +#---------------------------------------------------------- + + def forward(self, x): + + """ + Propagate data through the network, and return the output of final + conv layer. + """ + + conv_out = self.features(x) + x = conv_out.view(conv_out.size(0), -1) + x = self.fc1(x) + x = F.dropout(x, training=self.training) + out = self.fc2(x) + return out, conv_out + +#---------------------------------------------------------- + + + + + + + + + + diff --git a/bob/paper/nir_patch_pooling/script/annotate_database.py b/bob/paper/nir_patch_pooling/script/annotate_database.py new file mode 100755 index 0000000000000000000000000000000000000000..4e4db2abbdfafc1a9775c683f3eddd36edf2e5d7 --- /dev/null +++ b/bob/paper/nir_patch_pooling/script/annotate_database.py @@ -0,0 +1,248 @@ +# +# script to generate face annotations for NMAD directly over NIR data +# @ Ketan Kotwal +# +#---------------------------------------------------------- + + +# imports +from bob.pad.face.preprocessor.FaceCropAlign import detect_face_landmarks_in_image +from bob.ip.color import rgb_to_gray +from bob.ip.facelandmarks import detect_landmarks +import bob.bio.video +import bob.io.base +import numpy as np +import json, h5py +import os, sys + +from bob.paper.makeup_aim.database import MLFPDatabase + +ORIGINAL_DIRECTORY = "/idiap/temp/kkotwal/nmad_experiments/mlfp_int/" + +#---------------------------------------------------------- + +class AnnotationGenerator: + + def __init__(self, input_directory, annotation_directory): + + self.input_directory = input_directory.rstrip("/") + self.annotation_directory = annotation_directory.rstrip("/") + if not os.path.exists(self.annotation_directory): + os.makedirs(self.annotation_directory) + + self.file_objects = self._load_db(self) + + print("Input directory: {}".format(self.input_directory)) + print("Annotation directory: {}".format(self.annotation_directory)) + +#-------------------------------------- + + def _load_db(self, protocol): + + database = MLFPDatabase(original_directory = ORIGINAL_DIRECTORY, + protocol = "grandtest", annotation_directory = None) + + return database.objects(protocol="grandtest") + +#---------------------------------------------------------- + + def find_annotations(self, image): + + if len(image.shape) == 2: + image = np.repeat(image[:, :, np.newaxis], 3, axis=2) + image = np.transpose(image, (2,0,1)) + else: + print("\t\tNot altering dimensions") + + # find annotations using MTCNN + frame_annotations = detect_face_landmarks_in_image(image, method="mtcnn") + if frame_annotations: + print(" --> Found using MTCNN") + return frame_annotations + + # else, find annotations using dlib + frame_annotations = detect_face_landmarks_in_image(image, method="dlib") + if frame_annotations: + print(" --> Found using dlib") + return frame_annotations + + # else, find annotations using landmark detection routines from bob + frame_annotations = self.bob_annotate(image.astype(np.uint8)) + if frame_annotations: + print(" --> Found using bob routine") + return frame_annotations + + # else, return empty dictionary with warning + print(" --> Could not find annotations") + return {} + +#---------------------------------------------------------- + + def _get_eye_pos(self, lm): + """ + This function returns the locations of left and right eyes + """ + + left_eye_t = (lm[36, :] + lm[39, :]) / 2.0 + right_eye_t = (lm[42, :] + lm[45, :]) / 2.0 + + right_eye = (int(left_eye_t[1]), int(left_eye_t[0])) + left_eye = (int(right_eye_t[1]), int(right_eye_t[0])) + + return right_eye, left_eye + +#-------------------------------------- + + def bob_annotate(self, image): + + image = rgb_to_gray(image) + lm1 = detect_landmarks(image, 1) + lm = lm1[0].landmarks + bounding_box = lm1[0].bounding_box + annotations = {} + + if lm is not None: + lm = np.array(lm) + lm = np.vstack((lm[:, 1], lm[:, 0])).T + right_eye, left_eye = self._get_eye_pos(lm) + + points = [] + for i in range(lm.shape[0]): + points.append((int(lm[i, 0]), int(lm[i, 1]))) + + annotations['topleft'] = bounding_box.topleft + annotations['bottomright'] = bounding_box.bottomright + annotations['landmarks'] = points + annotations['leye'] = left_eye + annotations['reye'] = right_eye + + return annotations + +#-------------------------------------- + + def normalize_image(self, image, n_sigma=4.0, norm_method="MAD"): + + face = image[image.shape[0]>>2:3*image.shape[0]>>2, \ + image.shape[1]>>2:3*image.shape[1]>>2] + + face = face.astype(np.float64) + image = image.astype(np.float64) + + assert(len(image.shape)==2) + + if norm_method=='STD': + + mu = np.mean(face) + std = np.std(face) + image_n=((image-mu+n_sigma*std)/(2.0*n_sigma*std))*255.0 + + if norm_method=='MAD': + + med = np.median(face) + mad = np.median(np.abs(face - med)) + image_n = ((image-med+n_sigma*mad)/(2.0*n_sigma*mad))*255.0 + + if norm_method=='MINMAX': + + t_min = np.min(face) + t_max = np.max(face) + image_n = ((image-t_min)/(t_max-t_min))*255.0 + + # Clamping to 0-255 + image_n=np.maximum(image_n, 0) + image_n=np.minimum(image_n, 255) + + image_n = image_n.astype(np.uint8) + + return image_n + +#---------------------------------------------------------- + + def process_image(self, filename): + + # load the image + fc = h5py.File(os.path.join(ORIGINAL_DIRECTORY, filename.path + ".hdf5")) + + annotations = {} + for i, frame in enumerate(fc.keys()): + print(" Frame {:02d}".format(i)) + image = fc[frame]["array"].value + + try: + tmp_annotations = self.find_annotations(image) + + except Exception as e: + print(" Exception: {}".format(e)) + + if (i > 0) and (bool(annotations[str(i-1)])): + tmp_annotations = annotations[str(i-1)] + print(" Copying annotations of previous frame") + else: + tmp_annotations = {} + print(" Annotations for previous frame do not exist. Setting empty annotations") + + annotations[str(i)] = tmp_annotations + + json_filepath = os.path.join(self.annotation_directory, filename.path + ".json") + bob.io.base.create_directories_safe(directory=os.path.split(json_filepath)[0], dryrun=False) + with open(json_filepath, "w+") as json_file: + json_file.write(json.dumps(annotations)) + + fc.close() + + return + +#-------------------------------------- + + def run(self, job_index): + + total = len(self.file_objects) + print("Found {} files to be annotated".format(total)) + + if(job_index != -1): + num_jobs = 32 + file_range = np.linspace(0, total, num_jobs+1, dtype=np.int) + + start_id = file_range[job_index] + end_id = file_range[job_index+1] + else: + start_id = 0 + end_id = total + + print("Processing Job Index: {} (Files: {} to {})".format(job_index, start_id, end_id)) + + for i, f in enumerate(self.file_objects[start_id:end_id]): + + print("[{:03d}/{:03d}] Sample: {}".format(i+1, total, f.path)) + + json_filepath = os.path.join(self.annotation_directory, f.path + ".json") + if not os.path.exists(json_filepath): + self.process_image(f) + else: + print("Annotations exist for {}. Skipping".format(f.path)) + +#---------------------------------------------------------- + +def main(): + + job_index = int(float(sys.argv[1])) + print("# Job Index: {}".format(job_index)) + + input_directory = ORIGINAL_DIRECTORY #sys.argv[1] + annotation_directory = "/idiap/temp/kkotwal/nmad_experiments/annotations/mlfp" + + ag = AnnotationGenerator(input_directory, annotation_directory) + ag.run(job_index) + +#---------------------------------------------------------- + +if __name__ == "__main__": + + main() + +#---------------------------------------------------------- + + + + + diff --git a/bob/paper/nir_patch_pooling/script/convert_mlfp_database.py b/bob/paper/nir_patch_pooling/script/convert_mlfp_database.py new file mode 100755 index 0000000000000000000000000000000000000000..75d495f1f5923b48f87bf45441b839636cbd3a38 --- /dev/null +++ b/bob/paper/nir_patch_pooling/script/convert_mlfp_database.py @@ -0,0 +1,150 @@ +# +# script to generate face annotations for NMAD directly over NIR data +# @ Ketan Kotwal +# +#---------------------------------------------------------- + + +# imports +from bob.pad.face.preprocessor.FaceCropAlign import detect_face_landmarks_in_image +from bob.ip.color import rgb_to_gray +from bob.ip.facelandmarks import detect_landmarks +from bob.bio.video import FrameContainer +import bob.io.base +import numpy as np +import scipy.io as spio +import os, sys + + +#import logging +#logger = logging.getLogger(__name__) +#logger.setLevel(logging.INFO) + +#---------------------------------------------------------- + +class MLFPConvertor: + + def __init__(self, input_directory, output_directory): + + self.input_directory = input_directory.rstrip("/") + self.output_directory = output_directory.rstrip("/") + if not os.path.exists(self.output_directory): + os.makedirs(self.output_directory) + + self.file_objects = self._load_db(self.input_directory) + + print("Input directory: {}".format(self.input_directory)) + print("output directory: {}".format(self.output_directory)) + +#-------------------------------------- + + def _load_db(self, _): + + file_list = [] + for dirpath, dirs, files in os.walk(self.input_directory): + for name in files: + file_path = os.path.join(dirpath, name) + file_path = file_path[43:] + if ("Infrared.mat" in file_path): + file_list.append(file_path[:-4]) + + print("Found {} feature files to be fused".format(len(file_list))) + + print(file_list[:10]) + return file_list + +#---------------------------------------------------------- + + def process_file(self, filename): + + # load the file + fc = spio.loadmat(os.path.join(self.input_directory, filename + ".mat")) + fc = fc["IR"] + + fc_bob = FrameContainer() + for i, frame in enumerate(fc[:20]): + #print(" Frame {:02d}".format(i)) + frame = frame[0]/256.0 + fc_bob.add(i, frame.astype(np.uint8), None) + + out_filepath = os.path.join(self.output_directory, filename + ".hdf5") + bob.io.base.create_directories_safe(directory=os.path.split(out_filepath)[0], dryrun=False) + + print(len(fc_bob), type(fc_bob)) + f_out = bob.io.base.HDF5File(out_filepath, 'w') + fc_bob.save(f_out) + del f_out + + return + +#-------------------------------------- + + def run(self): + + total = len(self.file_objects) + print("Found {} files to be converted".format(total)) + + for i, f in enumerate(self.file_objects[:]): + + print("[{:03d}/{:03d}] Sample: {}".format(i+1, total, f)) + + json_filepath = os.path.join(self.output_directory, f + ".hdf5") + if not os.path.exists(json_filepath): + self.process_file(f) + else: + print("File exist for {}. Skipping".format(f)) + +#---------------------------------------------------------- + + def get_protocol(self): + + real = [] + attack = [] + + for i, path in enumerate(self.file_objects[:]): + print(path) + if("/R" in path): + line = "{} {}".format(path, str(000)) + real.append(line) + elif("/M" in path): + line = "{} {} {}".format(path, str(111), "attack") + attack.append(line) + else: + print("dont know: ", path) + + print("BF: {}. PA: {}".format(len(real), len(attack))) + + with open("for_real.lst", "w") as f: + f.write("\n".join(real) + "\n") + + with open("for_attack.lst", "w") as f: + f.write("\n".join(attack) + "\n") + + + return + + +#---------------------------------------------------------- + + +def main(): + + input_directory = "/idiap/resource/database/MLFP/NIR_Protocol" + output_directory = "/idiap/temp/kkotwal/nmad_experiments/mlfp_int2/" + + ag = MLFPConvertor(input_directory, output_directory) + #ag.get_protocol() + ag.run() + +#---------------------------------------------------------- + +if __name__ == "__main__": + + main() + +#---------------------------------------------------------- + + + + +