All Projects → imatge-upc → Rvos

imatge-upc / Rvos

Licence: other
RVOS: End-to-End Recurrent Network for Video Object Segmentation (CVPR 2019)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rvos

Vidgear
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features 🔥
Stars: ✭ 2,048 (+771.49%)
Mutual labels:  video-processing
Online Video Editor
API based Online Video Editing using FFMPEG & NodeJs for Backend Editing
Stars: ✭ 176 (-25.11%)
Mutual labels:  video-processing
Metalimage
MetalImage is more faster and powerful than opengles for iOS. It is very similar to GPUImage framework, but perform a better 3D rendering and multithreads computing abilities.
Stars: ✭ 207 (-11.91%)
Mutual labels:  video-processing
Filestack Android
Official Android SDK for Filestack - API and content management system that makes it easy to add powerful file uploading and transformation capabilities to any web or mobile application.
Stars: ✭ 140 (-40.43%)
Mutual labels:  video-processing
Computer Vision Video Lectures
A curated list of free, high-quality, university-level courses with video lectures related to the field of Computer Vision.
Stars: ✭ 154 (-34.47%)
Mutual labels:  video-processing
Opencast
The free and open source solution for automated video capture and distribution at scale.
Stars: ✭ 194 (-17.45%)
Mutual labels:  video-processing
Pubgis
Generate maps of your position throughout PUBG gameplay
Stars: ✭ 135 (-42.55%)
Mutual labels:  video-processing
Actionvlad
ActionVLAD for video action classification (CVPR 2017)
Stars: ✭ 217 (-7.66%)
Mutual labels:  video-processing
Gpuimage X
A Cross-platform (for both Android & iOS) Framework for GPU-based Filters, Video and Image Processing.
Stars: ✭ 154 (-34.47%)
Mutual labels:  video-processing
Iseebetter
iSeeBetter: Spatio-Temporal Video Super Resolution using Recurrent-Generative Back-Projection Networks | Python3 | PyTorch | GANs | CNNs | ResNets | RNNs | Published in Springer Journal of Computational Visual Media, September 2020, Tsinghua University Press
Stars: ✭ 202 (-14.04%)
Mutual labels:  video-processing
Mediapipe
Cross-platform, customizable ML solutions for live and streaming media.
Stars: ✭ 15,338 (+6426.81%)
Mutual labels:  video-processing
Mlv App
All in one MLV processing app that is pretty great. Download:
Stars: ✭ 150 (-36.17%)
Mutual labels:  video-processing
Unsilence
Console Interface and Library to remove silent parts of a media file 🔈
Stars: ✭ 197 (-16.17%)
Mutual labels:  video-processing
Abnormal event detection
Abnormal Event Detection in Videos using SpatioTemporal AutoEncoder
Stars: ✭ 139 (-40.85%)
Mutual labels:  video-processing
Optivideoeditor For Android
Native Video editor : Video trim, Audio, Video merge, Slow and fast motion, Text and image, etc...
Stars: ✭ 209 (-11.06%)
Mutual labels:  video-processing
Avdemo
Demo projects for iOS Audio & Video development.
Stars: ✭ 136 (-42.13%)
Mutual labels:  video-processing
Anime4k
A High-Quality Real Time Upscaler for Anime Video
Stars: ✭ 14,083 (+5892.77%)
Mutual labels:  video-processing
Optivideoeditor For Ios
Native Video editor : Video trim, Audio, Video merge, Slow and fast motion, Video transition, Text and image, Filters, etc...
Stars: ✭ 234 (-0.43%)
Mutual labels:  video-processing
Cinema
a lightweight video editing library for go (trimming, resizing, cropping, and more!)
Stars: ✭ 213 (-9.36%)
Mutual labels:  video-processing
Ags
Learning Unsupervised Video Object Segmentation through Visual Attention (CVPR19, PAMI20)
Stars: ✭ 202 (-14.04%)
Mutual labels:  video-processing

RVOS: End-to-End Recurrent Net for Video Object Segmentation

See our project website here.

