V2e Versions Save

V2E: From video frames to DVS events

v2e-1.7.0

9 months ago

Bug fixes and new features:

  • Added ability to label shot noise events from original shot noise model (but not photoreceptor or leak noise events)
  • Added support for generating --dvs640 AEDAT.2.0 output for jAER DVS640 AEChip class.
  • Fixed nonmonotonic timestamp bug when generating shot noise events.
  • Improved speed for skipping frames for big input videos.
  • Added option to record single pixel states for debugging models.
  • Updated numpy versions to ensure version compatible with numba.
  • --vid_orig and --vid_slomo now recognize '' or None as option to suppress big file output.
  • particles.py can generate events in middle or edge of array.
  • several improvements in warning outputs to guide users to solutions.
  • better warnings are too-large timesteps for accurate lowpass photoreceptor modeling.

v1.6.2.1

1 year ago

Bug fix release

  • Fix x,y output order in ae_text_output
  • Add warnings about extraneous extra arguments if there is no synthetic input class to pass them to
  • Document the order of fields in event generation in emulator.py
  • Fixed usage command to correctly show DVS output size options and to warn users about missing output size
  • Fixed docstrings for methods to correct x,y order of event fields

v1.6.1

1 year ago

New features

  • HDR (high dynamic range): The --hdr option treats inputs as logarithmic gray scale. See scripts/particles.py for script that that uses the --hdr argument to generate moving particles with very high brightness compared to background. At line 77, see
       if self.parent_args.hdr:
            self.bg=np.log(self.bg)
            self.fg=np.log(self.fg)
  • More accurate shot noise modeling: The --photoreceptor_noise option simulates shot noise events by injecting a 1st-order IIR lowpass (RC) filtered white noise source right after photoreceptor lowpass filtering (the noise is summed here to avoid intensity-dependent lowpass filtering of the noise). The result is more realistic statistics of shot noise events.

Bug fixes

  • fixed DDD conversion script ddd/ddd_extract_data.py to work properly.
  • improved argument usage descriptions.
  • fixed order of x,y events in AEDAT text output in v2ecore/output/ae_text_output.py.
  • fixed several synthetic input scripts to work and include option arguments
  • fixed logging to log the script extra options

1.5.1

1 year ago

Fixed bug in timestamp generation. Fixed bug in AEDAT text output. Added clarification to README with GIF video about multiple events per frame handling.

v1.5.0

2 years ago

New Features

  • v2e can display and save as AVI videos all the internal DVS model states via the --show_dvs_model_state and --save_dvs_model_state options.
  • v2e can model the CSDVS (center-surround DVS) proposed in Delbruck, Tobi, Chenghan Li, Rui Graca, and Brian Mcreynolds. 2022. “Utility and Feasibility of a Center Surround Event Camera.” arXiv [cs.CV]. arXiv. http://arxiv.org/abs/2202.13076.

Bug fixes

  • More improvements to user experience with improved CUDA supported pytorch installation instructions and warnings printed if CUDA is not available.
  • More bug fixes for synthetic input script handling and more example scripts, e.g. spots.py.
  • Displayed DVS model state cv2 windows can now be dragged and resized by included cv2.pollkey() calls periodically.

v1.4.3

2 years ago

New Features

  • Try opening v2e in google colab.
  • There are improved noise models of leak and shot noise. Both now model frozen log normal rate distributions; see the --noise_rate_cov_decades option. The leak noise events have timing jitter that matches observed jitter; see --leak_jitter_fraction option.
  • v2e models finite refractory period; see the --refractory_period option.
  • setup.py includes dependencies and now installs v2e as a script to your conda environment to run from command line.
  • HDF output will also output the frames, to allow modeling of DAVIS cameras with APS+DVS output.
  • Added ability to generate input frames from python class. See base_synthetic_input.py and command line argument --synthetic_input=<module_name>.
  • Synthetic input can recieve command line arguments; see particle.py.
  • Desktop notification is generated for long running conversion completion.
  • Ability to crop input frames added; see --crop_input option.

Bug fixes

  • Better argument checking and error reporting.
  • For input folder, --start option skips frames without needing to load them from disk for huge speedup.

v1.4.2

2 years ago

See CHANGELOG.

v1.4.1.1

2 years ago

New Features

  • a new option --dvs_emulator_seed is introduced. This option allows the user to use a fixed random seed. The default is 0 which means the emulator uses a system defined random seed.

Bug fixes

  • Shot noise events polarity was wrongly set to 1 always. This makes the shot noise events are always positive events. Fixed this in emulator.
  • If not using fixed chipset, v2e was wrongly quitting. This is partially fixed by removing a quitting behavior and resetting both output_width an output_height to None. However, since the AEDAT2 saving requires standard chipset, we recommend user to use HDF5 saving method. For synthetic inputs, please set both output_width and output_width (or using a standard chipset), otherwise there will be errors.
  • Event Renderer always at 30 fps. Fixed this so that user can preset the frame rate.
  • The argument skip_video_output still outputs original video and the slow motion video. This is fixed so the behavior matches with the description.

v1.4.0

3 years ago

New features

  • Input frames can be generated by python module that is specified on command line, see moving-dot.py for sample.
  • Video files output can be suppressed with --skip_video_files.
  • Write in place option --output_in_place added to save v2e output in same folder as source video.
  • The input can be either a single video file or a folder that contains a list of ordered image files. The user has to set --input_frame_rate manually when the video is presented as a folder.
  • Change package name from v2e to v2ecore so that it can be run systemwide.
  • Several new warnings and checks added for bad combination of --timestamp_resolution and --cutoff_hz in relation to IIR filtering.
  • Added --disable_slomo switch to completely disable frame interpolation when user generates the src frames at sufficient sample rate.

Bug fixes

  • Fixed option to specify both --auto_timestamp_resolution and --timestamp_resolution at same time, to limit maximum timestep for DVS events.
  • Fixed warning messages to warn users about bad combination of upsampling frame rate and lowpass filtering.
  • Fixed subtle timing problems with events that cause some skew for some videos that generate many events per frame.
  • Fixed the problem when initializing the first frame that causes a burst of leak events. Set the leak initial state accounting for random pixel ON thresholds.
  • Changed so that DVS parameter selection is by default None, so that user selections are not overridden. Added warning that such options will be overridden by using the --dvs_params option.
  • Set default 'noisy' shot noise rate to a more realistic 5Hz/pixel value.
  • Fixed (we hope) very subtle bug in generating ideal ON and OFF events where the ON events were not followed by OFF events for a moving white dot. This was caused by floating point roundoff that caused bits to disappear when adding and subtracting the threshold from the memorized log intensity frame, resulting in nonsymetrical output.
  • Changed lin_log function to include floating point rounding to 5 digits precision, to prevent subtle and hard to understand effects in synthetic input.

v1.3.1

3 years ago
  • GUI interface if Gooey installed, otherwise falls back to CLI
  • Automatic upsampling mode to limit optical flow to max 1 pixel per interframe in each batch of input images
  • Numba batch acceleration of frames to events and events to DVS frame rendering
  • Batch mode fully functional with significant speedup
  • User-friendly defaults for no-arg invocation that pops up file chooser
  • More informative logger output
  • Automatic new output folder creation