Studies / Research

Correlation Filter Tracking

By Žan Pušenjak

Advanced Computer Vision Methods, FRI, University of Ljubljana


computer-vision object-tracking

Correlation filter based tracker

We implemented a correlation filter based tracker and tried to make improvements. Further we tried to find the best set of tracker parameters to obtain the best possible performance.

We used the sequences from the VOT challenges1 more specifically the VOT14 set of challenges that include of twenty five videos hand picked to test the reliability of trackers alongside with a simplified version of the VOT evaluation toolkit2.

Basic implementation

We first implemented the most basic version of Correlation tracker that generates a filter from initially selected target region and then uses correlation score to find the best suitable location in the new frame. Each frame the correlation filter gets updated with the currently found template. Parameters of the basic implementation were:

  • σ\sigma - since we used a Gaussian peak filter we needed to determine its σ\sigma parameter.

  • α\alpha - the rate of filter update on each frame.

Improvements

We tried to extend the implementation and improve the results of our tracker in two ways.

Template size

To improve the tracker we introduced a inc_factorinc\_factor parameter that controls the size of the patch that gets filtered. This is necessary because the cosine window will remove the information on the edge of the patches so a larger patch could potentially capture more of the target while still getting rid of the background.

Parameter tuning

We used grid search to try and find the best possible set of parameters for our dataset. Because of computational reasons we used a limited set for possible values for each of the parameters. The results can be seen on Figure 6 and 3.

Different σ\sigma values
Different NiterN_{iter} values
Average FPS on VOT14 challenge at different parameters

First commenting on the FPS rates. Figure 3 shows that predictably the main reason for a lower FPS is a larger patch size. As the inc_factorinc\_factor increases the FPS drops. Although the drops are not very significant as even with the largest inc_factorinc\_factor the FPS stays way beyond the required value for smooth tracking. Other parameter values

Different σ\sigma values
Different NiterN_{iter} values
Total fails on VOT14 challenge at different parameters

Observing Figure 6 we can conclude the set of parameters with the least fails. Looking at Figure 4 an optimal σ\sigma can be found. At all the different parameter settings the minimal number of fails is achieved with σ=1.5\sigma = 1.5 and σ=1.5\sigma = 1.5. Note that if σ\sigma is set to 1-1 it becomes adaptive and is dynamically set according to formula σ=min(w,h)*0.005\sigma = min(w,h)*0.005 where ww and hh are the width and height of the image. We already used this approach in optical flow computation and it again turned out to be a good parameter value that adapts to the input allowing user not to worry about finding an optimal σ\sigma parameter.

Additionally a bigger patch size increases the performance of the tracker as a larger patch outperforms smaller patches at almost every parameter. That can clearly be seen in both Figure 4 and Figure 5.

Performance of the tracker according to the VOT toolkit.
1-4 Failures σ\sigma α\alpha inc_factorinc\_factor
64 adaptive 0.2 1.05
64 2 0.3 1.1

After all the tests video sequences two sets of parameter combinations achieved 64 failures. The parameter values are listed in Table 1. We can observe that both combinations are very similar.

Final evaluation

We evaluated the the final set of parameters with the toolkit. For some reason the sets of best parameters in Table 1 performed worse with the toolkit tester so we took into account the uncertainty of the parameter scores and came up with a new set of parameters σ=1.7\sigma=1.7, α=0.2\alpha = 0.2, inc_factor=1.1inc\_factor=1.1 that performed the best and achieved results seen in 2.

Performance of the tracker according to the VOT toolkit.
1-3 Avg. overlap Failures FPS
0.48 74 1259


  1. https://www.votchallenge.net/↩︎

  2. https://github.com/alanlukezic/pytracking-toolkit-lite↩︎