Noise Filter Modules
Noise Filters are usually employed to clean the input from DVS cameras; due to the architecture of the sensors, they are sensitive to Background Activity noise produced by temporal noise and junction leakage currents. Background activity increases with low light or higher sensitivity, so a filter is often needed for applications in such conditions. In some cases, a noise filter can be useful for eliminating real events due to minor light changes and keeping a better separation between the moving subject and the background.
Use cases:
low light conditions
high sensitivity biases
dark background
Filters
Dvsnoise Filter
Entry in Module Selection |
Module Appearance |
---|---|
The Dvsnoise filter is a standard spatiotemporal filter that stores a map of event timestamps. The filter also provides a hot-pixel filter with learning to filter “broken” (always-active) pixels in the sensor, as well as a refractory period filter, which limits the rate at which single pixels can consecutively generate events.
This filter provides a fixed mask size of 8 neighboring events and several advanced configurable options.
Dvsnoise Filter Parameters
Parameter |
Description |
---|---|
|
Maximum time difference in µs for events to be considered correlated and not be filtered out |
|
Enable the background activity filter |
|
Minimum time between consecutive events to not be filtered out |
|
Enable the refractory period filter |
|
Learn the position of current hot (abnormally active) pixels |
|
Enable the hot pixel filter |
Dvsnoise Filter Recommended Use Cases
Generic filter
Static camera
Knoise Filter
Entry in Module Selection |
Module Appearance |
---|---|
The Knoise filter is based on the paper “O(N)-Space Spatiotemporal Filter for Reducing Noise in Neuromorphic Vision Sensors”; it is a spatiotemporal filter with memory optimizations. Memory usage and accesses are greatly reduced by only storing one timestamp per row and column.
This filter provides only 2 parameters, the time interval to look up the spatiotemporal neighbors (deltaT) and the number of supporting pixels (supporters). As the paper shows, this filter is very memory efficient but is prone to false negatives, meaning that real events can be filtered out because of missing past information. Currently, the default parameter for deltaT is 1ms.
Knoise Parameters
Parameter |
Description |
---|---|
|
Time delta for the filter in µs |
|
Number of supporting pixels |
Knoise Recommended Use Cases
Moving camera
Embedded systems
Ynoise Filter
Entry in Module Selection |
Module Appearance |
---|---|
The Ynoise filter is based on the paper “Event Density Based Denoising Method for Dynamic Vision Sensor”, that describes a variant of the standard spatiotemporal filter.
Currently, we have only implemented what they call coarse filtering
to achieve better performance. The complete
algorithm adds one further step called fine filtering
, used to remove flickering noise. We also use the L∞ norm
because it is easier to compute with a representation of the density matrix in an array structure.
Ynoise Parameters
Parameter |
Description |
---|---|
|
Time delta for the filter in µs |
|
Value L of LxL matrix for density matrix |
|
Threshold value for density pixels |
Ynoise Recommended Use Cases
Generic filter
Static camera
Image reconstruction
Comparison
Comparing noise filters can be tricky because the performance and quality of the filter depend heavily on the parameters. Generally, better quality means worse performance. For the following comparison, we used the most balanced settings, which are currently the default settings in DV-Runtime.
We artificially generated a sequence of events without any noise, then added Gaussian noise to it to generate meaningful and precise metrics on noise filtering, signal filtering and so on. While not a perfect setup, it gives indicative results and is deterministic and reproducible.
Visual Comparison
As shown in the image below, we can see that the Dvsnoise filter keeps the most real events after filtering. The Ynoise filter loses some real events, but most of the shapes of the plane and tree are intact. Instead, Knoise is already corrupting the shape of the plane due to the massive filtering going on.
Note: data100k is an artificially generated event file without noise, data_noise100k is that file with added Gaussian noise, and the other images are the output of the discussed filters.
Signal to Noise Ratio
Below, we present a table with the different signal-to-noise ratios, calculated with default settings (most balanced) with our sample event files. As we can see, the two most balanced filters are the Dvsnoise filter and the Ynoise filter. They are slower than the Knoise filter but have a better SR (Signal Ratio). The SNR (Signal to Noise Ratio) is higher in the Knoise filter because most of the events are eliminated (noise included), making the SNR higher and the SR lower, though it still is the fastest of the tested filters due to its memory trade-offs.
The formulas for calculating the SR, NR and SNR are:
Where: Ef: stand for number of events after filtering Eo: stands for number of events before filtering Eq: can be f or o signal: stands for original video noise: stands for video with noise
Parameters (same for both event files)
Dvsnoise filter
hotPixelEnable
: falsebackgroundActivityEnable
: truebackgroundActivityTwoLevels
: falsebackgroundActivityCheckPolarity
: falsebackgroundActivitySupportMin
: 1backgroundActivitySupportMax
: 8backgroundActivityTime
: 2000refractoryPeriodEnable
: truerefractoryPeriodTime
: 100
Knoise
deltaT
: 1000supporters
: 1
Ynoise
deltaT
: 10000lParam
: 3threshold
: 2
Results
Event File 1 (duration 5s, 1280x960)
Filter |
SR ↑ |
NR ↓ |
SNR ↑ |
CPU time (kernel time + user time) ↓ |
---|---|---|---|---|
Dvsnoise |
0.9 |
0.08 |
208.06 |
7.92s |
Knoise |
0.19 |
0.0 |
791.9 |
4.35s |
Ynoise |
0.58 |
0.03 |
388.69 |
5.25s |
Event File 2 (duration 5s, 640x480)
Filter |
SR ↑ |
NR ↓ |
SNR ↑ |
CPU time (kernel time + user time) ↓ |
---|---|---|---|---|
Dvsnoise |
0.87 |
0.22 |
38.06 |
4.70s |
Knoise |
0.15 |
0.01 |
101.56 |
2.02s |
Ynoise |
0.63 |
0.07 |
86.93 |
4.92s |
Note: CPU time is relative to the system in use, so it is only to be used as an indicator for comparison between filters.
Quality and Performance Comparison Chart
We recommend for standard usage (with static cameras or without significant scene changes) the Dvsnoise filter and the Ynoise filters. For dynamic camera situations or significant scene changes, we recommend the Knoise filter, as it is faster and will provide a better compromise for keeping good filter performance and real-time processing speeds.