Introduction

We offer different software solutions to use our event cameras. The different software solutions are designed to be versatile and range from getting familiar with event cameras to advanced usage.

  • DV is our main software solution and is designed to be user-friendly and easy to use.

  • DV-Processing is a C++/Python library for generic processing algorithms.

  • Other software solutions include a ROS integration and the low-level library Libcaer.

Software Stack

Common Definitions

Throughout our software stack, we keep common definitions.

Events

Events are the main data points generated by our cameras. In literature and, more particularly, in our software, they are defined as follows:
An Event is a single-pixel detection of brightness change. It is generally composed of the following fields:

  • timestamp, represents the time when the change happened. It is represented as a Unix Timestamp in microseconds. Type: int64

  • x, represents the horizontal coordinate on the sensor (in pixels) where the change happened. Type: int16

  • y, represents the vertical coordinate on the sensor (in pixels) where the change happened. Type: int16

  • polarity, represents the sign of the change that happened. 1 represents an increase in intensity, 0 represents a decrease in intensity. Type: bool

Implementation in dv-processing

Frames

Frames are the containers for image data.
A Frame is generally composed of the following fields:

  • timestamp represents the time of the start of exposure of the frame. It is represented as a Unix Timestamp in microseconds. Type: int64

    • There can be other timestamp fields representing start of exposure, end of exposure, start of generation or end of generation.

  • pixels represents the image data stored as a pixel array. It is based on OpenCV Mat types. Type: array of uint8

  • sizeX represents the image’s width in pixels. Type: int16

  • sizeY represents the image’s height in pixels. Type: int16

  • positionX represents the horizontal image offset from the upper-left corner of a sensor in pixels. Type: int16

  • positionY represents the vertical image offset from the upper-left corner of a sensor in pixels. Type: int16

Implementation in dv-processing

Triggers

Triggers are data points forwarded by a camera informing about the waveform of an external input signal.
A Trigger is generally composed of the following fields:

  • timestamp, represents the time when the signal component was detected. It is represented as a Unix Timestamp in microseconds. Type: int64

  • TriggerType, represents the signal component that was detected. For example, it can be one of EXTERNAL_SIGNAL_RISING_EDGE, EXTERNAL_SIGNAL_FALLING_EDGE. Type: int8

Implementation in dv-processing

Accumulation

Accumulation is the process of reconstructing images from events by integrating the individual event values over time. This term is often used instead of Image Reconstruction.

Read more in the section about the accumulator module.