[ECCVW2020] Robust Long-Term Object Tracking via Improved Discriminative Model Prediction (RLT-DiMP)

Overview

Feel free to visit my homepage

Robust Long-Term Object Tracking via Improved Discriminative Model Prediction (RLT-DIMP) [ECCVW2020 paper]


Presentation video

1-minute version (ENG)

Video Label

12-minute version (ENG)

Video Label


Summary

Abstract

We propose an improved discriminative model prediction method for robust long-term tracking based on a pre-trained short-term tracker. The baseline pre-trained short-term tracker is SuperDiMP which combines the bounding-box regressor of PrDiMP with the standard DiMP classifier. Our tracker RLT-DiMP improves SuperDiMP in the following three aspects: (1) Uncertainty reduction using random erasing: To make our model robust, we exploit an agreement from multiple images after erasing random small rectangular areas as a certainty. And then, we correct the tracking state of our model accordingly. (2) Random search with spatio-temporal constraints: we propose a robust random search method with a score penalty applied to prevent the problem of sudden detection at a distance. (3) Background augmentation for more discriminative feature learning: We augment various backgrounds that are not included in the search area to train a more robust model in the background clutter. In experiments on the VOT-LT2020 benchmark dataset, the proposed method achieves comparable performance to the state-of-the-art long-term trackers.


Framework


Baseline

  • We adopt the pre-trained short-term tracker which combines the bounding box regressor of PrDiMP with the standard DiMP classifier
  • This tracker's name is SuperDiMP and it can be downloaded on the DiMP-family's github page [link]

Contribution1: Uncertainty reduction using random erasing


Contribution2: Random search with spatio-temporal constraints


Contribution3: Background augmentation for more discriminative learning


Prerequisites

  • Ubuntu 18.04 / Python 3.6 / CUDA 10.0 / gcc 7.5.0
  • Need anaconda
  • Need GPU (more than 2GB, Sometimes it is a little more necessary depending on the situation.)
  • Unfortunately, "Precise RoI Pooling" included in the Dimp tracker only supports GPU (cuda) implementations.
  • Need root permission
  • All libraries in “install.sh” file (please check “how to install”)

How to install

  • Unzip files in $(tracker-path)
  • cd $(tracker-path)
  • bash install.sh $(anaconda-path) $(env-name) (Automatically create conda environment, If you don’t want to make more conda environments, run “bash install_in_conda.sh” after conda activation)
  • check pretrained model "super_dimp.pth.tar" in $(tracker-path)$/pytracking/networks/ (It should be downloaded by install.sh)
  • conda activate $(env-name)
  • make VOTLT2020 workspace (vot workspace votlt2020 --workspace $(workspace-path))
  • move trackers.ini to $(workspace-path)
  • move(or download) votlt2020 dataset to $(workspace-path)/sequences
  • set the VOT dataset directory ($(tracker-path)/pytracking/evaluation/local.py), vot_path should include ‘sequence’ word (e.g., $(vot-dataset-path)/sequences/), vot_path must be the absolute path (not relative path)
  • modify paths in the trackers.ini file, paths should include ‘pytracking’ word (e.g., $(tracker-path)/pytracking), paths must be absolute path (not relative path)
  • cd $(workspace-path)
  • vot evaluate RLT_DiMP --workspace $(workspace-path)
  • It will fail once because the “precise rol pooling” file has to be compiled through the ninja. Please check the handling error parts.
  • vot analysis --workspace $(workspace-path) RLT_DiMP --output json

Handling errors

  • “Process did not finish yet” or “Error during tracker execution: Exception when waiting for response: Unknown”-> re-try or “sudo rm -rf /tmp/torch_extensions/_prroi_pooling/
  • About “groundtruth.txt” -> check vot_path in the $(tracker-path)/pytracking/evaluation/local.py file
  • About “pytracking/evaluation/local.py” -> check and run install.sh
  • About “permission denied : “/tmp/torch_extensions/_prroi_pooling/” -> sudo chmod -R 777 /tmp/torch_extensions/_prroi_pooling/
  • About “No module named 'ltr.external.PreciseRoiPooling’” or “can not complie Precise RoI Pooling library error” -> cd $(tracker-path) -> rm -rf /ltr/external/PreciseRoiPooling -> git clone https://github.com/vacancy/PreciseRoIPooling.git ltr/external/PreciseRoIPooling
  • If nothing happens since the code just stopped -> sudo rm -rf /tmp/torch_extensions/_prroi_pooling/

Contact

If you have any questions, please feel free to contact [email protected]


Acknowledgments

  • The code is based on the PyTorch implementation of the DiMP-family.
  • This work was done while the first author was a visiting researcher at CMU.
  • This work was supported in part through NSF grant IIS-1650994, the financial assistance award 60NANB17D156 from U.S. Department of Commerce, National Institute of Standards and Technology (NIST) and by the Intelligence Advanced Research Projects Activity (IARPA) via Department of Interior/Interior Business Center (DOI/IBC) contract number D17PC0034. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copy-right annotation/herein. Disclaimer: The views and conclusions contained herein are those of the authors and should not be interpreted as representing the official policies or endorsements, either expressed or implied, of NIST, IARPA, NSF, DOI/IBC, or the U.S. Government.

Citation

@InProceedings{Choi2020,
  author = {Choi, Seokeon and Lee, Junhyun and Lee, Yunsung and Hauptmann, Alexander},
  title = {Robust Long-Term Object Tracking via Improved Discriminative Model Prediction},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
  pages={0--0},
  year={2020}
}

Reference

  • [PrDiMP] Danelljan, Martin, Luc Van Gool, and Radu Timofte. "Probabilistic Regression for Visual Tracking." arXiv preprint arXiv:2003.12565 (2020).
  • [DiMP] Bhat, Goutam, et al. "Learning discriminative model prediction for tracking." Proceedings of the IEEE International Conference on Computer Vision. 2019.
  • [ATOM] Danelljan, Martin, et al. "Atom: Accurate tracking by overlap maximization." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.
You might also like...
Python package for multiple object tracking research with focus on laboratory animals tracking.
Python package for multiple object tracking research with focus on laboratory animals tracking.

motutils is a Python package for multiple object tracking research with focus on laboratory animals tracking. Features loads: MOTChallenge CSV, sleap

Joint detection and tracking model named DEFT, or ``Detection Embeddings for Tracking.
Joint detection and tracking model named DEFT, or ``Detection Embeddings for Tracking.

DEFT: Detection Embeddings for Tracking DEFT: Detection Embeddings for Tracking, Mohamed Chaabane, Peter Zhang, J. Ross Beveridge, Stephen O'Hara

Source code of "Hold me tight! Influence of discriminative features on deep network boundaries"

Hold me tight! Influence of discriminative features on deep network boundaries This is the source code to reproduce the experiments of the NeurIPS 202

Discriminative Region Suppression for Weakly-Supervised Semantic Segmentation
Discriminative Region Suppression for Weakly-Supervised Semantic Segmentation

Discriminative Region Suppression for Weakly-Supervised Semantic Segmentation (AAAI 2021) Official pytorch implementation of our paper: Discriminative

Code for Discriminative Sounding Objects Localization (NeurIPS 2020)
Code for Discriminative Sounding Objects Localization (NeurIPS 2020)

Discriminative Sounding Objects Localization Code for our NeurIPS 2020 paper Discriminative Sounding Objects Localization via Self-supervised Audiovis

OrienMask: Real-time Instance Segmentation with Discriminative Orientation Maps
OrienMask: Real-time Instance Segmentation with Discriminative Orientation Maps

OrienMask This repository implements the framework OrienMask for real-time instance segmentation. It achieves 34.8 mask AP on COCO test-dev at the spe

Joint Discriminative and Generative Learning for Person Re-identification. CVPR'19 (Oral)
Joint Discriminative and Generative Learning for Person Re-identification. CVPR'19 (Oral)

Joint Discriminative and Generative Learning for Person Re-identification [Project] [Paper] [YouTube] [Bilibili] [Poster] [Supp] Joint Discriminative

[ICCV 2021]  Official Pytorch implementation for Discriminative Region-based Multi-Label Zero-Shot Learning SOTA results on NUS-WIDE and OpenImages
[ICCV 2021] Official Pytorch implementation for Discriminative Region-based Multi-Label Zero-Shot Learning SOTA results on NUS-WIDE and OpenImages

Discriminative Region-based Multi-Label Zero-Shot Learning (ICCV 2021) [arXiv][Project page coming soon] Sanath Narayan*, Akshita Gupta*, Salman Kh

[ICCV 2021]  Official Pytorch implementation for Discriminative Region-based Multi-Label Zero-Shot Learning SOTA results on NUS-WIDE and OpenImages
[ICCV 2021] Official Pytorch implementation for Discriminative Region-based Multi-Label Zero-Shot Learning SOTA results on NUS-WIDE and OpenImages

Discriminative Region-based Multi-Label Zero-Shot Learning (ICCV 2021) [arXiv][Project page coming soon] Sanath Narayan*, Akshita Gupta*, Salman Kh

Comments
  • Question about score penalty

    Question about score penalty

    How does this new score penalty works ?

    1. Why "This temporal constraint allows objects to be detected at relatively far locations." ?
    2. Why multiply by the previous score penalty, Snew ?

    rlt-dimp_score_penalty

    opened by buttercutter 3
  • ModuleNotFoundError: No module named 'run_vot'

    ModuleNotFoundError: No module named 'run_vot'

    My machine: Ubuntu 20.04 RTX 3090 GPU CUDA 11 pytorch 1.7.1

    I installed your tracker using the install.sh just changing the pytorch line to the following, since my gpu does only support cuda 11:

    conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch

    There were no errors during the installation. Now, running the vot test RLT_DiMP command, im facing the error:

    Checking for new version Scanning registry /home/linx123-rtx/vot-workspace/trackers.ini Found 12 trackers Generating dummy sequence Obtaining runtime for tracker RLT_DiMP Initializing tracker (1/3) Running process: /home/linx123-rtx/anaconda3/envs/RLT_DiMP/bin/python -c "import sys;sys.path.insert(0, '/home/linx123-rtx/vot-workspace/RLT_DiMP/atom/pytracking # you should change directory'); import run_vot; run_vot.run_vot2020_LT('RLT_dimp', 'new', None, 0) # 0 means gpu_id" Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'run_vot' Error during tracker execution: Unable to connect to tracker

    I tried python 3.6,3.7 and 3.8. I also tried other gcc versions (e.g. the 7.5 which was suggested by you) but nothing worked. Could you please help me with this?

    Kind regards

    opened by xQsM3 1
  • Error during tracker execution: Server terminated the session

    Error during tracker execution: Server terminated the session

    Hi, when I run vot test DiMP, I faced with this error: `

    "@@TRAX:frame "file:///tmp/vot_dummy_50_640_480/color/00000002.jpg"
    
    /tmp/vot_dummy_50_640_480/color/00000001.jpg
    
    Traceback (most recent call last):
    
      File "<string>", line 1, in <module>
    
      File "/home/user/RLT-DIMP-master/pytracking/run_vot.py", line 48, in run_vot2020_LT
    
        tracker.run_vot2020_LT(debug, visdom_info, final_path)
    
      File "/home/user/RLT-DIMP-master/pytracking/evaluation/tracker.py", line 738, in run_vot2020_LT
    
        out = tracker.initialize(image, {'init_mask': vot_anno_mask, 'init_bbox': bbox})
    
      File "/home/user/RLT-DIMP-master/pytracking/tracker/dimp/dimp.py", line 98, in initialize
    
        init_backbone_feat = self.generate_init_samples(im) # augmented samples
    
      File "/home/user/RLT-DIMP-master/pytracking/tracker/dimp/dimp.py", line 805, in generate_init_samples
    
        im_patches = sample_patch_transformed(im, self.init_sample_pos, self.init_sample_scale, aug_expansion_sz, self.transforms)
    
      File "/home/user/RLT-DIMP-master/pytracking/features/preprocessing.py", line 25, in sample_patch_transformed
    
        im_patch, _ = sample_patch(im, pos, scale*image_sz, image_sz, is_mask=is_mask) # 1 patch
    
      File "/home/user/RLT-DIMP-master/pytracking/features/preprocessing.py", line 129, in sample_patch
    
        im_patch = F.pad(im2, (-tl[1].item(), br[1].item() - im2.shape[3], -tl[0].item(), br[0].item() - im2.shape[2]), pad_mode)
    
      File "/home/user/pytracking_env/lib/python3.6/site-packages/torch/nn/functional.py", line 3572, in _pad
    
        return torch._C._nn.replication_pad2d(input, pad)
    
    TypeError: replication_pad2d(): argument 'padding' must be tuple of ints, but found element of type float at pos 1
    
    @@TRAX:quit
    
    Error during tracker execution: Server terminated the session
    
    "
    

    ` and when I run evaluate it, this error was occured:

    @@TRAX:hello "[trax.name](http://trax.name/)=" "trax.family=" "trax.image=path;" "trax.region=rectangle;" "trax.description=" "trax.version=3" "vot=python" "trax.channels=color;" 
    
    @@TRAX:initialize "file:///home/theydari/VOT/VOT2020lt/sequences/ballet/color/00000001.jpg" "360.9900,325.1100,25.7140,111.7600" 
    
    @@TRAX:state "360.9900,325.1100,25.7140,111.7600" 
    
    @@TRAX:frame "file:///home/theydari/VOT/VOT2020lt/sequences/ballet/color/00000002.jpg" 
    
    /home/user/VOT/VOT2020lt/sequences/ballet/color/00000001.jpg
    
    Traceback (most recent call last):
    
      File "<string>", line 1, in <module>
    
      File "/home/user/RLT-DIMP-master/pytracking/run_vot.py", line 48, in run_vot2020_LT
    
        tracker.run_vot2020_LT(debug, visdom_info, final_path)
    
      File "/home/user/RLT-DIMP-master/pytracking/evaluation/tracker.py", line 738, in run_vot2020_LT
    
        out = tracker.initialize(image, {'init_mask': vot_anno_mask, 'init_bbox': bbox})
    
      File "/home/user/RLT-DIMP-master/pytracking/tracker/dimp/dimp.py", line 98, in initialize
    
        init_backbone_feat = self.generate_init_samples(im) # augmented samples
    
      File "/home/user/RLT-DIMP-master/pytracking/tracker/dimp/dimp.py", line 805, in generate_init_samples
    
        im_patches = sample_patch_transformed(im, self.init_sample_pos, self.init_sample_scale, aug_expansion_sz, self.transforms)
    
      File "/home/user/RLT-DIMP-master/pytracking/features/preprocessing.py", line 25, in sample_patch_transformed
    
        im_patch, _ = sample_patch(im, pos, scale*image_sz, image_sz, is_mask=is_mask) # 1 patch
    
      File "/home/user/RLT-DIMP-master/pytracking/features/preprocessing.py", line 129, in sample_patch
    
        im_patch = F.pad(im2, (-tl[1].item(), br[1].item() - im2.shape[3], -tl[0].item(), br[0].item() - im2.shape[2]), pad_mode)
    
      File "/home/user/pytracking_env/lib/python3.6/site-packages/torch/nn/functional.py", line 3572, in _pad
    
        return torch._C._nn.replication_pad2d(input, pad)
    
    TypeError: replication_pad2d(): argument 'padding' must be tuple of ints, but found element of type float at pos 1
    
    @@TRAX:quit 
    
    Process exited with code (1)
    
    

    How can I resolve them?

    opened by tahiira 0
