          of any pipeline :attr:`phase`
  
          Yields
          ------
          faces: dict
              regardless of phase, the returned dictionary will contain, exclusively, ``filename``:
              the filename of the source image, ``image``: the ``numpy.array`` of the source image
              in BGR color format, ``detected_faces``: a list of
              :class:`~lib.faces_detect.Detected_Face` objects.
  
          Example
          -------
          >>> for face in extractor.detected_faces():
          >>>     filename = face["filename"]
 
</s> remove         >>> for face in extractor.detected_faces():
        >>>     filename = face["filename"]
        >>>     image = face["image"]
        >>>     detected_faces = face["detected_faces"]
 </s> add         >>> for extract_media in extractor.detected_faces():
        >>>     filename = extract_media.filename
        >>>     image = extract_media.image
        >>>     detected_faces = extract_media.detected_faces </s> remove         >>> {'filename': <path to the source image that is to be extracted from>,
        >>>  'image': <the source image as a numpy.ndarray in BGR color format>,
        >>>  'detected_faces: [<list of DetectedFace objects as generated from detect>]}
 </s> add         For detect/single phase operations the :attr:`ExtractMedia.filename` and
        :attr:`~ExtractMedia.image` attributes should be populated. </s> remove The plugin will receive a dict containing:

>>> {"filename": <filename of source frame>,
>>>  "image": <source image>,
>>>  "detected_faces": <list of bounding box dicts from lib/plugins/extract/detect/_base>}
 </s> add The plugin will receive a :class:`~plugins.extract.pipeline.ExtractMedia` object. </s> remove             Dictionary of detected_faces with the filename as its key and a list of
            :class:`lib.faces_detect.DetectedFace` as the values for pairing with reloaded images.
 </s> add             Dictionary of :class:`plugins.extract.pipeline.ExtractMedia` with the filename as the
            key for repopulating the image attribute. </s> remove The plugin will receive a dict containing:

>>> {"filename": [<filename of source frame>],
>>>  "image": [<source image>],
>>>  "detected_faces": [<list of DetectedFace objects]}
 </s> add The plugin will receive a :class:`~plugins.extract.pipeline.ExtractMedia` object.
        faces: :class:`ExtractMedia`
            The populated extracted media object.
          of any pipeline :attr:`phase`
  
          Yields
          ------
        faces: :class:`ExtractMedia`
            The populated extracted media object.
        faces: :class:`ExtractMedia`
            The populated extracted media object.
        faces: :class:`ExtractMedia`
            The populated extracted media object.
        faces: :class:`ExtractMedia`
            The populated extracted media object.
        faces: :class:`ExtractMedia`
            The populated extracted media object.
  
          Example
          -------
          >>> for face in extractor.detected_faces():
          >>>     filename = face["filename"]
keep keep keep keep replace replace replace replace replace keep keep keep keep keep
 plugins.extract - Create ExtractMedia class for pipeline flow
Bugfix - Fix memory leak in extract 
plugins/extract/pipeline.py