MaskTrack

The MaskTrack method is the baseline for state-of-the-art methods in video object segmentation like Video Object Segmentation with Re-identification and[ Lucid Data Dreaming for Multiple Object Tracking] (https://arxiv.org/abs/1703.09554). The top three methods in DAVIS 2017 challenge were based on the MaskTrack method. However, no open source code is available for the MaskTrack method. Here I provide the MaskTrack method with following specifications:

  1. The code gives a score of 0.466 on the DAVIS 2017 test-dev dataset. J-mean is 0.440 and F-mean is 0.492.
  2. The code handles multiple objects present in DAVIS 2017.
  3. Data generation code in matlab for offline training on DAVIS 17 train+val and online training on DAVIS 17 test is also included. Thus, all of the code is packaged together.

Getting Started

Machine configuration used for testing:

  1. Two 'GeForce GTX 1080 Ti' cards with 11GB memory each.
  2. CPU RAM memory of 32 GB (though only about 11GB is required)

Offline training is done on DAVIS 2017 train data. The online training and testing is done on DAVIS 2017 test dataset. I recommend using conda for downloading and managing the environments.

Download the Deeplab Resnet 101 pretrained COCO model from here and place it in 'training/pretrained' folder.

If you want to skip offline training and directly perform online training and testing, download the offline trained model from here and place it in 'training/offline_save_dir/lr_0.001_wd_0.001' folder.

Prerequisites

What things you need to install the software and how to install them

Software used:

  1. Pytorch 0.3.1
  2. Matlab 2017b
  3. Python 2.7

Dependencies: Create a conda environment using the training/deeplab_resnet_env.yml file. Use: conda env create -f training/deeplab_resnet_env.yml

If you are not using conda as a package manager, refer to the yml file and install the libraries manually.

Running the code

Please refer to the following instructions:

A. Offline training data generation

B. Setting paths for python files

C. Offline training

D. Online Training data generation

E. Online Training and testing

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

This code was produced during my internship at Nanyang Technological University under Prof. Guosheng Lin. I would like to thank him for providing access to the GPUs.

  1. The code for generation of masks was based on: www.mpi-inf.mpg.de/masktrack
  2. The code for Deeplab Resnet was taken from: https://github.com/isht7/pytorch-deeplab-resnet
  3. Some of the dataloader code was based on: https://github.com/fperazzi/davis-2017
  4. Template of Readme.md file: https://gist.github.com/PurpleBooth/109311bb0361f32d87a2

I would like to thank K.K. Maninis for providing this code: https://github.com/kmaninis/OSVOS-PyTorch for reference.