From 72035ee5ccf7b04285b12f7e7f0cb2ca2efec57d Mon Sep 17 00:00:00 2001 From: Amir MOHAMMADI <amir.mohammadi@idiap.ch> Date: Mon, 16 Apr 2018 15:55:45 +0200 Subject: [PATCH] Add the giant video loader --- bob/pad/face/utils/__init__.py | 2 +- bob/pad/face/utils/load_utils.py | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/bob/pad/face/utils/__init__.py b/bob/pad/face/utils/__init__.py index 7e923999..1b0b03c6 100644 --- a/bob/pad/face/utils/__init__.py +++ b/bob/pad/face/utils/__init__.py @@ -1,6 +1,6 @@ from .load_utils import ( frames, number_of_frames, yield_frames, yield_faces, scale_face, blocks, - bbx_cropper, min_face_size_normalizer) + bbx_cropper, min_face_size_normalizer, the_giant_video_loader) # gets sphinx autodoc done right - don't remove it __all__ = [_ for _ in dir() if not _.startswith('_')] diff --git a/bob/pad/face/utils/load_utils.py b/bob/pad/face/utils/load_utils.py index b1800fd9..30566afc 100644 --- a/bob/pad/face/utils/load_utils.py +++ b/bob/pad/face/utils/load_utils.py @@ -5,7 +5,6 @@ from bob.ip.base import scale, block, block_output_shape from bob.ip.facedetect import bounding_box_from_annotation from functools import partial import numpy -import six def frames(path): @@ -191,3 +190,18 @@ def blocks(data, block_size, block_overlap=(0, 0)): else: raise ValueError("Unknown data dimension {}".format(data.ndim)) return output + + +def the_giant_video_loader(paddb, padfile, + region='whole', scaling_factor=None, cropper=None, + normalizer=None): + generator = None + if region == 'whole': + generator = yield_frames(paddb, padfile) + elif region == 'crop': + generator = yield_faces( + paddb, padfile, cropper=cropper, normalizer=normalizer) + if scaling_factor is not None: + generator = (scale(frame, scaling_factor) + for frame in generator) + return generator -- GitLab