MCPcopy Index your code
hub / github.com/FudanCVL/MOVE

github.com/FudanCVL/MOVE @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
293 symbols 660 edges 24 files 96 documented · 33%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MOVE: Motion-Guided Few-Shot Video Object Segmentation

<a><strong>Kaining Ying<sup> * </sup></strong>
·
<a><strong>Hengrui Hu<sup> * </sup></strong></a>
·
<a href=https://henghuiding.com/><strong>Henghui Ding</strong></a><sup> ✉️ </sup>







Fudan University, China







<a href=https://iccv.thecvf.com/>ICCV 2025, Honolulu, Hawai'i</a>

TL;DR: Our task is to segment dynamic objects in videos based on a few annotated examples that share the same motion patterns. This task focuses on understanding motion information rather than relying solely on static object categories.

📰 News

  • 20250906 | Code and dataset are released.
  • 20250627 | MOVE is accepted by ICCV 2025! 🌺🏄‍♂️🌴

📊 Dataset Preparation

Our dataset is available on Hugging Face 🤗. You can download it and places it at:

pip install -U "huggingface_hub[cli]"
huggingface-cli download FudanCVL/MOVE --repo-type dataset --local-dir ./data/ --local-dir-use-symlinks False --max-workers 16

🛠️ Environment Setup

First, clone the repository:

git clone https://github.com/FudanCVL/MOVE
cd MOVE

Then, set up the conda environment:

conda create -n move python=3.10 -y 
conda activate move
pip install -r requirements.txt

🚀 Train

Before getting started, please ensure your file structure is as shown below.

MOVE/                  # root of project
├── data/             
│   └── MOVE_release/ # dataset directory
├── pretrain_model/   
│   ├── resnet50_v2.pth # ResNet pretrained weights
│   └── swin_tiny_patch244_window877_kinetics400_1k.pth      # Swin Transformer pretrained weights
└── ...               # other project files

Please download the pretrain backbone weights from Hugging Face 🤗.

Use the following command to start training with OS setting, ResNet backbone, 2-way-1-shot, and group 0:

torchrun --nproc_per_node=8 tools/train.py \
    --snapshot_dir snapshots \
    --group 0 \
    --num_ways 2 \
    --num_shots 1 \
    --total_episodes 15000 \
    --setting default \
    --loss_type default \
    --resume \
    --query_frames 5 \
    --support_frames 5 \
    --save_interval 1000 \
    --ce_loss_weight 0.25 \
    --iou_loss_weight 5.0 \
    --backbone resnet50 \
    --motion_appear_orth \
    --obj_cls_loss_weight 0.005 \
    --motion_cls_loss_weight 0.005 \
    --orth_loss_weight 0.05

🧪 Test

Use the following command to test the model with OS setting, ResNet backbone, 2-way-1-shot, and group 0:

torchrun --nproc_per_node=8 tools/inference.py \
    --snapshot snapshots/resnet50/default/2-way-1-shot/group0/latest_checkpoint.pth \
    --group 0 \
    --num_ways 2 \
    --num_shots 1 \
    --num_episodes 2500 \
    --support_frames 5 \
    --setting default \
    --backbone resnet50 \
    --overwrite

We also release the pretrain weights at Hugging Face 🤗 (WIP 🚧).

📇 Citation

If you find our paper and dataset useful for your research, please generously cite our paper.

@inproceedings{ying2025move,
  title={{MOVE}: {M}otion-{G}uided {F}ew-{S}hot {V}ideo {O}bject {S}egmentation},
  author={Ying, Kaining and Hu, Hengrui and Ding, Henghui},
  year={2025},
  booktitle={ICCV}
}

📄 License

MOVE is licensed under a CC BY-NC-SA 4.0 License. The data of MOVE is released for non-commercial research purpose only.

Core symbols most depended-on inside this repo

write
called by 20
libs/utils/Logger.py
update
called by 13
libs/utils/Logger.py
extract_features
called by 8
libs/models/DMA/DMA.py
reset
called by 7
libs/utils/Logger.py
get_frames
called by 7
libs/dataset/MOVE.py
db_eval_iou
called by 5
libs/utils/davis_JF.py
avg
called by 5
libs/utils/Logger.py
mask_pooling
called by 5
libs/models/DMA/DMA.py

Shape

Method 176
Class 62
Function 55

Languages

Python100%

Modules by API surface

libs/dataset/transform.py45 symbols
libs/models/DMA/video_swin_referfomer/swin_transformer.py36 symbols
libs/models/DMA/video_swin_referfomer/video_swin_transformer.py33 symbols
libs/models/DMA/DMA.py33 symbols
libs/utils/Logger.py32 symbols
libs/models/DMA/transformers.py28 symbols
libs/dataset/MOVE.py20 symbols
libs/models/DMA/resnet.py12 symbols
libs/models/DMA/loss.py10 symbols
tools/train.py8 symbols
libs/utils/track_progress_rich.py8 symbols
libs/utils/Restore.py6 symbols

For agents

$ claude mcp add MOVE \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact