]> 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
18 ```
19 Then select the directory path and build directory. After which you can choose desired build option. Each option has comment explaining briefly what it does.
20
21 Without cmake gui:
22 ___________________
23 ```
24 $ mkdir build
25 $ cd build
26 $ cmake -D"option",-D"option" ..
27 $ make
28 ```
29
30 Where "option" is one of the options from this table:
31
32 | Option| Description |
33 | --- | --- |
34 | `OPENCV_CUFFT`**WIP** | If OFF CPU implementation using OpenCV implementation of FFT will be used. If ON Nvidia CUFFT implemented in OpenCV will be used. Together with Hostmem from OpenCV. Default value is OFF.|
35 | `FFTW` | Use FFTW implementation of FFT. If selected together with `OPENCV_CUFFT` then this option will not be used. Default value is OFF.|
36 | `ASYNC` | Works only if OPENCV_CUFFT is not ON. Will enable C++ async directive. Default value is OFF.|
37 | `VISULIZE_RESULT` | Check if you want to visulize the result. Default value is OFF. |
38 | `FFTW` | Use FFTW implementation of FFT. Default value is OFF.|
39 | `DEBUG_MODE` | Debug terminal output. Default value is OFF.)|
40 | `DEBUG_MODE_DETAILED` |Additional terminal outputs and screens. Default value is OFF.|
41
42 This code compiles into binary **kcf_vot**
43
44 ./kcf_vot
45 - using VOT 2014 methodology (http://www.votchallenge.net/)
46  - INPUT : expecting two files, images.txt (list of sequence images with absolute path) and
47            region.txt with initial bounding box in the first frame in format "top_left_x, top_left_y, width, height" or
48            four corner points listed clockwise starting from bottom left corner.
49  - OUTPUT : output.txt containing the bounding boxes in the format "top_left_x, top_left_y, width, height"
50
51  
52
53 ## Author
54 * **Karafiát Vít**
55
56 ## References
57
58 [1] João F. Henriques, Rui Caseiro, Pedro Martins, Jorge Batista, “High-Speed Tracking with Kernelized Correlation Filters“,
59 IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015
60 _____________________________________
61 Copyright (c) 2014, Tomáš Vojíř
62
63 Permission to use, copy, modify, and distribute this software for research
64 purposes is hereby granted, provided that the above copyright notice and
65 this permission notice appear in all copies.
66
67 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
68 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
69 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
70 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
71 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
72 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
73 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.