Algorithms Overview

Algorithms implemented in the SDK can be grouped into categories based on their function.

Processors

Processors are algorithms that can be used to process data either to change some of their characteristics (e.g. flip the x coordinate of every event) or perform some advanced analysis (e.g. tracking objects or extracting spatio/temporal patterns).

  • Algorithms taking events as input and outputting the same number of events but with a transformation applied:

Name

Module

C++ API

Python API

Samples

FlipXAlgorithm

Core

FlipX

FlipX

C++ Get Started

FlipYAlgorithm

Core

FlipY

FlipY

None

PolarityInverterAlgorithm

Core

PolarityInverter

PolarityInverter

None

RotateEventsAlgorithm

Core

RotateEvents

RotateEvents

None

TransposeEventsAlgorithm

Core

TransposeEvents

TransposeEvents

metavision_counting in C++

metavision_counting in Python

Note

The Python bindings of those algorithms offers two ways to process the events: with an output buffer or directly on the input.

For example, FlipXAlgorithm can be called either with process_events() that does not change the input events:

flip_x = metavision_sdk_core.FlipXAlgorithm(width - 1)
flipped_events_buffer = flip_x.get_empty_output_buffer()
flip_x.process_events(ev, flipped_events_buffer)

or with process_events_() which performs processing in-place:

flip_x = metavision_sdk_core.FlipXAlgorithm(width - 1)
flip_x.process_events_(ev)
  • Algorithms processing events as input and outputting some data from the event (counting, tracking, optical flow, etc):

Name

Module

C++ API

Python API

Samples

FrequencyAlgorithm

CV

Frequency

Frequency

metavision_ground_plane_calibration

PeriodAlgorithm

CV

Period

Period

None

SparseOpticalFlowAlgorithm

CV

SparseOpticalFlow

SparseOpticalFlow

metavision_sparse_optical_flow in C++

metavision_sparse_optical_flow in Python

PlaneFittingFlowAlgorithm

CV

PlaneFittingFlow

PlaneFittingFlow

metavision_dense_optical_flow in C++

metavision_dense_optical_flow in Python

TimeGradientFlowAlgorithm

CV

TimeGradientFlowAlgorithm

TimeGradientFlowAlgorithm

metavision_dense_optical_flow in C++

metavision_dense_optical_flow

TripletMatchingFlowAlgorithm

CV

TripletMatchingFlow

TripletMatchingFlow

metavision_dense_optical_flow in C++

metavision_dense_optical_flow

ModulatedLightDetectorAlgorithm

CV

ModulatedLightDetectorAlgorithm

metavision_active_marker_2d_tracking in C++

ActiveMarkerTrackerAlgorithm

CV

ActiveMarkerTrackerAlgorithm

metavision_active_marker_2d_tracking in C++

ActiveMarkerPoseEstimatorAlgorithm

CV3D

ActiveMarkerPoseEstimatorAlgorithm

metavision_active_marker_3d_tracking in C++

CountingAlgorithm

Analytics

Counting

Counting

metavision_counting in C++

metavision_counting in Python

DominantValueEventsAlgorithm

Analytics

DominantValueEvents

DominantFrequencyEventsAlgorithm

DominantPeriodEventsAlgorithm

None

JetMonitoringAlgorithm

Analytics

JetMonitoring

JetMonitoring

metavision_jet_monitoring in C++

metavision_jet_monitoring in Python

PsmAlgorithm

Analytics

Psm

Psm

metavision_psm in C++

metavision_psm in Python

SpatterTrackerAlgorithm

Analytics

SpatterTracker

SpatterTracker

metavision_spatter_tracking in C++

metavision_spatter_tracking in Python

TrackingAlgorithm

Analytics

Tracking

Tracking

metavision_generic_tracking in C++

metavision_generic_tracking in Python

DftHighFreqScorerAlgorithm

Calibration

DftHighFreqScorer

metavision_blinking_pattern_focus

  • Algorithms processing events as input and outputting display-related data (e.g. frames):

Name

Module

C++ API

Python API

Samples

EventFrameDiffGenerationAlgorithm

Core

EventFrameDiffGenerationAlgorithm

metavision_event_frame_generation in C++

EventFrameHistoGenerationAlgorithm

Core

EventFrameHistoGenerationAlgorithm

metavision_event_frame_generation in C++

OnDemandFrameGenerationAlgorithm

CV

OnDemandFrameGeneration

OnDemandFrameGeneration

metavision_psm in C++

metavision_psm in Python etc.

PeriodicFrameGenerationAlgorithm

CV

PeriodicFrameGeneration

PeriodicFrameGeneration

C++ Get Started

Python Get Started etc.

TimeDecayFrameGenerationAlgorithm

CV

TimeDecayFrameGeneration

None

DenseFlowFrameGeneratorAlgorithm

CV

DenseFlowFrameGenerator

DenseFlowFrameGenerator

metavision_dense_optical_flow in C++

metavision_dense_optical_flow in Python

SparseFlowFrameGeneratorAlgorithm

CV

SparseFlowFrameGenerator

SparseFlowFrameGenerator

metavision_sparse_optical_flow in C++

metavision_sparse_optical_flow in Python

DominantValueMapAlgorithm

Analytics

DominantValueMap

DominantValueMap

metavision_vibration_estimation in C++

metavision_vibration_estimation in Python

FrequencyMapAsyncAlgorithm

Analytics

FrequencyMapAsync

FrequencyMapAsync

metavision_vibration_estimation in C++

metavision_vibration_estimation in Python

HeatMapFrameGeneratorAlgorithm

Analytics

HeatMapFrameGenerator

HeatMapFrameGenerator

metavision_vibration_estimation in C++

metavision_vibration_estimation in Python

MapGeneratorAsyncAlgorithm

Analytics

MapGeneratorAsync

None

PeriodMapAsyncAlgorithm

Analytics

PeriodMapAsync

PeriodMapAsync

None

BlinkingFrameGeneratorAlgorithm

Calibration

BlinkingFrameGenerator

metavision_blinking_pattern_focus

Filters

Filters are algorithms taking events as input and outputting only the events that satisfy certain conditions.

Name

Module

C++ API

Python API

Samples

PolarityFilterAlgorithm

Core

PolarityFilter

PolarityFilter

metavision_filtering in C++

metavision_filtering in Python etc.

RoiFilterAlgorithm

Core

RoiFilter

RoiFilter

metavision_filtering in C++

metavision_filtering in Python etc.

AntiFlickerAlgorithm

CV

AntiFlicker

AntiFlicker

metavision_data_rate in C++

metavision_data_rate in Python etc.

ActivityNoiseFilterAlgorithm

CV

ActivityNoiseFilter

ActivityNoiseFilter

metavision_psm in C++

metavision_psm in Python etc.

ProximityFilterAlgorithm

CV

ProximityFilterAlgorithm

ProximityFilterAlgorithm

metavision_model_3d_tracking in C++

RoiMaskAlgorithm

Core

RoiMask

RoiMask

None

SpatioTemporalContrastAlgorithm

CV

SpatioTemporalContrast

SpatioTemporalContrast

metavision_generic_tracking in C++

metavision_spatter_tracking in Python etc.

TrailFilterAlgorithm

CV

TrailFilter

TrailFilter

metavision_noise_filtering in C++

metavision_noise_filtering in Python etc.

Note

Our C++ algorithms are independent of the HAL layer/module. They don’t rely on Prophesee sensors and files formats. So as long as you have buffers of events as described in the API documentation, you will be able to leverage them in your application

See also

For an overview of how to use and tune the SDK algorithms, check our programming guide on Processing Events with Algorithms. Alternatively, you can also check Metavision Viewer page where we mention how a filter algorithm can be applied to the event stream.