Awesome
MetaTrackers
0. Prerequisites
PyTorch >= v0.2.0
0. Dataset download
Download dataset(OTB, VOT) and prepared the link to the dataset in $(meta_trackers_root)/dataset/ directory.
$(meta_trackers_root)/dataset/VID
$(meta_trackers_root)/dataset/OTB
$(meta_trackers_root)/dataset/vot2013
$(meta_trackers_root)/dataset/vot2015
$(meta_trackers_root)/dataset/vot2016
0. Prepare dataset meta files
I already prepared all necessary meta-files for ILSVRC VID dataset, OTB, VOT dataset. Either you use them or you could generate via scripts in $(meta_trackers_root)/dataset/ directory.
$(meta_trackers_root)/dataset/ilsvrc_train.json # meta file for loading ILSVRC VID dataset to meta-train.
$(meta_trackers_root)/dataset/vot-otb.pkl # meta file for loading VOT dataset to meta-train(for OTB experiments)
$(meta_trackers_root)/dataset/otb-vot.pkl # meta file for loading OTB dataset to meta-train(for VOT experiments)
Also need to download imagenet pretrained models(our base feature extractors) into $(meta_trackers_root)/meta_crest(and meta_sdnet)/models/. (We used the same networks that original trackers used. For meta_sdnet - imagenet-vgg-m.mat, and for meta_crest - imagenet-vgg-verydeep-16.mat)
1. Meta-Training
You can skip this step and download pretrain models, and use them to test the trackers. If you want to meta-train MetaCREST trackers,
$(meta_trackers_root)/meta_crest/meta_pretrain$> python train_meta_init.py -e OTB # for OTB experiments, for VOT use -e VOT
To meta-train MetaSDNet trackers,
$(meta_trackers_root)/meta_sdnet/meta_pretrain$> python train_meta_init.py -e OTB # for OTB experiments, for VOT use -e VOT
2. Downloading pretrained models
We provide pretrained models for both meta trackers for your convenience. You can download it from following links and locate them in models directory.
$(meta_trackers_root)/meta_sdnet/models/meta_init_vot_ilsvrc.pth (~35M)
$(meta_trackers_root)/meta_sdnet/models/meta_init_otb_ilsvrc.pth (~35M)
$(meta_trackers_root)/meta_crest/models/meta_init_vot_ilsvrc.pth (~59K)
$(meta_trackers_root)/meta_crest/models/meta_init_otb_ilsvrc.pth (~59K)
3. Testing MetaTrackers
$(meta_trackers_root)/meta_crest/meta_tracking$>python run_tracker.py # meta_crest tracker for OTB experiments
$(meta_trackers_root)/meta_sdnet/meta_tracking$>python run_tracker.py # meta_sdnet tracker for OTB experiments
To run VOT2016 experiments, I provided following VOT integration files. You can use them and run it via VOT2016 toolkit. Please refer to VOT homepage
$(meta_trackers_root)/meta_crest/meta_tracking/run_tracker_vot.py
$(meta_trackers_root)/meta_sdnet/meta_tracking/run_tracker_vot.py
4. Evaluations
If you used pre-trained models, you should be able to get same results(or small variation due to randomness in trackers) reported in the papers. If you meta-trained the model, you should also be able to get similar results.
$(meta_trackers_root)/meta_crest$> python eval_otb.py
$(meta_trackers_root)/meta_sdnet$> python eval_otb.py
Similarly, please refer to VOT homepage for VOT evaluations. I also provided all raw results for both OTB and VOT experiments that used in the paper(meta_crest_result, meta_sdnet_result)
Acknowledgments
Many parts of this code are adopted from other related works(pytorch-maml, py-MDNet, CREST).