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

PolarityInverterAlgorithm

Core

PolarityInverter

PolarityInverter

RotateEventsAlgorithm

CV

RotateEvents

RotateEvents

TransposeEventsAlgorithm

CV

TransposeEvents

TransposeEvents

metavision_counting in C++

metavision_counting in Python

  • Algorithms processing events as input and outputting some data from the event (counting, tracking etc.):

Name

Module

C++ API

Python API

Samples

EventConverterAlgorithm

CV

EventConverter

FrequencyAlgorithm

CV

Frequency

Frequency

metavision_ground_plane_calibration

PeriodAlgorithm

CV

Period

Period

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

TimeGradientFlowAlgorithmT

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

SpatterTrackerAlgorithmSync

Analytics

SpatterTrackerSync

SpatterTrackerSync

TrackingAlgorithm

Analytics

Tracking

Tracking

metavision_generic_tracking in C++

metavision_generic_tracking in Python

BlinkingDotsGridDetectorAlgorithm

Calibration

BlinkingDotsGridDetector

metavision_mono_calibration

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

CV

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.