All Projects → foolwood → Siammask

foolwood / Siammask

Licence: mit
[CVPR2019] Fast Online Object Tracking and Segmentation: A Unifying Approach

Programming Languages

python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Siammask

kernelized correlation filters gpu
Real-time visual object tracking using correlations filters and deep learning
Stars: ✭ 27 (-99.16%)
Mutual labels:  visual-tracking, object-tracking
SiamMaskCpp
C++ Implementation of SiamMask
Stars: ✭ 92 (-97.13%)
Mutual labels:  visual-tracking, video-object-segmentation
UniTrack
[NeurIPS'21] Unified tracking framework with a single appearance model. It supports Single Object Tracking (SOT), Video Object Segmentation (VOS), Multi-Object Tracking (MOT), Multi-Object Tracking and Segmentation (MOTS), Pose Tracking, Video Instance Segmentation (VIS), and class-agnostic MOT (e.g. TAO dataset).
Stars: ✭ 293 (-90.86%)
Mutual labels:  object-tracking, video-object-segmentation
HierarchyLayout
[CVPR'19] Hierarchy Denoising Recursive Autoencoders for 3D Scene Layout Prediction
Stars: ✭ 20 (-99.38%)
Mutual labels:  cvpr2019
TrackNet-Badminton-Tracking-tensorflow2
TrackNet for badminton tracking using tensorflow2
Stars: ✭ 37 (-98.85%)
Mutual labels:  object-tracking
delse
PyTorch code for Deep Extreme Level Set Evolution (CVPR 2019)
Stars: ✭ 62 (-98.07%)
Mutual labels:  cvpr2019
e-osvos
Implementation of "Make One-Shot Video Object Segmentation Efficient Again” and the semi-supervised fine-tuning "e-OSVOS" approach (NeurIPS 2020).
Stars: ✭ 31 (-99.03%)
Mutual labels:  video-object-segmentation
Squot
Squeak Object Tracker - Version control for arbitrary objects, currently with Git storage
Stars: ✭ 45 (-98.6%)
Mutual labels:  object-tracking
Yolov5-Deepsort
最新版本yolov5+deepsort目标检测和追踪,能够显示目标类别,支持5.0版本可训练自己数据集
Stars: ✭ 201 (-93.73%)
Mutual labels:  object-tracking
SiamFC-tf
A TensorFlow implementation of the SiamFC tracker, use with your own camera and video, or integrate to your own project 实时物体追踪,封装API,可整合到自己的项目中
Stars: ✭ 22 (-99.31%)
Mutual labels:  object-tracking
readtime
Calculates the time some text takes the average human to read, based on Medium's read time forumula.
Stars: ✭ 93 (-97.1%)
Mutual labels:  read-time
robotics-level-4
This repo contains projects created using TensorFlow-Lite on Raspberry Pi and Teachable Machine. AI and ML capabilities have been integrated with Robot's software.
Stars: ✭ 34 (-98.94%)
Mutual labels:  object-tracking
ACVR2017
An Innovative Salient Object Detection Using Center-Dark Channel Prior
Stars: ✭ 20 (-99.38%)
Mutual labels:  object-tracking
toolkit
The official VOT Challenge evaluation and analysis toolkit
Stars: ✭ 96 (-97%)
Mutual labels:  visual-tracking
understanding apr
No description or website provided.
Stars: ✭ 38 (-98.81%)
Mutual labels:  cvpr2019
KCC
Kernel Cross-Correlator (KCC) for Tracking and Recognition (AAAI 2018)
Stars: ✭ 43 (-98.66%)
Mutual labels:  visual-tracking
object-tracking
Multiple Object Tracking System in Keras + (Detection Network - YOLO)
Stars: ✭ 89 (-97.22%)
Mutual labels:  object-tracking
video-clip-order-prediction
Self-supervised Spatiotemporal Learning via Video Clip Order Prediction
Stars: ✭ 85 (-97.35%)
Mutual labels:  cvpr2019
CSA
Official implementation of CVPR2020 Paper "Cooling-Shrinking Attack"
Stars: ✭ 48 (-98.5%)
Mutual labels:  object-tracking
Mask-Propagation
[CVPR 2021] MiVOS - Mask Propagation module. Reproduced STM (and better) with training code 🌟. Semi-supervised video object segmentation evaluation.
Stars: ✭ 71 (-97.78%)
Mutual labels:  video-object-segmentation

SiamMask

NEW: now including code for both training and inference!

PWC

This is the official implementation with training code for SiamMask (CVPR2019). For technical details, please refer to:

Fast Online Object Tracking and Segmentation: A Unifying Approach
Qiang Wang*, Li Zhang*, Luca Bertinetto*, Weiming Hu, Philip H.S. Torr (* denotes equal contribution)
CVPR 2019
[Paper] [Video] [Project Page]

Bibtex

If you find this code useful, please consider citing:

@inproceedings{wang2019fast,
    title={Fast online object tracking and segmentation: A unifying approach},
    author={Wang, Qiang and Zhang, Li and Bertinetto, Luca and Hu, Weiming and Torr, Philip HS},
    booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
    year={2019}
}

Contents

  1. Environment Setup
  2. Demo
  3. Testing Models
  4. Training Models

Environment setup

This code has been tested on Ubuntu 16.04, Python 3.6, Pytorch 0.4.1, CUDA 9.2, RTX 2080 GPUs

  • Clone the repository
git clone https://github.com/foolwood/SiamMask.git && cd SiamMask
export SiamMask=$PWD
  • Setup python environment
conda create -n siammask python=3.6
source activate siammask
pip install -r requirements.txt
bash make.sh
  • Add the project to your PYTHONPATH
export PYTHONPATH=$PWD:$PYTHONPATH

Demo

  • Setup your environment
  • Download the SiamMask model
cd $SiamMask/experiments/siammask_sharp
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_VOT.pth
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_DAVIS.pth
  • Run demo.py
cd $SiamMask/experiments/siammask_sharp
export PYTHONPATH=$PWD:$PYTHONPATH
python ../../tools/demo.py --resume SiamMask_DAVIS.pth --config config_davis.json

Testing

  • Setup your environment
  • Download test data
cd $SiamMask/data
sudo apt-get install jq
bash get_test_data.sh
  • Download pretrained models
cd $SiamMask/experiments/siammask_sharp
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_VOT.pth
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_VOT_LD.pth
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_DAVIS.pth
  • Evaluate performance on VOT
bash test_mask_refine.sh config_vot.json SiamMask_VOT.pth VOT2016 0
bash test_mask_refine.sh config_vot.json SiamMask_VOT.pth VOT2018 0
bash test_mask_refine.sh config_vot.json SiamMask_VOT.pth VOT2019 0
bash test_mask_refine.sh config_vot18.json SiamMask_VOT_LD.pth VOT2016 0
bash test_mask_refine.sh config_vot18.json SiamMask_VOT_LD.pth VOT2018 0
python ../../tools/eval.py --dataset VOT2016 --tracker_prefix C --result_dir ./test/VOT2016
python ../../tools/eval.py --dataset VOT2018 --tracker_prefix C --result_dir ./test/VOT2018
python ../../tools/eval.py --dataset VOT2019 --tracker_prefix C --result_dir ./test/VOT2019
  • Evaluate performance on DAVIS (less than 50s)
bash test_mask_refine.sh config_davis.json SiamMask_DAVIS.pth DAVIS2016 0
bash test_mask_refine.sh config_davis.json SiamMask_DAVIS.pth DAVIS2017 0
bash test_mask_refine.sh config_davis.json SiamMask_DAVIS.pth ytb_vos 0

Results

These are the reproduction results from this repository. All results can be downloaded from our project page.

Tracker VOT2016
EAO / A / R
VOT2018
EAO / A / R
DAVIS2016
J / F
DAVIS2017
J / F
Youtube-VOS
J_s / J_u / F_s / F_u
Speed
SiamMask-box 0.412/0.623/0.233 0.363/0.584/0.300 - / - - / - - / - / - / - 77 FPS
SiamMask 0.433/0.639/0.214 0.380/0.609/0.276 0.713/0.674 0.543/0.585 0.602/0.451/0.582/0.477 56 FPS
SiamMask-LD 0.455/0.634/0.219 0.423/0.615/0.248 - / - - / - - / - / - / - 56 FPS

Note:

  • Speed are tested on a NVIDIA RTX 2080.
  • -box reports an axis-aligned bounding box from the box branch.
  • -LD means training with large dataset (ytb-bb+ytb-vos+vid+coco+det).

Training

Training Data

Download the pre-trained model (174 MB)

(This model was trained on the ImageNet-1k Dataset)

cd $SiamMask/experiments
wget http://www.robots.ox.ac.uk/~qwang/resnet.model
ls | grep siam | xargs -I {} cp resnet.model {}

Training SiamMask base model

  • Setup your environment
  • From the experiment directory, run
cd $SiamMask/experiments/siammask_base/
bash run.sh
  • Training takes about 10 hours in our 4 Tesla V100 GPUs.
  • If you experience out-of-memory errors, you can reduce the batch size in run.sh.
  • You can view progress on Tensorboard (logs are at <experiment_dir>/logs/)
  • After training, you can test checkpoints on VOT dataset.
bash test_all.sh -s 1 -e 20 -d VOT2018 -g 4  # test all snapshots with 4 GPUs
  • Select best model for hyperparametric search.
#bash test_all.sh -m [best_test_model] -d VOT2018 -n [thread_num] -g [gpu_num] # 8 threads with 4 GPUS
bash test_all.sh -m snapshot/checkpoint_e12.pth -d VOT2018 -n 8 -g 4 # 8 threads with 4 GPUS

Training SiamMask model with the Refine module

  • Setup your environment
  • In the experiment file, train with the best SiamMask base model
cd $SiamMask/experiments/siammask_sharp
bash run.sh <best_base_model>
bash run.sh checkpoint_e12.pth
  • You can view progress on Tensorboard (logs are at <experiment_dir>/logs/)
  • After training, you can test checkpoints on VOT dataset
bash test_all.sh -s 1 -e 20 -d VOT2018 -g 4

Training SiamRPN++ model (unofficial)

  • Setup your environment
  • From the experiment directory, run
cd $SiamMask/experiments/siamrpn_resnet
bash run.sh
  • You can view progress on Tensorboard (logs are at <experiment_dir>/logs/)
  • After training, you can test checkpoints on VOT dataset
bash test_all.sh -h
bash test_all.sh -s 1 -e 20 -d VOT2018 -g 4

License

Licensed under an MIT license.

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].