Improve FrameContainer and FrameSelector to be more memory efficient
- FrameContainers can now load a subset of themselves from an HDF5 file
- FrameSelectors now can handle
bob.io.video.reader
instances to avoid loading the whole video into memory.
For example, you can do:
path = '.../fc.hdf5'
with bob.io.base.HDF5File(path) as f:
# load only a subset of the FrameContainer
fc = bob.bio.video.FrameContainer().load(f, selection_style="spread", max_number_of_frames=20)
and
path = '.../video.mp4'
fs = bob.bio.video.FrameSelector(selection_style="spread", max_number_of_frames=20)
fc = fs(bob.io.video.reader(path)) # only loads 20 frames into memory
Edited by Amir MOHAMMADI