[TGRS2023] SmallTrack: Wavelet Pooling and Graph Enhanced Classification for UAV Small Object Tracking
This is an official pytorch implementation of the 2023 IEEE Transactions on Geoscience and Remote Sensing paper:
SmallTrack: Wavelet Pooling and Graph Enhanced Classification for UAV Small Object Tracking
(accepted by IEEE Transactions on Geoscience and Remote Sensing, DOI: 10.1109/TGRS.2023.3305728)
The paper can be downloaded from IEEE Xplore
The models and raw results can be downloaded from [GitHub] or [BaiduYun].
The tracking demos are displayed on the Bilibili
-
DWT
in backbone -
GEM
in model_builder
Datasets | smalltrack_r50_l234 |
---|---|
UAV20L(Suc./Pre.) | 0.600/0.797 |
UAVDT(Suc./Pre.) | 0.637/0.866 |
DTB70(Suc./Pre.) | 0.654/0.858 |
VisDrone2019-SOT-test-dev(Suc./Pre.) | 0.625/0.849 |
LaTOT(Suc./Pre./N.Pre.) | 0.271/0.438/0.339 |
Note:
r50_lxyz
denotes the outputs of stage x, y, and z in ResNet-50.- The suffixes
DTB70
is designed for the DTB70, the default (without suffix) is designed for UAV20L and UAVDT. e20
in parentheses means checkpoint_e20.pth
Please find installation instructions in INSTALL.md
.
export PYTHONPATH=/path/to/smalltrack:$PYTHONPATH
python tools/demo.py \
--config experiments/smalltrack_r50_l234/config.yaml \
--snapshot experiments/smalltrack_r50_l234/checkpoint_e20.pth
--video demo/bag.avi
Download datasets and put them into testing_dataset
directory. Jsons of commonly used datasets can be downloaded from Google Drive or BaiduYun. If you want to test tracker on new dataset, please refer to pysot-toolkit to setting testing_dataset
.
- Note that it is not necessary to generate the json files for the test dataset as per pysot.
- We read the dataset format online to generate the corresponding dictionary, the relevant files are in visdrone.py
cd experiments/smalltrack_r50_l234
python -u ../../tools/test.py \
--snapshot checkpoint_e20.pth \ # model path
--dataset UAV20L \ # dataset name
--config config.yaml # config file
The testing results will in the current directory(results/dataset/model_name/)
assume still in experiments/smalltrack_r50_l234
python ../../tools/eval.py \
--tracker_path ./results \ # result path
--dataset UAV20L \ # dataset name
--num 1 \ # number thread to eval
--tracker_prefix 'ch*' # tracker_name
See TRAIN.md for detailed instruction.
The code based on the PySOT , SiamBAN , GAL , WaveCNets and Wavelet-Attention We would like to express our sincere thanks to the contributors.
If you find this work useful for your research, please cite the following papers:
@ARTICLE{10220112,
author={Xue, Yuanliang and Jin, Guodong and Shen, Tao and Tan, Lining and Wang, Nian and Gao, Jing and Wang, Lianfeng},
journal={IEEE Transactions on Geoscience and Remote Sensing},
title={SmallTrack: Wavelet Pooling and Graph Enhanced Classification for UAV Small Object Tracking},
year={2023},
volume={61},
pages={1-15},
keywords={Target tracking;Object tracking;Wavelet transforms;Feature extraction;Task analysis;Remote sensing;Visualization;Aerial tracking;graph enhanced classification;remote sensing;Siamese neural network;wavelet pooling layer (WPL)},
doi={10.1109/TGRS.2023.3305728}}
If you have any questions about this work, please contact with me via [email protected]