MCPcopy Index your code
hub / github.com/charigyang/motiongrouping

github.com/charigyang/motiongrouping @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
158 symbols 403 edges 36 files 25 documented · 16%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Self-supervised Video Object Segmentation by Motion Grouping

This code accompanies the paper: Self-supervised Video Object Segmentation by Motion Grouping

Charig Yang, Hala Lamdouar, Erika Lu, Andrew Zisserman, Weidi Xie.

ICCV 2021

Project page: https://charigyang.github.io/motiongroup/

Requirements :

pytorch (tested on 1.7, although any recent version should work)
cvbase
einops
tensorboardX

Datasets :

  • DAVIS 2016 can be used as-is.
  • The rest has to be converted to DAVIS format. Some helper functions are available in tools.
  • MoCA needs to be processed. See Supplementary Material for the paper for details. Helper functions are available in tools. The (already filtered) dataset is also available on google drive: https://drive.google.com/drive/u/2/folders/1x-owzr9Voz65NQghrN_H1LEYDaaQP5n1, which can be used as-is after download.
  • Precomputed flows can be generated from raft/run_inference.py

Training :

python train.py --dataset DAVIS --flow_to_rgb

Inference :

python eval.py --dataset DAVIS  --flow_to_rgb --inference --resume_path {}

Benchmark :

  • For DAVIS: use the official evaluation code: https://github.com/fperazzi/davis
  • For MOCA: use tools/MoCA_eval.py

How to use this on your own data :

  • Generate optical flow from your dataset using raft/inference.py
  • Edit setup_dataset in config.py to include your dataset, and add this to the choices in parser.add_argument('--dataset') in train.py and eval.py
  • Follow the training and inference instructions above with your own --dataset argument. Use --resume_path {} if you are fine-tuning.

Issues/questions/pull requests :

are very welcome.

Reference :

If you find this helpful in your research, we would be grateful if you cite our work

@InProceedings{yang2021selfsupervised,
  title={Self-supervised Video Object Segmentation by Motion Grouping}, 
  author={Charig Yang and Hala Lamdouar and Erika Lu and Andrew Zisserman and Weidi Xie},
  booktitle={ICCV},
  year={2021},
}

Core symbols most depended-on inside this repo

update
called by 4
tools/MoCA_eval.py
load_image
called by 4
raft/predict.py
iou
called by 3
src/utils.py
readFlow
called by 3
src/data.py
_make_layer
called by 3
raft/core/extractor.py
_make_layer
called by 3
raft/core/extractor.py
eval
called by 2
src/eval.py
readRGB
called by 2
src/data.py

Shape

Method 81
Function 45
Class 32

Languages

Python100%

Modules by API surface

raft/core/update.py21 symbols
src/utils.py16 symbols
raft/core/datasets.py16 symbols
src/model.py14 symbols
raft/core/extractor.py14 symbols
raft/core/utils/augmentor.py13 symbols
src/data.py11 symbols
raft/core/raft.py10 symbols
tools/MoCA_eval.py8 symbols
raft/core/utils/utils.py8 symbols
raft/core/utils/frame_utils.py7 symbols
raft/core/corr.py7 symbols

For agents

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

⬇ download graph artifact