Spaces:
Running
Running
| import os | |
| import sys | |
| import warnings | |
| import os.path as osp | |
| ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
| root_path = osp.abspath(osp.join(__file__, osp.pardir, osp.pardir)) | |
| sys.path.append(root_path) | |
| from feature_extraction.extractor_mediapipe import ExtractorMediaPipe | |
| warnings.filterwarnings("ignore") | |
| class FeaturesExtractor: | |
| def __init__(self, extraction_library="mediapipe", blink_detection=False, upscale=1): | |
| self.upscale = upscale | |
| self.blink_detection = blink_detection | |
| self.extraction_library = extraction_library | |
| self.feature_extractor = ExtractorMediaPipe(self.upscale) | |
| def __call__(self, image): | |
| results = {} | |
| face = self.feature_extractor.extract_face(image) | |
| if face is None: | |
| # print("No face found. Skipped feature extraction!") | |
| return None | |
| else: | |
| results["img"] = image | |
| results["face"] = face | |
| eyes_data = self.feature_extractor.extract_eyes(image, self.blink_detection) | |
| if eyes_data is None: | |
| # print("No eyes found. Skipped feature extraction!") | |
| return results | |
| else: | |
| results["eyes"] = eyes_data | |
| if eyes_data["blinked"]: | |
| # print("Found blinked eyes!") | |
| return results | |
| else: | |
| iris_data = self.feature_extractor.extract_iris(image) | |
| if iris_data is None: | |
| # print("No iris found. Skipped feature extraction!") | |
| return results | |
| else: | |
| results["iris"] = iris_data | |
| return results | |