Skip to content
/ TMA Public

[ICCV-2023] The official repository of our paper "TMA: Temporal Motion Aggregation for Event-based Optical Flow".

Notifications You must be signed in to change notification settings

ispc-lab/TMA

Repository files navigation

This is the official codebase for the paper TMA: Temporal Motion Aggregation for Event-based Optical Flow.

Datasets

DSEC

The DSEC dataset for optical flow can be downloaded here.

Experiments

DSEC Dataset Preparation

Some preprocess is helpful to save training time. We use pre-generated event volumes saved in .npz files and flows in .npy files. Basically, we follow the data preprocess in E-RAFT.

We put data in datsets/dsec_full folder, and the structure should be like this:

|-dsec_full
    |-trainval
        |-thun_00_a
          |-000000.npz
          |-flow_000000.npy
          |-000001.npz
          |-flow_000001.npy
          ...
        |-zurich_city_02_a
          |-000000.npz
          |-flow_000000.npy
          |-000001.npz
          |-flow_000001.npy
          ...
        |-zurich_city_02_d

   |-test
        |-interlaken_00_b
          |-xxxxxx.npz
          |-xxxxxx.npz
        |-interlaken_01_a
          |-xxxxxx.npz
          |-xxxxxx.npz

For trainval data, each .npz file contains two consecutive event streams named events_prev and events_curr, each flow_xxxxxx.npy file contains corresponding 16-bit optical flow.

For test data, the .npz file is indexed by test timestamp, which is useful for generating predictions for online benchmark.

Event data generation

For training data, use

cd data_utils
python gen_dsec.py 

You need to change event_path, flow_path and output_dir for correct data generation.

For test data, use

cd data_utils
python gen_dsec_upload.py 

You need to change event_path, ts_path and output_dir for correct data generation.

Training Full DSEC-Flow dataset

sh train.sh

Please choose your expected folder name to save your checkpoints. By default, ckpts/ is used.

Arguments

--checkpoint_dir : Path to save checkpoints, here we use ckpts/ for convenience.

--wandb : Optional, if you want to visualize training loss.

Training DSEC-Flow split for developing model (Optional)

python train_split.py --checkpoint_dir 'your_checkpoint_dir/'

Please assign a directory to save checkpoints by --checkpoint_dir.

If you want to use wandb to visualize the loss, --wandb is optional.

We also provide a split example in datasets/dsec_split/train/split_example.txt and datasets/dsec_split/val/split_example.txt.

Citation

If you find this codebase helpful for your research, please cite our paper:

@inproceedings{liu2023tma,
  title={TMA: Temporal Motion Aggregation for Event-based Optical Flow},
  author={Liu, Haotian and Chen, Guang and Qu, Sanqing and Zhang, Yanping and Li, Zhijun and Knoll, Alois and Jiang, Changjun},
  booktitle={ICCV},
  year={2023},
}

Contact

If you have any concerns about this codebase or our paper, please feel free to drop me an E-mail.

About

[ICCV-2023] The official repository of our paper "TMA: Temporal Motion Aggregation for Event-based Optical Flow".

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published