def __init__(self, git_model_id=None, model_filename=None, configfile=None, instance=0, image_is_aligned=False, **kwargs): logger.debug("Initializing %s: (configfile: %s, )", self.__class__.__name__, configfile) super().__init__(git_model_id, model_filename, configfile=configfile, instance=instance, **kwargs) self.input_size = 256 # Override for model specific input_size self.coverage_ratio = 1.0 # Override for model specific coverage_ratio self._plugin_type = "mask" self._image_is_aligned = image_is_aligned self._storage_name = self.__module__.split(".")[-1].replace("_", "-") self._storage_size = 128 # Size to store masks at. Leave this at default self._faces_per_filename = dict( ) # Tracking for recompiling face batches self._rollover = None # Items that are rolled over from the previous batch in get_batch self._output_faces = [] logger.debug("Initialized %s", self.__class__.__name__)
def _get_rotation_angles(rotation): """ Set the rotation angles. Includes backwards compatibility for the 'on' and 'off' options: - 'on' - increment 90 degrees - 'off' - disable - 0 is prepended to the list, as whatever happens, we want to scan the image in it's upright state """ rotation_angles = [0] if not rotation or rotation.lower() == "off": logger.debug("Not setting rotation angles") return rotation_angles if rotation.lower() == "on": rotation_angles.extend(range(90, 360, 90)) else: passed_angles = [int(angle) for angle in rotation.split(",") if int(angle) != 0] if len(passed_angles) == 1: rotation_step_size = passed_angles[0] rotation_angles.extend(range(rotation_step_size, 360, rotation_step_size)) elif len(passed_angles) > 1: rotation_angles.extend(passed_angles) logger.debug("Rotation Angles: %s", rotation_angles) return rotation_angles
def __init__(self, git_model_id=None, model_filename=None, configfile=None, instance=0, normalize_method=None, re_feed=0, **kwargs): logger.debug("Initializing %s: (normalize_method: %s, re_feed: %s)", self.__class__.__name__, normalize_method, re_feed) super().__init__(git_model_id, model_filename, configfile=configfile, instance=instance, **kwargs) self._normalize_method = None self._re_feed = re_feed self.set_normalize_method(normalize_method) self._plugin_type = "align" self._faces_per_filename = dict( ) # Tracking for recompiling face batches self._rollover = None # Items that are rolled over from the previous batch in get_batch self._output_faces = [] self._additional_keys = [] logger.debug("Initialized %s", self.__class__.__name__)
def __init__(self, git_model_id=None, model_filename=None, configfile=None, rotation=None, min_size=0): logger.debug("Initializing %s: (rotation: %s, min_size: %s)", self.__class__.__name__, rotation, min_size) super().__init__(git_model_id, model_filename, configfile=configfile) self.rotation = self._get_rotation_angles(rotation) self.min_size = min_size self._plugin_type = "detect" logger.debug("Initialized _base %s", self.__class__.__name__)
def _filter_small_faces(self, detected_faces): """ Filter out any faces smaller than the min size threshold """ retval = [] for faces in detected_faces: this_image = [] for face in faces: face_size = (face.w ** 2 + face.h ** 2) ** 0.5 if face_size < self.min_size: logger.debug("Removing detected face: (face_size: %s, min_size: %s", face_size, self.min_size) continue this_image.append(face) retval.append(this_image) return retval
def __init__(self, git_model_id=None, model_filename=None, configfile=None, normalize_method=None): logger.debug("Initializing %s: (normalize_method: %s)", self.__class__.__name__, normalize_method) super().__init__(git_model_id, model_filename, configfile=configfile) self.normalize_method = normalize_method self._plugin_type = "align" self._faces_per_filename = dict() # Tracking for recompiling face batches self._rollover = None # Items that are rolled over from the previous batch in get_batch self._output_faces = [] logger.debug("Initialized %s", self.__class__.__name__)