All Projects → nearthlab → SiamMaskCpp

nearthlab / SiamMaskCpp

Licence: MIT license
C++ Implementation of SiamMask

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to SiamMaskCpp

Siammask
[CVPR2019] Fast Online Object Tracking and Segmentation: A Unifying Approach
Stars: ✭ 3,205 (+3383.7%)
Mutual labels:  visual-tracking, video-object-segmentation
Pytracking
Visual tracking library based on PyTorch.
Stars: ✭ 1,843 (+1903.26%)
Mutual labels:  visual-tracking
Cvpr2021 Papers With Code
CVPR 2021 论文和开源项目合集
Stars: ✭ 7,138 (+7658.7%)
Mutual labels:  visual-tracking
Benchmark results
Visual Tracking Paper List
Stars: ✭ 3,672 (+3891.3%)
Mutual labels:  visual-tracking
KCC
Kernel Cross-Correlator (KCC) for Tracking and Recognition (AAAI 2018)
Stars: ✭ 43 (-53.26%)
Mutual labels:  visual-tracking
kernelized correlation filters gpu
Real-time visual object tracking using correlations filters and deep learning
Stars: ✭ 27 (-70.65%)
Mutual labels:  visual-tracking
toolkit
The official VOT Challenge evaluation and analysis toolkit
Stars: ✭ 96 (+4.35%)
Mutual labels:  visual-tracking
Mask-Propagation
[CVPR 2021] MiVOS - Mask Propagation module. Reproduced STM (and better) with training code 🌟. Semi-supervised video object segmentation evaluation.
Stars: ✭ 71 (-22.83%)
Mutual labels:  video-object-segmentation
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 (-66.3%)
Mutual labels:  video-object-segmentation
anchor-diff-VOS
Anchor Diffusion for Unsupervised Video Object Segmentation
Stars: ✭ 113 (+22.83%)
Mutual labels:  video-object-segmentation
MiVOS
[CVPR 2021] Modular Interactive Video Object Segmentation: Interaction-to-Mask, Propagation and Difference-Aware Fusion. Semi-supervised VOS as well!
Stars: ✭ 302 (+228.26%)
Mutual labels:  video-object-segmentation
GIS-RAmap
Pytorch implementation of CVPR2021 oral paper (best paper candidate), "Guided Interactive Video Object Segmentation Using Reliability-Based Attention Maps"
Stars: ✭ 36 (-60.87%)
Mutual labels:  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 (+218.48%)
Mutual labels:  video-object-segmentation
RMNet
Implementation of "Efficient Regional Memory Network for Video Object Segmentation". (Xie et al., CVPR 2021)
Stars: ✭ 76 (-17.39%)
Mutual labels:  video-object-segmentation
GraphMemVOS
Video Object Segmentation with Episodic Graph Memory Networks (ECCV2020 spotlight)
Stars: ✭ 92 (+0%)
Mutual labels:  video-object-segmentation
pytorch-cpp
Just messing around with PyTorch 1.0's JIT compiler and their new C++ API Libtorch.
Stars: ✭ 17 (-81.52%)
Mutual labels:  pytorch-cpp
LibtorchTutorials
This is a code repository for pytorch c++ (or libtorch) tutorial.
Stars: ✭ 463 (+403.26%)
Mutual labels:  pytorch-cpp

SiamMaskCpp

  • C++ Implementation of SiamMask
  • Porting slogan:
    • numpy operations → cv::Mat operations
    • CNNs → torch::jit::script::Module
    • Other tensor operations → torch::Tensor operations
  • Faster than the original implementation (speed increased from 22fps to 40fps when tested with a single NVIDIA GeForce GTX 1070)

Requirements

  • OpenCV >= 3 (tested with 3.4.0)
  • PyTorch >= 1 (tested with 1.3.0)

Convert a SiamMask model to Torch scripts

You can use the models (with the refine module) trained with the original repository foolwood/SiamMask for inference in C++. Just Follow the instruction in jiwoong-choi/SiamMask to convert your own models to Torch script files.

Download pretrained Torch scripts

Or you can download pretrained Torch scripts. These files are converted from the pretrained models (SiamMask_DAVIS.pth and SiamMask_VOT.pth) in the original repository.

git clone --recurse-submodules https://github.com/nearthlab/SiamMaskCpp
cd SiamMaskCpp
mkdir models
cd models
wget https://github.com/nearthlab/SiamMaskCpp/releases/download/v1.0/SiamMask_DAVIS.tar.gz
wget https://github.com/nearthlab/SiamMaskCpp/releases/download/v1.0/SiamMask_VOT.tar.gz
tar -xvzf SiamMask_DAVIS.tar.gz
tar -xvzf SiamMask_VOT.tar.gz

Before building demo, make sure the following command prints out the correct path to torch install directory.

python3 -c "import torch; print(torch.__path__[0])"
# /path/to/lib/python3.x/site-packages/torch

How to build demo

cd SiamMaskCpp
mkdir build
cd build
# specify -DTORCH_PATH=/path/to/lib/python3.x/site-packages/torch if cmake fails to detect PyTorch automatically
cmake ..
make

# Move the executable file to the repository directory
mv demo ..

How to run demo

cd SiamMaskCpp
./demo -c config_davis.json -m models/SiamMask_DAVIS tennis
./demo -c config_vot.json -m models/SiamMask_VOT tennis
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].