This repository is the matlab implementation for "Surrounding-Aware Correlation Filter for UAV Tracking with Selective Spatial Regularization" Video available at YouTube
This paper has been published by Signal Processing.
You can find this paper here: https://www.sciencedirect.com/science/article/pii/S0165168419303779.
Please cite this paper as:
@article{FU2020107324,
title = {Surrounding-aware correlation filter for UAV tracking with selective spatial regularization},
author = {Changhong Fu and Weijiang Xiong and Fuling Lin and Yufeng Yue}
journal = {Signal Processing},
volume = {167},
pages = {107324},
year = {2020}
}
SASR performs favorably against 23 state-of-the-art trackers on challenging UAV tracking sequences from UAV123 and UAVDT.


Figure 2 Performance TOP-5 trackers from Fig.1 on UAVDT


-
Download zipfile of this repository and extract it somewhere or use git:
$ git clone https://github.com/vision4robotics/SASR-tracker.git
-
Download matconvnet from the homepage or Github, and Piotr Dollár's toolbox from Webpage or GitHub . Then, extract them at
.\SASR_release_v1.0\external_libs
-
Start Matlab and navigate to this repository, run
install.m
to compile Piotr Dollár's toolbox and matconvnet. This step may take some time and you may see a lot of warnings. The script will automatically downloadimagenet-vgg-m-2048.mat
used in SASR, it may take some time depending on your Internet. You can manually download it from here. If you have it already, just copy it to.\SASR_release_v1.0\feature_extraction\networks
. -
Run
SASR_single_seq.m
, you will be able to chosewakeboard5
with GUI.
The code is tested on Matlab R2017b with CUDA 8.0.
Matconvnet is also the latest when this work is completed.
If your matlab version is R2018a or later, you may have to make a few modifications in \SASR_release_v1.0\external_libs\matconvnet\matlab\vl_compilenn.m
.
First, modify line 359 into
flags.mexlink = {'-lmwblas'};
Then, modify line 620 into
args = horzcat({'-outdir', mex_dir}, ...
flags.base, flags.mexlink, ...
'-R2018a',... % your matlab version here
{['LDFLAGS=$LDFLAGS ' strjoin(flags.mexlink_ldflags)]}, ...
{['LDOPTIMFLAGS=$LDOPTIMFLAGS ' strjoin(flags.mexlink_ldoptimflags)]}, ...
{['LINKLIBS=' strjoin(flags.mexlink_linklibs) ' $LINKLIBS']}, ...
objs) ;
If you want to use cuDNN toolkit, you may have to install cuDNN and modify \SASR_release_v1.0\install.m
Modify line 30 into
vl_compilenn('enableGpu',true,...
'cudaRoot','C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0',...% path to your cuda
'cudaMethod','nvcc',...
'enableCudnn',true,... % if you don't want to use cudnn, set it to 'false'
'cudnnRoot','C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0'); % path to your cudnn
If you are using visual studio 2017 or newer version, matlab may not be able to find cl.exe
, in this case, you need to manually set the path to it.
Modify line 659 into
cl_path = "YOUR PATH TO cl.exe";
We thank for Dr. Li Feng and his team for their valuable help on our work.
We have borrowed some codes from the STRCF tracker