Bob IO Stream¶
This package is part of the signal-processing and machine learning toolbox Bob.
Motivation¶
This package provides a way to define efficient processing pipelines, based on the concept of “streams”, to load and process or save video data stored in hdf5 files. The stream abstraction allows to define pipelines of processing steps with an easy syntax, and provides a way to access the processed data with a “numpy-like” api. It was designed to minimize computation and disk access by loading only necessary data and buffering video frames and processed data.
Installation¶
Complete bob’s installation instructions. Then, to install this package, run:
$ conda install bob.io.stream
Example¶
Here is an example of how to use the package to load data recorded with 3 different cameras, build a processing pipeline and finally load the data.
# Import Stream and StreamFile classes
# Processing filters are available through the Stream class
from bob.io.stream import StreamFile, Stream
# Open a Streamfile to a hdf5 file containing video data.
f = StreamFile("input_example.h5", face_streams.json")
# Define processing pipeline by chaining streams:
# First define the streams to load the data from the file (color, left and right), and add some processing
color = Stream("color", f)
nir_left = Stream("nir_left_stereo", f).adjust(color).normalize()
nir_right = Stream("nir_right_stereo", f).adjust(color).normalize()
all_swir = nir_left.stack(nir_right)
# Now that the pipeline is defined, the processed data can be accessed as if indexing in a numpy array:
all_streams[0] # Loads data and apply processing to provide the first frame of the reprojected stream.
all_streams[2:10] # Loads several frames, etc...
Contact¶
For questions or reporting issues to this software package, contact our development mailing list.