Пример #1
0
    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__)
Пример #2
0
    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
Пример #3
0
    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__)
Пример #4
0
    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__)
Пример #5
0
 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
Пример #6
0
    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__)