You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Global Spectral Filter Memory Network for Video Object Segmentation
ECCV 2022
Abstract
This paper studies semi-supervised video object segmentation through boosting intra-frame interaction. Recent memory network-based methods focus on exploiting inter-frame temporal reference while paying little attention to intra-frame spatial dependency. Specifically, these segmentation model tends to be susceptible to interference from unrelated nontarget objects in a certain frame. To this end, we propose Global Spectral Filter Memory network (GSFM), which improves intra-frame interaction through learning long-term spatial dependencies in the spectral domain. The key components of GSFM is 2D (inverse) discrete Fourier transform for spatial information mixing. Besides, we empirically find low frequency feature should be enhanced in encoder (backbone) while high frequency for decoder (segmentation head). We attribute this to semantic information extracting role for encoder and fine-grained details highlighting role for decoder. Thus, Low (High)-Frequency Module is proposed to fit this circumstance.
For installing Pytorch and torchvision, please refer to the official guideline.
For others, you can install them by pip install -r requirements.txt.
Data Preparation
Please refer to STCN to prepare the datasets and put all datasets in /data.
Note that in our project we only use the static datasets, DAVIS, and YouTubeVOS. (BL30K is not used)
Code Structure
├── data/: here are train and test datasets.
│ ├── static
│ ├── DAVIS
│ ├── YouTube
│ ├── YouTube2018
├── datasets/: transform and dataloader for train and test datasets
├── model/: here are the code of the network and training engine(model.py)
├── saves/: here are the checkpoint obtained from training
├── scripts/: some function used to process dataset
├── util/: here are the config(hyper_para.py) and some utils
├── inference_memory_bank.py: the memory bank used in test
├── train.py
├── inference_core.py: test engine for DAVIS
├── inference_core_yv.py: test engine for YouTubeVOS
├── eval_*.py
├── requirements.txt
Training
For pretraining:
To train on the static image datasets, use the following command:
Run the following file to perform inference on the corresponding dataset.
eval_davis_2016.py used for DAVIS 2016 val set.
eval_davis.py used for DAVIS 2017 val and test-dev set (controlled by --split).
eval_youtube.py used for YouTubeVOS 2018/19 val and test set.
Evaluation
For the evaluation metric on DAVIS 2016/2017 val set, we refer to the repository DAVIS_val.
For DAVIS 2017 test-dev set, you can get the metric results by submitting masks to the Codalab website DAVIS_test
For YouTube2019 val set, please submit your results to YouTube19
For YouTube2018 val set, please submit to YouTube18
Acknowledgement
Code in this repository is built upon several public repositories.
Thanks to
STCN,
MiVOS,
FFC,
BMaskR-CNN
for sharing their code.
About
[ECCV2022] Global Spectral Filter Memory Network for Video Object Segmentation