Skip to content

Event batch estimation from adaptive global decay process

License

Notifications You must be signed in to change notification settings

neuromorphic-paris/event_batch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

event_batch

Build Status License: CC BY-NC-SA 4.0

Code for Adaptive Global Decay Process for Event Cameras, CVPR 2023

@inproceedings{nunesAdaptiveGlobalDecay2023,
	title = {Adaptive {Global} {Decay} {Process} for {Event} {Cameras}},
	booktitle = {{IEEE}/{CVF} {Conference} on {Computer} {Vision} and {Pattern} {Recognition} ({CVPR})},
	author = {Nunes, Urbano Miguel and Benosman, Ryad and Ieng, Sio-Hoi},
	year = {2023},
	pages = {9771--9780},
}

The authors provide this code in the hope it will be useful for understanding the proposed method, as well as for reproducibility of the results.

For more information and more open-source software please visit the neuromorphic-paris' Github page: https://github.com/neuromorphic-paris.

Requirements

This code was tested on Ubuntu 20.04 distro.

Dependencies

sudo apt install cmake cmake-curses-gui

The following are dependencies that are automatically downloaded during the build process, so you do not need to explicitly install them.

General

git clone https://github.com/neuromorphic-paris/event_batch.git
cd event_batch
mkdir build && cd build
cmake .. <cmake arguments>

The cmake arguments can be set as follows:

-Devent_batch_BUILD_DOC=ON/OFF
                            Build documentation.
                            (default: OFF)
-Devent_batch_BUILD_RUNTIME_BENCHMARK=ON/OFF
                            Build runtime benchmark.
                            (default: OFF)
-Devent_batch_BUILD_TEST=ON/OFF
                            Build tests.
                            (default: OFF)

Lastly, ensure all environment path variables are well set, and compile everything:

make

For efficiency reasons, the input events are assumed to be in the Event Stream format. Please refer to the loris library to convert to/from the Event Stream format.

Usage

Two executables are provided that estimate the batch size (batch_size.cpp) of an event stream or the end timestamp [microseconds] of the batch (batch_timestamp.cpp). Assuming you are in the build directory, to run an executable *, just run on a terminal:

./src/batch_* [options] /path/to/input.es

where * is either size or timestamp.

The estimates are sent via the standard output, so you can redirect them with the pipe operator | to another executable, e.g.:

./src/batch_* [options] /path/to/input.es | ./your/executable

or save them into a file for later processing, e.g.:

./src/batch_* [options] /path/to/input.es > ./your/file.csv

Runtime Benchmark

The runtime benchmark can be built by setting the flag event_batch_BUILD_RUNTIME_BENCHMARK to ON. Assuming you are in the build directory, to run a runtime executable *, just run on a terminal:

./src/runtime_benchmark/runtime_* [options] /path/to/input.es

Tests

The test suite can be built by setting the flag event_batch_BUILD_TEST to ON. To run the test suite, just run on a terminal:

make test

Documentation

Offline documentation can be built with doxygen by setting the flag event_batch_BUILD_DOC to ON. Then, just run on a terminal:

make doc

License

The EventEMin code is licensed under CC BY-NC-SA 4.0. Commercial usage is not permitted.