Skip to content

nearthlab/SiamMaskCpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Jiwoong Choi
Feb 28, 2020
35d7d20 · Feb 28, 2020

History

14 Commits
Feb 28, 2020
Sep 16, 2019
Feb 13, 2020
Feb 27, 2020
Feb 13, 2020
Feb 28, 2020
Sep 11, 2019
Feb 27, 2020
Feb 13, 2020
Feb 13, 2020
Feb 27, 2020

Repository files navigation

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