Spaces:
Sleeping
Sleeping
| import os | |
| import numpy as np | |
| import torch | |
| from ..core import FaceDetector | |
| class FolderDetector(FaceDetector): | |
| '''This is a simple helper module that assumes the faces were detected already | |
| (either previously or are provided as ground truth). | |
| The class expects to find the bounding boxes in the same format used by | |
| the rest of face detectors, mainly ``list[(x1,y1,x2,y2),...]``. | |
| For each image the detector will search for a file with the same name and with one of the | |
| following extensions: .npy, .t7 or .pth | |
| ''' | |
| def __init__(self, device, path_to_detector=None, verbose=False): | |
| super(FolderDetector, self).__init__(device, verbose) | |
| def detect_from_image(self, tensor_or_path): | |
| # Only strings supported | |
| if not isinstance(tensor_or_path, str): | |
| raise ValueError | |
| base_name = os.path.splitext(tensor_or_path)[0] | |
| if os.path.isfile(base_name + '.npy'): | |
| detected_faces = np.load(base_name + '.npy') | |
| elif os.path.isfile(base_name + '.t7'): | |
| detected_faces = torch.load(base_name + '.t7') | |
| elif os.path.isfile(base_name + '.pth'): | |
| detected_faces = torch.load(base_name + '.pth') | |
| else: | |
| raise FileNotFoundError | |
| if not isinstance(detected_faces, list): | |
| raise TypeError | |
| return detected_faces | |
| def reference_scale(self): | |
| return 195 | |
| def reference_x_shift(self): | |
| return 0 | |
| def reference_y_shift(self): | |
| return 0 | |