In order to develop this code, we used RSIS (Recurrent Semantic Instance Segmentation), which can be found here, and modified it to suit it to video object segmentation task.

One shot visual results

RVOS One shot

Zero shot visual results

RVOS Zero shot

License

This code cannot be used for commercial purposes. Please contact the authors if interested in licensing this software.

Installation

  • Clone the repo:
git clone https://github.com/imatge-upc/rvos.git
  • Install requirements pip install -r requirements.txt
  • Install PyTorch 1.0 (choose the whl file according to your setup, e.g. your CUDA version):
pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.1.post2-cp36-cp36m-linux_x86_64.whl
pip3 install torchvision

Data

YouTube-VOS

Download the YouTube-VOS dataset from their website. You will need to register to codalab to download the dataset. Create a folder named databasesin the parent folder of the root directory of this project and put there the database in a folder named YouTubeVOS. The root directory (rvosfolder) and the databases folder should be in the same directory.

The training of the RVOS model for YouTube-VOS has been implemented using a split of the train set into two subsets: train-train and train-val. The model is trained on the train-train subset and validated on the train-val subset to decide whether the model should be saved or not. To train the model according to this split, the code requires that there are two json files in the databases/YouTubeVOS/train/folder named train-train-meta.jsonand train-val-meta.json with the same format as the meta.jsonincluded when downloading the dataset. You can also download the partition used in our experiments in the following links:

DAVIS 2017

Download the DAVIS 2017 dataset from their website at 480p resolution. Create a folder named databasesin the parent folder of the root directory of this project and put there the database in a folder named DAVIS2017. The root directory (rvosfolder) and the databases folder should be in the same directory.

LMDB data indexing

To highly speed the data loading we recommend to generate an LMDB indexing of it by doing:

python dataset_lmdb_generator.py -dataset=youtube

or

python dataset_lmdb_generator.py -dataset=davis2017

depending on the dataset you are using.

Training

  • Train the model for one-shot video object segmentation with python train_previous_mask.py -model_name model_name. Checkpoints and logs will be saved under ../models/model_name.
  • Train the model for zero-shot video object segmentation with python train.py -model_name model_name. Checkpoints and logs will be saved under ../models/model_name.
  • Other arguments can be passed as well. For convenience, scripts to train with typical parameters are provided under scripts/.
  • Plot loss curves at any time with python plot_curves.py -model_name model_name.

Evaluation

We provide bash scripts to evaluate models for the YouTube-VOS and DAVIS 2017 datasets. You can find them under the scripts folder. On the one hand, eval_one_shot_youtube.shand eval_zero_shot_youtube.sh generate the results for YouTube-VOS dataset on one-shot video object segmentation and zero-shot video object segmentation respectively. On the other hand, eval_one_shot_davis.shand eval_zero_shot_davis.sh generate the results for DAVIS 2017 dataset on one-shot video object segmentation and zero-shot video object segmentation respectively.

Furthermore, in the src folder, prepare_results_submission.pyand prepare_results_submission_davis can be applied to change the format of the results in the appropiate format to use the official evaluation servers of YouTube-VOS and DAVIS respectively.

Demo

You can run demo.py to do generate the segmentation masks of a video. Just do:

python demo.py -model_name one-shot-model-davis --overlay_masks

and it will generate the resulting masks.

To run the demo for your own videos:

  1. extract the frames to a folder (make sure their names are in order, e.g. 00000.jpg, 00001.jpg, ...)
  2. Have the initial mask corresponding to the first frame (e.g. 00000.png).
  3. run python demo.py -model_name one-shot-model-davis -frames_path path-to-your-frames -mask_path path-to-initial-mask --overlay_masks

to do it for zero-shot (i.e. without initial mask) run python demo.py -model_name zero-shot-model-davis -frames_path path-to-your-frames --zero_shot --overlay_masks

Also you can use the argument -results_path to save the results to the folder you prefer.

Pretrained models

Download weights for models trained with:

Extract and place the obtained folder under models directory. You can then run evaluation scripts with the downloaded model by setting args.model_name to the name of the folder.

Contact

For questions and suggestions use the issues section or send an e-mail to [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].