                     (image_slice, landmark_slice, min_clipped[0], indices[1]),
                     (image_slice, landmark_slice, max_clipped[0], indices[1])]
          x_subpixel_shift = batch["prediction"][offsets[0]] - batch["prediction"][offsets[1]]
          y_subpixel_shift = batch["prediction"][offsets[2]] - batch["prediction"][offsets[3]]
          # TODO improve rudimentary subpixel logic to centroid of 3x3 window algorithm
          subpixel_landmarks[:, :, 0] = indices[1] + np.sign(x_subpixel_shift) * 0.25 + 0.5
          subpixel_landmarks[:, :, 1] = indices[0] + np.sign(y_subpixel_shift) * 0.25 + 0.5
  
          batch["landmarks"] = self.transform(subpixel_landmarks, batch["center_scale"], resolution)
          logger.trace("Obtained points from prediction: %s", batch["landmarks"])
 
</s> remove         # TODO modify detected face to hold this data as a matrix
 </s> add  </s> remove     def _nms(self, boxes, threshold):
 </s> add     @staticmethod
    def _nms(boxes, threshold): </s> remove             variances: (list[float]) Variances of priorboxes
 </s> add             variances: (list[float]) Variances of prior boxes </s> remove         # s_sort[-1] have hightest prob score, s_sort[0:-1]->others
 </s> add         # s_sort[-1] have highest prob score, s_sort[0:-1]->others </s> remove         for face, ul, br in zip(batch["detected_faces"], upper_left, bot_right):
            height, width = face.image.shape[:2]
            channels = 3 if face.image.ndim > 2 else 1
            br_width, br_height = br[0].astype('int32')
            ul_width, ul_height = ul[0].astype('int32')
            new_dim = (br_height - ul_height, br_width - ul_width, channels)
 </s> add         for image, top_left, bottom_right in zip(batch["image"], upper_left, bot_right):
            height, width = image.shape[:2]
            channels = 3 if image.ndim > 2 else 1
            bottom_right_width, bottom_right_height = bottom_right[0].astype('int32')
            top_left_width, top_left_height = top_left[0].astype('int32')
            new_dim = (bottom_right_height - top_left_height,
                       bottom_right_width - top_left_width,
                       channels)
        # TODO improve rudimentary sub-pixel logic to centroid of 3x3 window algorithm
                     (image_slice, landmark_slice, min_clipped[0], indices[1]),
                     (image_slice, landmark_slice, max_clipped[0], indices[1])]
          x_subpixel_shift = batch["prediction"][offsets[0]] - batch["prediction"][offsets[1]]
          y_subpixel_shift = batch["prediction"][offsets[2]] - batch["prediction"][offsets[3]]
        # TODO improve rudimentary sub-pixel logic to centroid of 3x3 window algorithm
          subpixel_landmarks[:, :, 0] = indices[1] + np.sign(x_subpixel_shift) * 0.25 + 0.5
          subpixel_landmarks[:, :, 1] = indices[0] + np.sign(y_subpixel_shift) * 0.25 + 0.5
  
          batch["landmarks"] = self.transform(subpixel_landmarks, batch["center_scale"], resolution)
          logger.trace("Obtained points from prediction: %s", batch["landmarks"])
keep keep keep keep replace keep keep keep keep keep
 plugins.extract - Create ExtractMedia class for pipeline flow
Bugfix - Fix memory leak in extract 
plugins/extract/align/fan.py