Owner
Seokeon Choi
I plan to receive a Ph.D. in Aug. 2021. I'm currently looking for a full-time job, residency program, or post-doc. linkedin.com/in/seokeon
Seokeon Choi
LSTMs (Long Short Term Memory) RNN for prediction of price trends

Price Prediction with Recurrent Neural Networks LSTMs BTC-USD price prediction with deep learning algorithm. Artificial Neural Networks specifically L

null 5 Nov 12, 2021
LONG-TERM SERIES FORECASTING WITH QUERYSELECTOR – EFFICIENT MODEL OF SPARSEATTENTION

Query Selector Here you can find code and data loaders for the paper https://arxiv.org/pdf/2107.08687v1.pdf . Query Selector is a novel approach to sp

MORAI 62 Dec 17, 2022
FuseDream: Training-Free Text-to-Image Generationwith Improved CLIP+GAN Space OptimizationFuseDream: Training-Free Text-to-Image Generationwith Improved CLIP+GAN Space Optimization

FuseDream This repo contains code for our paper (paper link): FuseDream: Training-Free Text-to-Image Generation with Improved CLIP+GAN Space Optimizat

XCL 191 Dec 31, 2022
TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-Captured Scenarios

TPH-YOLOv5 This repo is the implementation of "TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-Captured

cv516Buaa 439 Dec 22, 2022
Synthesizing Long-Term 3D Human Motion and Interaction in 3D in CVPR2021

Long-term-Motion-in-3D-Scenes This is an implementation of the CVPR'21 paper "Synthesizing Long-Term 3D Human Motion and Interaction in 3D". Please ch

Jiashun Wang 76 Dec 13, 2022
Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting

Autoformer (NeurIPS 2021) Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting Time series forecasting is a c

THUML @ Tsinghua University 847 Jan 8, 2023
PyTorch implementation for our NeurIPS 2021 Spotlight paper "Long Short-Term Transformer for Online Action Detection".

Long Short-Term Transformer for Online Action Detection Introduction This is a PyTorch implementation for our NeurIPS 2021 Spotlight paper "Long Short

null 77 Dec 16, 2022
Multi-resolution SeqMatch based long-term Place Recognition

MRS-SLAM for long-term place recognition In this work, we imply an multi-resolution sambling based visual place recognition method. This work is based

METASLAM 6 Dec 6, 2022
Official code for 'Robust Siamese Object Tracking for Unmanned Aerial Manipulator' and offical introduction to UAMT100 benchmark

SiamSA: Robust Siamese Object Tracking for Unmanned Aerial Manipulator Demo video ?? Our video on Youtube and bilibili demonstrates the evaluation of

Intelligent Vision for Robotics in Complex Environment 12 Dec 18, 2022
The official repo for OC-SORT: Observation-Centric SORT on video Multi-Object Tracking. OC-SORT is simple, online and robust to occlusion/non-linear motion.

OC-SORT Observation-Centric SORT (OC-SORT) is a pure motion-model-based multi-object tracker. It aims to improve tracking robustness in crowded scenes

Jinkun Cao 325 Jan 5, 2023