def process(self): extractor_name = "Align" # TODO Pass as argument self.extractor = PluginLoader.get_extractor(extractor_name)() processes = self.arguments.processes try: if processes != 1: files = list(self.read_directory()) for filename, faces in tqdm(pool_process(self.processFiles, files, processes=processes), total=len(files)): self.num_faces_detected += 1 self.faces_detected[os.path.basename(filename)] = faces else: try: for filename in tqdm(self.read_directory()): image = cv2.imread(filename) self.faces_detected[os.path.basename( filename)] = self.handleImage(image, filename) except Exception as e: print( 'Failed to extract from image: {}. Reason: {}'.format( filename, e)) finally: self.write_alignments()
def load_extractor(): """ Load the requested extractor for extraction """ # TODO Pass as argument extractor_name = "Align" extractor = PluginLoader.get_extractor(extractor_name)() return extractor
def __init__(self, frames, alignments, size=256, padding=48, align_eyes=False): self.size = size self.padding = padding self.align_eyes = align_eyes self.extractor = PluginLoader.get_extractor("Align")() self.alignments = alignments self.frames = frames self.current_frame = None self.faces = list() self.matrices = list()
def process(self): extractor_name = "Align" # TODO Pass as argument extractor = PluginLoader.get_extractor(extractor_name)() try: for filename in self.read_directory(): image = cv2.imread(filename) for idx, face in self.get_faces(image): resized_image = extractor.extract(image, face, 256) output_file = self.output_dir / Path(filename).stem cv2.imwrite(str(output_file) + str(idx) + Path(filename).suffix, resized_image) except Exception as e: print('Failed to extract from image: {}. Reason: {}'.format(filename, e))
def process(self): extractor_name = "Align" # TODO Pass as argument self.extractor = PluginLoader.get_extractor(extractor_name)() self.faces_detected = 0 processes = self.arguments.processes if processes != 1: files = list(self.read_directory()) for _ in tqdm(pool_process(self.processFiles, files, processes=processes), total = len(files)): self.faces_detected +=1 else: try: for filename in tqdm(self.read_directory()): self.handleImage(filename) except Exception as e: print('Failed to extract from image: {}. Reason: {}'.format(filename, e))
def process(self): extractor_name = "Align" # TODO Pass as argument extractor = PluginLoader.get_extractor(extractor_name)() try: for filename in self.read_directory(): image = cv2.imread(filename) for idx, face in self.get_faces(image): resized_image = extractor.extract(image, face, 256) output_file = self.output_dir / Path(filename).stem cv2.imwrite( str(output_file) + str(idx) + Path(filename).suffix, resized_image) except Exception as e: print('Failed to extract from image: {}. Reason: {}'.format( filename, e))
def process_image(self, filename): extractor = PluginLoader.get_extractor("Align")() try: image = cv2.imread(filename) for (idx, face) in enumerate(detect_faces(image)): if idx > 0 and self.arguments.verbose: print('- Found more than one face!') self.verify_output = True resized_image = extractor.extract(image, face, 256) output_file = self.output_dir / Path(filename).stem cv2.imwrite( str(output_file) + str(idx) + Path(filename).suffix, resized_image) self.faces_detected = self.faces_detected + 1 except Exception as e: print('Failed to extract from image: {}. Reason: {}'.format( filename, e))
def process(self): extractor_name = "Align" # TODO Pass as argument self.extractor = PluginLoader.get_extractor(extractor_name)() processes = self.arguments.processes try: if processes != 1: files = list(self.read_directory()) for filename, faces in tqdm(pool_process(self.processFiles, files, processes=processes), total = len(files)): self.num_faces_detected += 1 self.faces_detected[os.path.basename(filename)] = faces else: try: for filename in tqdm(self.read_directory()): image = cv2.imread(filename) self.faces_detected[os.path.basename(filename)] = self.handleImage(image, filename) except Exception as e: print('Failed to extract from image: {}. Reason: {}'.format(filename, e)) finally: self.write_alignments()
def extract(input_path, output_path): files = os.listdir(input_path) if not len(files): raise Exception("no files inside {0}!!!".format(input_path)) extractor = PluginLoader.get_extractor("Align")() for n, _file in enumerate(files): _file_id = os.path.join(input_path, _file) #print (_file_id) output = os.path.join( output_path, _file) #"{0}.{1}".format(n, _file.split(".")[1])) if not os.path.exists(output): if os.path.isfile(_file_id): print("file {0}/{1}".format(n, len(files)), _file_id) image = cv2.imread(_file_id) try: for (idx, face) in enumerate(detect_faces(image)): resized_image = extractor.extract(image, face, 256) cv2.imwrite(output, resized_image) except Exception as e: print( 'Failed to extract from image: {}. Reason: {}'.format( _file, e)) else: print("Jump ", output)
def process(self): """ Run extraction """ print("\n[EXTRACT FACES]") # Tidy up cli output self.check_folder() self.extractor = PluginLoader.get_extractor("Align")() self.export_faces()
def load_extractor(extractor_name="Align"): """ Load the requested extractor for extraction """ extractor = PluginLoader.get_extractor(extractor_name)() return extractor
def load_extractor(extractor_name="Align"): """ Load the requested extractor for extraction """ extractor = PluginLoader.get_extractor(extractor_name)() return extractor