diff --git a/database/create_database_dataframe.py b/database/create_database_dataframe.py index 05bfedb90ab97bbbf39bf160fb9e4a2831d1d1f9..91304f58035f495c68f4865348c6df6073b6c87a 100644 --- a/database/create_database_dataframe.py +++ b/database/create_database_dataframe.py @@ -22,6 +22,7 @@ import argparse import pandas as pd from bob.bio.face.annotator import MTCNN from bob.io.base import load +import csv def detect_faces(frame, min_face_size): """_summary_ @@ -35,59 +36,197 @@ def detect_faces(frame, min_face_size): landmarks = landmarks.numpy() return nb_detected_faces, probs, boxes, landmarks -def create_metadata_file(frames_list, output_path, metadata_filename, save_mode, min_face_size): +def create_metadata_file(frames_list, output_path, metadata_filename, min_face_size): # Check if output path exists if not os.path.exists(output_path): os.makedirs(output_path) + metadata_bonafide = [] + metadata_print = [] + metadata_replay = [] + metadata_hygmask = [] + # Open the file containing the list of frames - my_file = open(frames_list, "r") - metadata = [] - - for line in my_file.readlines(): - path = os.path.split(line)[0] - filename = os.path.split(line)[-1].strip() - filename_split = filename.split("_") - subject_id = filename_split[0] - recording_device = filename_split[1] - camera = filename_split[2] - attack_type = filename_split[3] - scenario = filename_split[4] - replay_device = filename_split[5] - source_video = filename_split[6] - session = filename_split[7] - frame_nb = filename_split[-1].split(".")[0].split("-")[-1] - reference_id = '_'.join((filename_split[0])) # Should be replaced by template_id - frame = load(line) - nb_detected_faces, probs, boxes, landmarks = detect_faces(frame, min_face_size) - - metadata.append( - { - 'path': os.path.join(path, filename), - 'key': os.path.join(subject_id, filename), # the key is used to save files when checkpointing is set to True - 'filename': filename, - 'subject_id': int(subject_id), - 'reference_id': reference_id, # Should be replaced by template_id - 'camera': camera, - 'recording_device': recording_device, - 'replay_device': replay_device, - 'source_video': source_video, - 'scenario': scenario, - 'session': session, - 'attack_type': attack_type, - 'frame_nb': frame_nb, - 'no_faces': nb_detected_faces, - 'probs_faces': probs, - 'boxes': boxes, - 'landmarks': landmarks, - } - ) - - my_file.close() - # Put your list in a dataframe - df = pd.DataFrame(metadata) - # Save the dataframe into pickle - df.to_pickle(os.path.join(output_path, '.'.join((metadata_filename, 'pkl')))) + with open(frames_list, 'r') as my_file: + csvreader = csv.reader(my_file) + for row in csvreader: + row = row[0] + # import ipdb; ipdb.set_trace() + # Check if the string contains the word bonafide (case insensitive) + if "bonafide" in row.lower(): + metadata_bonafide.append(create_dataframe_bonafide(row, min_face_size)) + # Check if the string contains the word print (case insensitive) + elif "print" in row.lower(): + metadata_print.append(create_dataframe_print(row, min_face_size)) + # Check if the string contains the word replay (case insensitive) + elif "replay" in row.lower(): + metadata_replay.append(create_dataframe_replay(row, min_face_size)) + # Check if the string contains the word hygmask (case insensitive) + elif "hyg-mask" in row.lower(): + metadata_hygmask.append(create_dataframe_hygmask(row, min_face_size)) + else: + raise ValueError("The path does not contain any information about the type of the data: {bonafide, print, replay, hygmask}") + + # Put your bonafide list in a dataframe + df = pd.DataFrame(metadata_bonafide) + # Save the bonafide dataframe into pickle + df.to_pickle(os.path.join(output_path, '.'.join((metadata_filename + "_bonafide", 'pkl')))) + + # Put your print list in a dataframe + df = pd.DataFrame(metadata_print) + # Save the print dataframe into pickle + df.to_pickle(os.path.join(output_path, '.'.join((metadata_filename + "_print", 'pkl')))) + + # Put your replay list in a dataframe + df = pd.DataFrame(metadata_replay) + # Save the replay dataframe into pickle + df.to_pickle(os.path.join(output_path, '.'.join((metadata_filename + "_replay", 'pkl')))) + + # Put your hygmask list in a dataframe + df = pd.DataFrame(metadata_hygmask) + # Save the hygmask dataframe into pickle + df.to_pickle(os.path.join(output_path, '.'.join((metadata_filename + "_hygmask", 'pkl')))) + + +def create_dataframe_bonafide(full_path, min_face_size): + path = os.path.split(full_path)[0] + filename = os.path.split(full_path)[-1].strip() + filename_split = filename.split("_") + subject_id = filename_split[0] + recording_device = filename_split[1] + camera = filename_split[2] + attack_type = "" + scenario = filename_split[4] + session = filename_split[5] + frame_nb = filename_split[-1].split(".")[0].split("-")[-1] + reference_id = '_'.join((filename_split[0])) # Should be replaced by template_id + frame = load(full_path) + nb_detected_faces, probs, boxes, landmarks = detect_faces(frame, min_face_size) + + return { + 'path': os.path.join(path, filename), + 'key': os.path.join(subject_id, filename), # the key is used to save files when checkpointing is set to True + 'filename': filename, + 'subject_id': int(subject_id), + 'reference_id': reference_id, # Should be replaced by template_id + 'camera': camera, + 'recording_device': recording_device, + 'replay_device': "", + 'source_video': "", + 'scenario': scenario, + 'session': session, + 'attack_type': attack_type, + 'frame_nb': frame_nb, + 'no_faces': nb_detected_faces, + 'probs_faces': probs, + 'boxes': boxes, + 'landmarks': landmarks, + } + +def create_dataframe_print(full_path, min_face_size): + path = os.path.split(full_path)[0] + filename = os.path.split(full_path)[-1].strip() + filename_split = filename.split("_") + subject_id = filename_split[0] + recording_device = filename_split[1] + camera = filename_split[2] + attack_type = filename_split[4] + frame_nb = filename_split[-1].split(".")[0].split("-")[-1] + reference_id = '_'.join((filename_split[0])) # Should be replaced by template_id + frame = load(full_path) + nb_detected_faces, probs, boxes, landmarks = detect_faces(frame, min_face_size) + + return { + 'path': os.path.join(path, filename), + 'key': os.path.join(subject_id, filename), # the key is used to save files when checkpointing is set to True + 'filename': filename, + 'subject_id': int(subject_id), + 'reference_id': reference_id, # Should be replaced by template_id + 'camera': camera, + 'recording_device': recording_device, + 'replay_device': "", + 'source_video': "", + 'scenario': "", + 'session': "", + 'attack_type': attack_type, + 'frame_nb': frame_nb, + 'no_faces': nb_detected_faces, + 'probs_faces': probs, + 'boxes': boxes, + 'landmarks': landmarks, + } + +def create_dataframe_replay(full_path, min_face_size): + path = os.path.split(full_path)[0] + filename = os.path.split(full_path)[-1].strip() + filename_split = filename.split("_") + subject_id = filename_split[0] + recording_device = filename_split[1] + camera = filename_split[2] + attack_type = filename_split[4] + scenario = filename_split[5] + replay_device = filename_split[6] + source_video = filename_split[7] + session = filename_split[8] + frame_nb = filename_split[-1].split(".")[0].split("-")[-1] + reference_id = '_'.join((filename_split[0])) # Should be replaced by template_id + frame = load(full_path) + nb_detected_faces, probs, boxes, landmarks = detect_faces(frame, min_face_size) + + return { + 'path': os.path.join(path, filename), + 'key': os.path.join(subject_id, filename), # the key is used to save files when checkpointing is set to True + 'filename': filename, + 'subject_id': int(subject_id), + 'reference_id': reference_id, # Should be replaced by template_id + 'camera': camera, + 'recording_device': recording_device, + 'replay_device': replay_device, + 'source_video': source_video, + 'scenario': scenario, + 'session': session, + 'attack_type': attack_type, + 'frame_nb': frame_nb, + 'no_faces': nb_detected_faces, + 'probs_faces': probs, + 'boxes': boxes, + 'landmarks': landmarks, + } + +def create_dataframe_hygmask(full_path, min_face_size): + path = os.path.split(full_path)[0] + filename = os.path.split(full_path)[-1].strip() + filename_split = filename.split("_") + subject_id = filename_split[0] + recording_device = filename_split[1] + camera = filename_split[2] + attack_type = filename_split[4] + scenario = filename_split[5] + frame_nb = filename_split[-1].split(".")[0].split("-")[-1] + reference_id = subject_id # Should be replaced by template_id + frame = load(full_path) + nb_detected_faces, probs, boxes, landmarks = detect_faces(frame, min_face_size) + + return { + 'path': os.path.join(path, filename), + 'key': os.path.join(subject_id, filename), # the key is used to save files when checkpointing is set to True + 'filename': filename, + 'subject_id': int(subject_id), + 'reference_id': reference_id, # Should be replaced by template_id + 'camera': camera, + 'recording_device': recording_device, + 'replay_device': "", + 'source_video': "", + 'scenario': scenario, + 'session': "", + 'attack_type': attack_type, + 'frame_nb': frame_nb, + 'no_faces': nb_detected_faces, + 'probs_faces': probs, + 'boxes': boxes, + 'landmarks': landmarks, + } + if __name__ == '__main__': @@ -102,4 +241,4 @@ if __name__ == '__main__': # Parse the arguments args = parser.parse_args() - create_metadata_file(args.frames_list, args.output_path, args.metadata_filename, args.save_mode, args.min_face_size) + create_metadata_file(args.frames_list, args.output_path, args.metadata_filename, args.min_face_size) diff --git a/frames.csv b/frames.csv deleted file mode 100644 index 047f6ac245813fa01c4deff25b40b01efd8a03ce..0000000000000000000000000000000000000000 --- a/frames.csv +++ /dev/null @@ -1,319 +0,0 @@ -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-0.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-1.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-2.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-3.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-4.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-5.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-6.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-7.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-8.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-9.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-10.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-11.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-12.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-13.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-14.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-15.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-16.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-17.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-18.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/1/1_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-19-15_frame-19.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-0.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-1.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-2.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-3.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-4.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-5.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-6.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-7.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-8.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-9.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-10.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-11.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-12.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-13.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-14.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-15.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-16.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-17.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/2/2_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-21-40_frame-18.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-0.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-1.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-2.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-3.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-4.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-5.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-6.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-7.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-8.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-9.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-10.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-11.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-12.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-13.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-14.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-15.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-16.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-17.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-18.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/3/3_Redmi6pro_Front_ATTACK_hyg-mask_set-4_2023-02-41T15-23-35_frame-19.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-0.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-1.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-2.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-3.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-4.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-5.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-6.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-7.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-8.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-9.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-10.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-11.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-12.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-13.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-14.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-15.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-16.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-17.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-18.jpg -/idiap/temp/akomaty/trash/data/hyg_mask_attack/4/4_iPhone12_Front_ATTACK_hyg-mask_set-4_2023-02-10T14-25-54_frame-19.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-0.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-1.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-2.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-3.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-4.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-5.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-6.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-7.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-8.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-9.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-10.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-11.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-12.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-13.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-14.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-15.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-16.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-17.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-18.jpg -/idiap/temp/akomaty/trash/data/print_attack/1/1_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-05_frame-19.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-0.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-1.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-2.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-3.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-4.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-5.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-6.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-7.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-8.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-9.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-10.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-11.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-12.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-13.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-14.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-15.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-16.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-17.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-18.jpg -/idiap/temp/akomaty/trash/data/print_attack/2/2_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-21_frame-19.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-0.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-1.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-2.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-3.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-4.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-5.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-6.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-7.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-8.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-9.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-10.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-11.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-12.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-13.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-14.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-15.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-16.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-17.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-18.jpg -/idiap/temp/akomaty/trash/data/print_attack/3/3_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-36_frame-19.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-0.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-1.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-2.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-3.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-4.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-5.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-6.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-7.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-8.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-9.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-10.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-11.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-12.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-13.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-14.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-15.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-16.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-17.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-18.jpg -/idiap/temp/akomaty/trash/data/print_attack/4/4_iPhone12_Front_ATTACK_a1-print_2022-12-14T14-13-51_frame-19.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-0.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-1.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-2.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-3.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-4.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-5.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-6.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-7.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-8.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-9.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-10.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-11.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-12.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-13.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-14.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-15.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-16.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-17.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-18.jpg -/idiap/temp/akomaty/trash/data/replay_attack/1/1_iPhone6s_front_ATTACK_replay-attack_1_Redmi6pro_iPhone12_s1_frame-19.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-0.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-1.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-2.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-3.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-4.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-5.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-6.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-7.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-8.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-9.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-10.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-11.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-12.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-13.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-14.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-15.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-16.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-17.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-18.jpg -/idiap/temp/akomaty/trash/data/replay_attack/2/2_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-19.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-0.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-1.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-2.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-3.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-4.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-5.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-6.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-7.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-8.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-9.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-10.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-11.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-12.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-13.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-14.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-15.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-16.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-17.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-18.jpg -/idiap/temp/akomaty/trash/data/replay_attack/3/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1_frame-19.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-0.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-1.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-2.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-3.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-4.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-5.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-6.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-7.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-8.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-9.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-10.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-11.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-12.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-13.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-14.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-15.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-16.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-17.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-18.jpg -/idiap/temp/akomaty/trash/data/replay_attack/4/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1_frame-19.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-0.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-1.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-2.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-3.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-4.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-5.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-6.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-7.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-8.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-9.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-10.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-11.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-12.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-13.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-14.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-15.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-16.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-17.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-18.jpg -/idiap/temp/akomaty/trash/data/bonafide/1/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58_frame-19.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-0.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-1.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-2.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-3.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-4.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-5.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-6.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-7.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-8.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-9.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-10.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-11.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-12.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-13.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-14.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-15.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-16.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-17.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-18.jpg -/idiap/temp/akomaty/trash/data/bonafide/2/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16_frame-19.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-0.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-1.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-2.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-3.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-4.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-5.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-6.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-7.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-8.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-9.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-10.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-11.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-12.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-13.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-14.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-15.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-16.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-17.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-18.jpg -/idiap/temp/akomaty/trash/data/bonafide/3/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49_frame-19.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-0.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-1.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-2.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-3.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-4.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-5.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-6.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-7.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-8.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-9.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-10.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-11.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-12.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-13.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-14.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-15.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-16.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-17.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-18.jpg -/idiap/temp/akomaty/trash/data/bonafide/4/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18_frame-19.jpg diff --git a/pipeline_vuln.py b/pipeline_vuln.py index 71ad2c172012ced63a642fbc215f945bb50613a7..56c6341604d94461e84d3b1437b4a0f4dd6badb4 100644 --- a/pipeline_vuln.py +++ b/pipeline_vuln.py @@ -29,11 +29,11 @@ def run_pipeline(root, bonafide_annotations_path, print_path, replay_path, hyg_a # Create a references dataframe containing only files from the first session, the main camera only, and the first scenario: indoor normal light session_id = "s1" - scene_id = 0 + scene = "indoor-normal-light" nb_of_frames = 4 # the number of frames to be selected - protocol_references_dev = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario_id == @scene_id) & (with_mask==False) &(subject_id <= 70))' - protocol_references_eval = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario_id == @scene_id) & (with_mask==False) &(subject_id > 69))' + protocol_references_dev = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario == @scene) &(subject_id <= 3))' + protocol_references_eval = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario == @scene) &(subject_id > 3))' ## Dataframes for references, dev and eval references_df_dev=df.query(protocol_references_dev) @@ -42,8 +42,8 @@ def run_pipeline(root, bonafide_annotations_path, print_path, replay_path, hyg_a # Create a probes dataframe containing only files from the second session, the main camera only, and the first scenario: indoor normal light session_id = "s2" - protocol_probes_dev = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario_id == @scene_id) & (with_mask==False) & (subject_id <= 70))' - protocol_probes_eval = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario_id == @scene_id) & (with_mask==False) & (subject_id > 69))' + protocol_probes_dev = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario == @scene) & (subject_id <= 3))' + protocol_probes_eval = '((session==@session_id) & (frame_nb < @nb_of_frames) & (scenario == @scene) & (subject_id > 3))' probes_df_dev=df.query(protocol_probes_dev) probes_df_eval=df.query(protocol_probes_eval) @@ -58,8 +58,8 @@ def run_pipeline(root, bonafide_annotations_path, print_path, replay_path, hyg_a # Add the print attack frames to the probes dataframe df_print = load_annotations(print_path) - protocol_probes_dev_print = '((frame_nb < @nb_of_frames) & (subject_id <= 70))' - protocol_probes_eval_print = '((frame_nb < @nb_of_frames) & (subject_id > 69))' + protocol_probes_dev_print = '((frame_nb < @nb_of_frames) & (subject_id <= 3))' + protocol_probes_eval_print = '((frame_nb < @nb_of_frames) & (subject_id > 3))' probes_df_dev_print=df_print.query(protocol_probes_dev_print) probes_df_eval_print=df_print.query(protocol_probes_eval_print) @@ -79,8 +79,8 @@ def run_pipeline(root, bonafide_annotations_path, print_path, replay_path, hyg_a rep_att_scene = '1' - protocol_probes_dev_replay = '((frame_nb < @nb_of_frames) & (rep_att_scenario == @rep_att_scene) & (subject_id <= 70))' - protocol_probes_eval_replay = '((frame_nb < @nb_of_frames) & (rep_att_scenario == @rep_att_scene) & (subject_id > 69))' + protocol_probes_dev_replay = '((frame_nb < @nb_of_frames) & (scenario == @rep_att_scene) & (subject_id <= 3))' + protocol_probes_eval_replay = '((frame_nb < @nb_of_frames) & (scenario == @rep_att_scene) & (subject_id > 3))' probes_df_dev_replay=df_replay.query(protocol_probes_dev_replay) probes_df_eval_replay=df_replay.query(protocol_probes_eval_replay) @@ -98,8 +98,8 @@ def run_pipeline(root, bonafide_annotations_path, print_path, replay_path, hyg_a # Add the hygienic mask attack frames to the probes dataframe df_hyg = load_annotations(hyg_attack_path) - protocol_probes_dev_hyg = '(subject_id <= 70)' - protocol_probes_eval_hyg = '(subject_id > 69)' + protocol_probes_dev_hyg = '(subject_id <= 3)' + protocol_probes_eval_hyg = '(subject_id > 3)' probes_df_dev_hyg=df_hyg.query(protocol_probes_dev_hyg) probes_df_eval_hyg=df_hyg.query(protocol_probes_eval_hyg) @@ -168,7 +168,6 @@ def run_pipeline(root, bonafide_annotations_path, print_path, replay_path, hyg_a matching_dev=matching_dev, original_directory=root) - from bob.pipelines.config.distributed.sge_demanding import dask_client from bob.extension.log import setup, set_verbosity_level logger = setup('bob') @@ -176,8 +175,7 @@ def run_pipeline(root, bonafide_annotations_path, print_path, replay_path, hyg_a pipeline = iresnet_template() - # dask_client = "single-threaded" - bob.bio.base.pipelines.entry_points.execute_pipeline_simple(pipeline, soteria_db, dask_client = dask_client, groups=["dev", "eval"], output=OUTPUT_PATH, dask_n_partitions=None, write_metadata_scores=True, checkpoint=True, dask_partition_size=16, dask_n_workers=None) + bob.bio.base.pipelines.entry_points.execute_pipeline_simple(pipeline, soteria_db, dask_client = "single-threaded", groups=["dev", "eval"], output=OUTPUT_PATH, dask_n_partitions=None, write_metadata_scores=True, checkpoint=True, dask_partition_size=16, dask_n_workers=None) if __name__ == '__main__': diff --git a/preprocessor/extract_frames.py b/preprocessor/extract_frames.py index 30b0cd3d32f121e42d7d2f54abb65809814ad428..3dd74a586a736ae8a8104967e6b0845da50bbb0a 100644 --- a/preprocessor/extract_frames.py +++ b/preprocessor/extract_frames.py @@ -24,7 +24,7 @@ from bob.bio.video import VideoAsArray from bob.io.image import to_matplotlib def extract_frames(video_list, output_path, max_number_of_frames): - + frames_list = [] with open(video_list, 'r') as fp: for video_path in fp: video_path = video_path.strip() @@ -38,8 +38,14 @@ def extract_frames(video_list, output_path, max_number_of_frames): index = 0 for frame in myvid: dest_file_path = os.path.join(id_path, filename + "_frame-" + str(index)+ '.jpg') + frames_list.append(dest_file_path) matplotlib.image.imsave(dest_file_path, to_matplotlib(frame)) index +=1 + # save the frames list to a csv file + with open(os.path.join(output_path, "frames.csv"), 'w') as f: + for item in frames_list: + f.write("%s\n" % item) + if __name__ == '__main__': # Create an ArgumentParser object diff --git a/videos.txt b/test_videos.txt similarity index 77% rename from videos.txt rename to test_videos.txt index 91e2d14905ec5cfa974960b6d67b456984a933c9..f67d05384a01be4f53d87f4b1bebfac75776fd4e 100644 --- a/videos.txt +++ b/test_videos.txt @@ -11,6 +11,10 @@ /idiap/resource/database/PHyMAtt/attack/replay_attack/3_iPhone6s_front_ATTACK_replay-attack_1_iPhone12_Redmi9A_s1.mp4 /idiap/resource/database/PHyMAtt/attack/replay_attack/4_iPhone12_front_ATTACK_replay-attack_1_iPhone6s_Redmi9A_s1.mp4 /idiap/resource/database/PHyMAtt/bonafide/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-07-58.mp4 +/idiap/resource/database/PHyMAtt/bonafide/1_iPhone12_Front_BONAFIDE_indoor-normal-light_s2_2022-10-25T12-29-24.mp4 /idiap/resource/database/PHyMAtt/bonafide/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-21-16.mp4 +/idiap/resource/database/PHyMAtt/bonafide/2_iPhone12_Front_BONAFIDE_indoor-normal-light_s2_2022-10-25T12-15-40.mp4 /idiap/resource/database/PHyMAtt/bonafide/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-09T12-33-49.mp4 -/idiap/resource/database/PHyMAtt/bonafide/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18.mp4 \ No newline at end of file +/idiap/resource/database/PHyMAtt/bonafide/3_iPhone12_Front_BONAFIDE_indoor-normal-light_s2_2022-10-25T12-29-44.mp4 +/idiap/resource/database/PHyMAtt/bonafide/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s1_2022-09-12T07-20-18.mp4 +/idiap/resource/database/PHyMAtt/bonafide/4_iPhone12_Front_BONAFIDE_indoor-normal-light_s2_2022-10-04T14-15-33.mp4 \ No newline at end of file diff --git a/utils/_utils.py b/utils/_utils.py index d9cb8abcb94a6e647b9db498575dd712bff93483..d9bd5851d67c0d3ba2f212b7e934a8ba32408e85 100644 --- a/utils/_utils.py +++ b/utils/_utils.py @@ -141,7 +141,8 @@ def create_matchings_for_attacks(probes_df): probes (pandas dataframe): _description_ references (set of reference_ids (template_ids)): _description_ """ - id = probes_df['filename'].str.split('_').str[0] + '_s1' + # id = probes_df['filename'].str.split('_').str[0] + '_s1' + id = probes_df['filename'].str.split('_').str[0] matching = probes_df['filename'] matching = pd.DataFrame(matching) matching.columns = ["probe_reference_id"] diff --git a/utils/load_annotations.py b/utils/load_annotations.py index da498ba384c0d8c4c1ce8b86fd7def3c11563102..0a12d4d6429c846a9b124c2b0d4e1d6b0ae61b18 100644 --- a/utils/load_annotations.py +++ b/utils/load_annotations.py @@ -11,10 +11,18 @@ from utils import _utils import pandas as pd def load_annotations(annotations_path): - frames = [ _utils.process_df(os.path.join(annotations_path, f)) for f in os.listdir(annotations_path)] - df = pd.concat(frames) - df['frame_nb'] = df['frame_nb'].astype(int) - return df + # check if annoation_path is a file or a directory + if os.path.isfile(annotations_path): + df = _utils.process_df(annotations_path) + df['frame_nb'] = df['frame_nb'].astype(int) + return df + elif os.path.isdir(annotations_path): + frames = [ _utils.process_df(os.path.join(annotations_path, f)) for f in os.listdir(annotations_path)] + df = pd.concat(frames) + df['frame_nb'] = df['frame_nb'].astype(int) + return df + else: + raise ValueError("The annotations_path is neither a file nor a directory.") if __name__ == '__main__':