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 |
|||
FlipYAlgorithm |
Core |
|||
PolarityInverterAlgorithm |
Core |
|||
RotateEventsAlgorithm |
CV |
|||
TransposeEventsAlgorithm |
CV |
Algorithms processing events as input and outputting some data from the event (counting, tracking etc.):
Name |
Module |
C++ API |
Python API |
Samples |
---|---|---|---|---|
EventConverterAlgorithm |
CV |
|||
FrequencyAlgorithm |
CV |
|||
PeriodAlgorithm |
CV |
|||
SparseOpticalFlowAlgorithm |
CV |
|||
PlaneFittingFlowAlgorithm |
CV |
|||
TimeGradientFlowAlgorithm |
CV |
|||
TripletMatchingFlowAlgorithm |
CV |
|||
ModulatedLightDetectorAlgorithm |
CV |
|||
ActiveMarkerTrackerAlgorithm |
CV |
|||
ActiveMarkerPoseEstimatorAlgorithm |
CV3D |
|||
CountingAlgorithm |
Analytics |
|||
DominantValueEventsAlgorithm |
Analytics |
None |
||
JetMonitoringAlgorithm |
Analytics |
|||
PsmAlgorithm |
Analytics |
|||
SpatterTrackerAlgorithm |
Analytics |
|||
SpatterTrackerAlgorithmSync |
Analytics |
|
|
|
TrackingAlgorithm |
Analytics |
|||
BlinkingDotsGridDetectorAlgorithm |
Calibration |
|||
DftHighFreqScorerAlgorithm |
Calibration |
Algorithms processing events as input and outputting display-related data (e.g. frames):
Name |
Module |
C++ API |
Python API |
Samples |
---|---|---|---|---|
EventFrameDiffGenerationAlgorithm |
Core |
|||
EventFrameHistoGenerationAlgorithm |
Core |
|||
OnDemandFrameGenerationAlgorithm |
CV |
|||
PeriodicFrameGenerationAlgorithm |
CV |
Python Get Started etc. |
||
TimeDecayFrameGenerationAlgorithm |
CV |
None |
||
DenseFlowFrameGeneratorAlgorithm |
CV |
|||
SparseFlowFrameGeneratorAlgorithm |
CV |
|||
DominantValueMapAlgorithm |
Analytics |
|||
FrequencyMapAsyncAlgorithm |
Analytics |
|||
HeatMapFrameGeneratorAlgorithm |
Analytics |
|||
MapGeneratorAsyncAlgorithm |
Analytics |
None |
||
PeriodMapAsyncAlgorithm |
Analytics |
None |
||
BlinkingFrameGeneratorAlgorithm |
Calibration |
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 |
|||
RoiFilterAlgorithm |
Core |
|||
AntiFlickerAlgorithm |
CV |
|||
ActivityNoiseFilterAlgorithm |
CV |
|||
ProximityFilterAlgorithm |
CV |
|
||
RoiMaskAlgorithm |
CV |
None |
||
SpatioTemporalContrastAlgorithm |
CV |
|||
TrailFilterAlgorithm |
CV |
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.