• Stars
    star
    608
  • Rank 73,224 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created 11 months ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[CVPR 2024 Highlight] Putting the Object Back Into Video Object Segmentation

Putting the Object Back into Video Object Segmentation

titlecard

Ho Kei Cheng, Seoung Wug Oh, Brian Price, Joon-Young Lee, Alexander Schwing

University of Illinois Urbana-Champaign and Adobe

[arXiV] [PDF] [Project Page] Open In Colab

Highlight

Cutie is a video object segmentation framework -- a follow-up work of XMem with better consistency, robustness, and speed. This repository contains code for standard video object segmentation and a GUI tool for interactive video segmentation. The GUI tool additionally contains the "permanent memory" (from XMem++) option for better controllability.

overview

Demo Video

demo_public_ver_small.mp4

Source: https://raw.githubusercontent.com/hkchengrex/Cutie/main/docs/sources.txt

Installation

Tested on Ubuntu only.

Prerequisite:

  • Python 3.8+
  • PyTorch 1.12+ and corresponding torchvision

Clone our repository:

git clone https://github.com/hkchengrex/Cutie.git

Install with pip:

cd Cutie
pip install -e .

(If you encounter the File "setup.py" not found error, upgrade your pip with pip install --upgrade pip)

Download the pretrained models:

python scripts/download_models.py

Quick Start

Start the interactive demo with:

python interactive_demo.py --video ./examples/example.mp4 --num_objects 1

See more instructions here. If you are running this on a remote server, X11 forwarding is possible. Start by using ssh -X. Additional configurations might be needed but Google would be more helpful than me.

demo

(For single video evaluation, see process_video.py from #16)

Training and Evaluation

  1. Running Cutie on video object segmentation data.
  2. Training Cutie.

Citation

@inproceedings{cheng2023putting,
  title={Putting the Object Back into Video Object Segmentation},
  author={Cheng, Ho Kei and Oh, Seoung Wug and Price, Brian and Lee, Joon-Young and Schwing, Alexander},
  booktitle={arXiv},
  year={2023}
}

References

  • The GUI tools uses RITM for interactive image segmentation. This repository also contains a redistribution of their code in gui/ritm. That part of code follows RITM's license.

  • For automatic video segmentation/integration with external detectors, see DEVA.

  • The interactive demo is developed upon IVS, MiVOS, and XMem.

  • We used ProPainter in our video inpainting demo.

  • Thanks to RTIM and XMem++ for making this possible.

More Repositories

1

XMem

[ECCV 2022] XMem: Long-Term Video Object Segmentation with an Atkinson-Shiffrin Memory Model
Python
1,669
star
2

Tracking-Anything-with-DEVA

[ICCV 2023] Tracking Anything with Decoupled Video Segmentation
Python
1,201
star
3

CascadePSP

[CVPR 2020] CascadePSP: Toward Class-Agnostic and Very High-Resolution Segmentation via Global and Local Refinement
Python
812
star
4

STCN

[NeurIPS 2021] Rethinking Space-Time Networks with Improved Memory Coverage for Efficient Video Object Segmentation
Python
533
star
5

MiVOS

[CVPR 2021] Modular Interactive Video Object Segmentation: Interaction-to-Mask, Propagation and Difference-Aware Fusion. Semi-supervised VOS as well!
Python
458
star
6

Mask-Propagation

[CVPR 2021] MiVOS - Mask Propagation module. Reproduced STM (and better) with training code 🌟. Semi-supervised video object segmentation evaluation.
Python
127
star
7

Scribble-to-Mask

[CVPR 2021] MiVOS - Scribble to Mask module
Python
88
star
8

vos-benchmark

Fast and general video object segmentation evaluation.
Python
23
star
9

PyTorch-ARCNN

A test script for ARCNN powered by PyTorch.
Python
14
star
10

davis2016-evaluation

Python
8
star
11

Course-Data-Analyser

A project for COMP2021 which analyse data of courses in HKUST
HTML
3
star
12

CharTrans-GAN

Use GAN to perform style transfer of Chinese characters.
TeX
3
star
13

BlenderVOSRenderer

Python
2
star
14

Single-View-Metrology-Step-By-Step

An implementation of Single View Metrology (Criminisi99) with step-by-step guidance in a Jupyter Notebook.
Jupyter Notebook
1
star
15

Android-Matrix-Calculator

A simple android matrix calculator which supports input of unknowns.
Java
1
star
16

VisualChat-Painter-example

Java
1
star
17

htyc-eitc-student

This is a repo for storing and sharing the resources provided to EITC students in HTYC.
Java
1
star
18

kinetics_to_frames

Convert kinetics datasets (or other video datasets) to frames. Support resizing and temporal sampling for space efficiency.
Python
1
star
19

Markov-Next-Word

A next-word prediction program using Markov chain with n-gram written in Go.
Go
1
star