]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blob - README.md
Update README.md
[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 tosee 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 is build via cmake toolchain. 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 are used in code which are supported only by x86 architectecture thanks to the [SSE2NEON](https://github.com/jratcliff63367/sse2neon) code now supports 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 Following table show multiple options how to configure cmake default option is single thread OpenCV FFT:
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 -DOPENCV_CUFFT=ON ..`**WIP** | Nvidia CUFFT implemented in OpenCV will be used. Together with Hostmem from OpenCV.|
35 | `cmake -DFFTW=ON ..`**WIP** | Use FFTW implementation of FFT.|
36 | `cmake -DFFTW=ON,-DFFTW_PARALLEL=ON ..`**WIP** | Use parrallel implementation of FFTW without OpenMP.|
37 | `cmake -DFFTW=ON,-DFFTW_OPENMP=ON ..`**WIP** | Use parrallel implementation of FFTW with OpenMP. |
38
39 To all of these you can also add these additional options:
40
41 | Option| Description |
42 | --- | --- |
43 | `-DVISULIZE_RESULT=ON` | Check if you want to visulize the result. Default value is OFF. |
44 | `-DDEBUG_MODE=ON` | Debug terminal output and debug screens. Default value is OFF.)=|
45 | `-DDEBUG_MODE_DETAILED=ON` |Additional terminal outputs and debug screens. Default value is OFF.|
46
47 Finally call make:
48 ```
49 $ make
50 ```
51
52 This code compiles into binary **kcf_vot**
53
54 ./kcf_vot
55 - using VOT 2014 methodology (http://www.votchallenge.net/)
56  - INPUT : expecting two files, images.txt (list of sequence images with absolute path) and
57            region.txt with initial bounding box in the first frame in format "top_left_x, top_left_y, width, height" or
58            four corner points listed clockwise starting from bottom left corner.
59  - OUTPUT : output.txt containing the bounding boxes in the format "top_left_x, top_left_y, width, height"
60
61  
62
63 ## Author
64 * **Karafiát Vít**
65
66 ## References
67
68 [1] João F. Henriques, Rui Caseiro, Pedro Martins, Jorge Batista, “High-Speed Tracking with Kernelized Correlation Filters“,
69 IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015
70 _____________________________________
71 Copyright (c) 2014, Tomáš Vojíř
72
73 Permission to use, copy, modify, and distribute this software for research
74 purposes is hereby granted, provided that the above copyright notice and
75 this permission notice appear in all copies.
76
77 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
78 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
79 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
80 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
81 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
82 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
83 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.