]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blob - README.md
Make visualization configurable at run-time rather than at compile time
[hercules2020/kcf.git] / README.md
1 # KCF tracker parallel and PREM implementations
2 This project aims to test multiple implementation of calculating Fast Fourier Transform(FFT) and Inverse Fourier Transform(IFFT) in KFC tracker and to see how the performance changes depending on the implementation.
3
4 C++ implementation of KCF tracker was written by Tomas Vojir [here](https://github.com/vojirt/kcf/blob/master/README.md) and is reimplementation of algorithm presented in "High-Speed Tracking with Kernelized Correlation Filters" paper[1].
5
6 ### Prerequisites
7 The code depends on OpenCV 2.4+ library and cmake is used for building it. Depending on the implementation selected you have to have installed [FFTW](http://www.fftw.org/), [CUDA](https://developer.nvidia.com/cuda-downloads) or [OpenMP](http://www.openmp.org/).
8
9 SSE instructions were used in the original code and these are only supported on x86 architecture. Thanks to the [SSE2NEON](https://github.com/jratcliff63367/sse2neon) code, we now support both ARM and x86 architecture.
10
11 ## Getting Started
12 Open terminal in the directory with the code:
13 Using cmake gui:
14 ________________
15 ```
16 $ mkdir build
17 $ cmake-gui //Select the directory path and build directory. After which you can choose desired build option. 
18             //Each option has comment explaining briefly what it does.
19 $ make
20 ```
21 Without cmake gui:
22 ___________________
23 ```
24 $ mkdir build
25 $ cd build
26 ```
27
28 The following table shows multiple options how to run cmake to get different version of the tracker.
29
30 | Option| Description |
31 | --- | --- |
32 | `cmake ..` | Single thread version of original project with OpenCV FFT.|
33 | `cmake -DASYNC=ON ..` | Multi thread version of original project with OpenCV FFT together with C++ async directive.|
34 | `cmake -DOPENMP=ON ..` | Use OpenMP with OpenCV implementation.|
35 | `cmake -DOPENCV_CUFFT=ON ..`**WIP** | Nvidia CUFFT implemented in OpenCV will be used. Together with Hostmem from OpenCV.|
36 | `cmake -DFFTW=ON ..`**WIP** | Use FFTW implementation of FFT.|
37 | `cmake -DFFTW=ON,-DOPENMP=ON ..`**WIP** | Use OpenMP library with FFTW.|
38
39 To all of these you can also add these additional options:
40
41 | Option| Description |
42 | --- | --- |
43 | `-DDEBUG_MODE=ON` | Debug terminal output and debug screens. Default value is OFF.|
44
45 Finally call make:
46 ```
47 $ make
48 ```
49
50 This code compiles into binary **kcf_vot**
51
52 ./kcf_vot
53 - using [VOT 2014 methodology](http://www.votchallenge.net/)
54 - to get dataset used in VOT go [here](http://www.votchallenge.net/vot2016/dataset.html)
55  - INPUT : expecting two files, images.txt (list of sequence images with absolute path) and
56            region.txt with initial bounding box in the first frame in format "top_left_x, top_left_y, width, height" or
57            four corner points listed clockwise starting from bottom left corner.
58  - OUTPUT : output.txt containing the bounding boxes in the format "top_left_x, top_left_y, width, height"
59
60  
61
62 ## Author
63 * **Karafiát Vít**
64
65 ## References
66
67 [1] João F. Henriques, Rui Caseiro, Pedro Martins, Jorge Batista, “High-Speed Tracking with Kernelized Correlation Filters“,
68 IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015
69 _____________________________________
70 Copyright (c) 2014, Tomáš Vojíř
71
72 Permission to use, copy, modify, and distribute this software for research
73 purposes is hereby granted, provided that the above copyright notice and
74 this permission notice appear in all copies.
75
76 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
77 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
78 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
79 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
80 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
81 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
82 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.