Coverage for src/bob/pad/face/database/replay_attack.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2023-12-06 23:20 +0100

1import logging 

2 

3from clapper.rc import UserDefaults 

4 

5from bob.bio.base.database.utils import download_file 

6from bob.pad.base.database import FileListPadDatabase 

7from bob.pad.face.database import VideoPadSample 

8 

9logger = logging.getLogger(__name__) 

10rc = UserDefaults("bobrc.toml") 

11 

12 

13def ReplayAttackPadDatabase( 

14 protocol="grandtest", 

15 selection_style=None, 

16 max_number_of_frames=None, 

17 step_size=None, 

18 annotation_directory=None, 

19 annotation_type=None, 

20 fixed_positions=None, 

21 **kwargs, 

22): 

23 name = "pad-face-replay-attack-aca6b46f.tar.gz" 

24 dataset_protocols_path = download_file( 

25 urls=[f"http://www.idiap.ch/software/bob/data/bob/bob.pad.face/{name}"], 

26 destination_filename=name, 

27 destination_sub_directory="protocols/pad", 

28 checksum="aca6b46f", 

29 ) 

30 

31 if annotation_directory is None: 

32 name = "annotations-replay-attack-mtcnn-8d1f4c12.tar.gz" 

33 annotation_directory = download_file( 

34 urls=[ 

35 f"http://www.idiap.ch/software/bob/data/bob/bob.pad.face/{name}" 

36 ], 

37 destination_filename=name, 

38 destination_sub_directory="annotations", 

39 checksum="8d1f4c12", 

40 ) 

41 annotation_type = "eyes-center" 

42 

43 transformer = VideoPadSample( 

44 original_directory=rc.get("bob.db.replay_attack.directory"), 

45 annotation_directory=annotation_directory, 

46 selection_style=selection_style, 

47 max_number_of_frames=max_number_of_frames, 

48 step_size=step_size, 

49 ) 

50 

51 database = FileListPadDatabase( 

52 name="replay-attack", 

53 dataset_protocols_path=dataset_protocols_path, 

54 protocol=protocol, 

55 transformer=transformer, 

56 **kwargs, 

57 ) 

58 database.annotation_type = annotation_type 

59 database.fixed_positions = fixed_positions 

60 return database