Created
June 29, 2020 20:40
-
-
Save brotherofken/990a0c75e5b46ceb72d12ab6c9d04102 to your computer and use it in GitHub Desktop.
Changes that make face filter working
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/lib/face_filter.py b/lib/face_filter.py | |
index 096709d..cb4a10f 100644 | |
--- a/lib/face_filter.py | |
+++ b/lib/face_filter.py | |
@@ -5,7 +5,7 @@ import logging | |
from lib.vgg_face import VGGFace | |
from lib.image import read_image | |
-from plugins.extract.pipeline import Extractor | |
+from plugins.extract.pipeline import Extractor, ExtractMedia | |
logger = logging.getLogger(__name__) # pylint: disable=invalid-name | |
@@ -72,8 +72,8 @@ class FaceFilter(): | |
self.queue_images(extractor) | |
extractor.launch() | |
for faces in extractor.detected_faces(): | |
- filename = faces["filename"] | |
- detected_faces = faces["detected_faces"] | |
+ filename = faces.filename | |
+ detected_faces = faces.detected_faces | |
if len(detected_faces) > 1: | |
logger.warning("Multiple faces found in %s file: '%s'. Using first detected " | |
"face.", self.filters[filename]["type"], filename) | |
@@ -84,11 +84,8 @@ class FaceFilter(): | |
in_queue = extractor.input_queue | |
for fname, img in self.filters.items(): | |
logger.debug("Adding to filter queue: '%s' (%s)", fname, img["type"]) | |
- feed_dict = dict(filename=fname, image=img["image"]) | |
- if img.get("detected_faces", None): | |
- feed_dict["detected_faces"] = img["detected_faces"] | |
- logger.debug("Queueing filename: '%s' items: %s", | |
- fname, list(feed_dict.keys())) | |
+ feed_dict = ExtractMedia(fname, image=img['image'], detected_faces=img.get('detected_faces', None)) | |
+ logger.debug("Queueing filename: '%s'", fname) | |
in_queue.put(feed_dict) | |
logger.debug("Sending EOF to filter queue") | |
in_queue.put("EOF") | |
diff --git a/plugins/extract/pipeline.py b/plugins/extract/pipeline.py | |
index cadf2b5..1878764 100644 | |
--- a/plugins/extract/pipeline.py | |
+++ b/plugins/extract/pipeline.py | |
@@ -87,7 +87,7 @@ class Extractor(): | |
self._flow = self._set_flow(detector, aligner, masker) | |
# We only ever need 1 item in each queue. This is 2 items cached (1 in queue 1 waiting | |
# for queue) at each point. Adding more just stacks RAM with no speed benefit. | |
- self._queue_size = 1 | |
+ self._queue_size = 2 | |
self._vram_stats = self._get_vram_stats() | |
self._detect = self._load_detect(detector, rotate_images, min_size, configfile) | |
self._align = self._load_align(aligner, configfile, normalize_method) | |
diff --git a/scripts/fsmedia.py b/scripts/fsmedia.py | |
index 042ec3b..ffa0406 100644 | |
--- a/scripts/fsmedia.py | |
+++ b/scripts/fsmedia.py | |
@@ -629,4 +629,4 @@ class FaceFilter(PostProcessAction): | |
logger.trace("Accepting recognised face. Frame: %s. Face: %s", | |
extract_media.filename, idx) | |
ret_faces.append(detect_face) | |
- extract_media.detected_faces = ret_faces | |
+ extract_media.add_detected_faces(ret_faces) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment