This library intends to be a minimal tool for loading events from files with common event-camera file extensions into Python.
See the project on PyPI or do pip3 install aertb
from aertb.core.loaders import PolarityEventFile
file = PolarityEventFile('../myFile.myext')
# handle every supported file extension
# then file.header, file.get_events() ...
Supported extensions:
.dat
: N-Cars / Prophesee Cameras.bin
: N-MNIST, N-Caltech101.aedat
: PokerDVS.mat
: DVS-Barrel
It also make the process of loading and iterating HDF5 files easier.
from aertb.core import HDF5File
dataset_train = HDF5File('TRAIN.h5')
train_iterator = dataset_train.iterator(n_samples_group=10, rand=23)
for sample in tqdm(train_iterator):
# do something with sample.events, sample.label or sample.name
Example: making a GIF
from aertb.core import HDF5File, make_gif
file = HDF5File('../DVS_Barrel.hdf5')
sample = file.load_events(group='moving', name='11')
make_gif(sample, filename='sample_moving.gif', camera_size=(128, 128), n_frames=480, gtype='std')
The library also includes a command line interface for converting files from a given extension to hdf5, as well as gif making capabilities for easy visualisation of the files.
-
If the install with pip worked perfectly, you can now type
aertb
in a terminal window and the CLI will open. -
If you are installing it from Github: download you should download the project from github and follow the following instructions:
- a)
git clone ...
- b) Create a virual environment, if venv is not installed run
pip install virtualenv
, thenpython3 -m venv aertb_env
- c) Run
source aertb_env/bin/activate
- d) Run the following command:
pip install -r requirements.txt
- e) Open the cli with
python3 .
or with the__main__.py
file
- a)
- Once the CLI is open you get a a similar output on your terminal:
- type
help
to see supported commands andhelp <topic>
to get more info of the command
tohdf5 -f 'example_data/dat' -e 'dat' -o 'mytest.h5'
The recommended directory shape is :
|--Parent (given as parameter)
|-- LabelClass1
|-- SampleName1
|-- SampleName2
|-- ....
|-- LabelClass2
|-- SampleName1
|-- SampleName2
|-- ....
|-- ...
And we suggest that train and test are kept as separate folders so they translate to two different files
tohdf5 -f 'example_data/bin/one/03263.bin' -o 'mytest2.h5'
makegif -f 'example_data/prophesee_dat/test_23l_td.dat' -o 'myGif.gif' -nfr 240 -g 'std'
- type
quit
- Exit virtual environment:
$ deactivate