Official Pytorch implementation for the "EvTexture: Event-driven Texture Enhancement for Video Super-Resolution" paper (ICML 2024).
π Project | π Paper | πΌοΈ Poster
Authors: Dachun Kaisup>[:email:οΈ](mailto:dachunkai@mail.ustc.edu.cn)</sup, Jiayao Lu, Yueyi Zhangsup>[:email:οΈ](mailto:zhyuey@ustc.edu.cn)</sup, Xiaoyan Sun, University of Science and Technology of China
Feel free to ask questions. If our work helps, please don't hesitate to give us a :star:!
A $4\times$ upsampling results on the Vid4 and REDS4 test sets.
https://github.com/DachunKai/EvTexture/assets/66354783/fcf48952-ea48-491c-a4fb-002bb2d04ad3
https://github.com/DachunKai/EvTexture/assets/66354783/ea3dd475-ba8f-411f-883d-385a5fdf7ff6
https://github.com/DachunKai/EvTexture/assets/66354783/e1e6b340-64b3-4d94-90ee-54f025f255fb
https://github.com/DachunKai/EvTexture/assets/66354783/01880c40-147b-4c02-8789-ced0c1bff9c4
Dependencies: Miniconda, CUDA Toolkit 11.1.1, torch 1.10.2+cu111, and torchvision 0.11.3+cu111.
Run in Conda
conda create -y -n evtexture python=3.7
conda activate evtexture
pip install torch-1.10.2+cu111-cp37-cp37m-linux_x86_64.whl
pip install torchvision-0.11.3+cu111-cp37-cp37m-linux_x86_64.whl
git clone https://github.com/DachunKai/EvTexture.git
cd EvTexture && pip install -r requirements.txt && python setup.py develop
Run in Docker :clap:
Note: before running the Docker image, make sure to install nvidia-docker by following the official instructions.
[Option 1] Directly pull the published Docker image we have provided from Alibaba Cloud.
docker pull registry.cn-hangzhou.aliyuncs.com/dachunkai/evtexture:latest
[Option 2] We also provide a Dockerfile that you can use to build the image yourself.
cd EvTexture && docker build -t evtexture ./docker
The pulled or self-built Docker image containes a complete conda environment named evtexture
. After running the image, you can mount your data and operate within this environment.
source activate evtexture && cd EvTexture && python setup.py develop
experiments/pretrained_models/EvTexture/
. The network architecture code is in evtexture_arch.py.
Download the preprocessed test sets (including events) for REDS4 and Vid4 from (Releases / Onedrive / Google Drive / Baidu Cloud(n8hg)), and place them to datasets/
.
Vid4_h5: HDF5 files containing preprocessed test datasets for Vid4.
REDS4_h5: HDF5 files containing preprocessed test datasets for REDS4.
Run the following command:
./scripts/dist_test.sh [num_gpus] options/test/EvTexture/test_EvTexture_Vid4_BIx4.yml
./scripts/dist_test.sh [num_gpus] options/test/EvTexture/test_EvTexture_REDS4_BIx4.yml
This will generate the inference results in results/
. The output results on REDS4 and Vid4 can be downloaded from (Releases / Onedrive / Google Drive / Baidu Cloud(n8hg)).
Both video and event data are required as input, as shown in the snippet. We package each video and its event data into an HDF5 file.
Example: The structure of calendar.h5
file from the Vid4 dataset is shown below.
calendar.h5
βββ images
β βββ 000000 # frame, ndarray, [H, W, C]
β βββ ...
βββ voxels_f
β βββ 000000 # forward event voxel, ndarray, [Bins, H, W]
β βββ ...
βββ voxels_b
β βββ 000000 # backward event voxel, ndarray, [Bins, H, W]
β βββ ...
To simulate and generate the event voxels, refer to the dataset preparation details in DataPreparation.md.
:heart: Seeking Collaboration: For issues #6 and #7, our method can indeed perform inference on videos without event data. The solution is to use an event camera simulator, such as vid2e, to generate event data from the video, and then input both the video data and the generated event data into our model. This part, however, may require extensive engineering work to package everything into a script, as detailed in DataPreparation.md. We currently do not have enough time to undertake this task, so we are looking for collaborators to join us in this effort! :blush:
If you find the code and pre-trained models useful for your research, please consider citing our paper. :smiley:
@inproceedings{kai2024evtexture,
title={Ev{T}exture: {E}vent-driven {T}exture {E}nhancement for {V}ideo {S}uper-{R}esolution},
author={Kai, Dachun and Lu, Jiayao and Zhang, Yueyi and Sun, Xiaoyan},
booktitle={International Conference on Machine Learning},
year={2024},
organization={PMLR}
}
If you meet any problems, please describe them in issues or contact:
This project is released under the Apache-2.0 license. Our work is built upon BasicSR, which is an open source toolbox for image/video restoration tasks. Thanks to the inspirations and codes from RAFT, event_utils and EvTexture-jupyter.