Dear ??? (not sure who you are), I'm currently intensely working on NoiseTesterFilter in the jaer master branch. You are running the version from the DND21 paper (https://sites.google.com/view/dnd21) that needs the python scripts to do a ROC sweep.
The ClearROCHistory button just clears out the samples that have been collected. The max sample length is set by rocHistoryLength.
Tobi
Dear ??? (not sure who you are), I'm currently intensely working on NoiseTesterFilter in the jaer master branch. You are running the version from the DND21 paper (https://sites.google.com/view/dnd21) that needs the python scripts to do a ROC sweep.
The ClearROCHistory button just clears out the samples that have been collected. The max sample length is set by rocHistoryLength.
Tobi
--
You received this message because you are subscribed to the Google Groups "jaer-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaer-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/jaer-users/eca6622d-7443-449b-851c-c1d4cf706bb6%40ini.uzh.ch.
Thanks for sharing that stuff. Clearly you are not sweeping the discimination threshold. Is there logging output that is informative? Does your method implement the threshold control function as a RemoteControl outside NoiseTesterFilter, so that the python script can control it?
I'll try to record a video of using NoiseTesterFilter directly to sweep ROC in next few days.
Tobi
-- Prof. Tobi Delbruck https://sensors.ini.ch www.linkedin.com/in/tobi-delbruck-b91257259, https://www.youtube.com/channel/UC70-pVoJ4pwIAxqpgcR7oxg Swiss office # +41 44 635 3038 Swiss cell +41 76 629 1500 (whatsapp), USA cell +1 626 510 2646, skype tobidelbruck
Did you turn off all the noise generated by NoiseTesterFilter
(leakNoiseRateHz=0 and shotNoiseRateHz=0)? If not, NTF will add
noise also.
Thanks for explaining, it's clear now what you are doing.
Every noise sample is random. If you rewind, the noise will be
different the next time. Or do what you are doing. It is no
surprise the noise events differ. But the signal events (the hotel
bar events) should be identical between recordings.
If you want to make the noise exactly the same each time it will be difficult, not just I think making sure the random seed is reset to the same value. That is because generating shot noise depends also on the time resolution. Please check code for details.
One thing you can try is to use the prerecorded noise in the DND21 AEDAT folder. In particular the 5Hz shot noise recording. You can load this noise recording using the "OpenNoiseSourceRecording" button in NoiseTesterFilter.
Let me know how this goes.
Thanks for your feedback! So far only a CSV of ROC values (TPR
and FPR) is output by using the SaveROCSweepsToCSV
button. One CSV file is generated per recorded sweep.
Do you think it is useful to add the computed AUC value to the CSV header comment?
(CSVs are only suitable for tabular data. Special values like AUC don't really fit to CSV format.)
BTW, I believe there is some kind of memory leak currently in
NTF, because the processing slows down to a crawl after recording
some ROC sweeps. I'm trying to diagnose this now.
--
You received this message because you are subscribed to the Google Groups "jaer-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaer-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/jaer-users/50eb9a2a-dee2-44b3-8def-bc4b8cadd922%40gmail.com.
I believe that currently NoiseTesterFilter has a serious memory
leak that only appears when doing ROC sweeps. I don't understand
the cause so far, but the symptom is that after doing a ROC sweep
or a couple of them, everything starts out fine, but processing
suddenly slows down by a factor of 100X after some time. I am
trying to debug this now. It may be that ROC sweeps hold a
reference to the denoiser instance which prevents garbage
collection. It is quite strange because it happens well under the
10GB java JVM memory limit.
If you want to record denoised output, I suggest you use the File
option "Enable filtering of logged or network output events". See
screenshot below.
then pause the playback, hit "r" for rewind, and "l" for "start logging". The file will then close automatically at the of the recording or at the OUT marker. You can then save this filtered AEDAT file and play that back for outputting CSV with DavisTextOutputWriter.
I don't know why the first packet is not filtered for you now. The enabled (checkbox selected) filters run from top to bottom. But I never recorded the output this way with filtered data. I think DavisTextOutputWriter should not output events that are filtered out. The event iterators should skip these events but perhaps you could check it with debugger. Here is the code that writes out the events
In latest commit to master branch (and also latest pre-release 2.7.0), I think I fixed the NoiseTesterFilter memory leak problem and did a lot more cleanup of NoiseTesterFilter. NTF looks like this now:
Let me know if that works for you.
I also improved the CSV export. A CSV file from ROC sweep looks
like this now and includes the computed AUC in header
# ROC sweep of parameter correlationTimeS for filter SpatioTemporalCorrelationFilter # created Thu Mar 20 07:14:05 CET 2025 # NoiseTesterFilter noise: NTF: Synthetic noise: CoV +1.0 dec, Leak +100.0mHz+/-+200.0m jitter, Shot +5.0 Hz. Overlay # source-file: H:\My Drive\INI - Sensors group\Datasets\DND21 - DVS BA denoising\AEDAT\driving\driving.aedat # Marks: IN=1,189,200 OUT=1,892,192 # Computed ROC Sweep AUC=0.8811306 correlationTimeS, FPR, TPR 0.000917,0.055451,0.466964 0.001261,0.079208,0.555988 0.001735,0.106652,0.658437 0.002386,0.147999,0.736841 0.003283,0.187985,0.809207 0.004515,0.236310,0.867904 0.006211,0.290521,0.909116 0.008543,0.359963,0.938834 0.011751,0.437765,0.959104 0.016163,0.518802,0.972788
I made some major improvement in the speed of NoiseTesterFilter in the branch "ntf-optimized".
NTF uses new event and packet classes SignalNoiseEvent and SignalNoisePacket so that it tracks the labels (signal/noise) and classifications during denoising. Now there is no need for the expensive sorting and matching. It runs in real time now on even dense recordings.
I made some major improvement in the speed of NoiseTesterFilter in the branch "ntf-optimized".
NTF uses new event and packet classes SignalNoiseEvent and SignalNoisePacket so that it tracks the labels (signal/noise) and classifications during denoising. Now there is no need for the expensive sorting and matching. It runs in real time now on even dense recordings.
--
You received this message because you are subscribed to the Google Groups "jaer-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaer-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/jaer-users/3d04e42d-1b1d-4ede-a821-11d31cb9e41a%40gmail.com.