]> 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 | `DEBUG_MODE` | Debug terminal output. Default value is OFF.)|
39 | `DEBUG_MODE_DETAILED` |Additional terminal outputs and screens. Default value is OFF.|
40
41 This code compiles into binary **kcf_vot**
42
43 ./kcf_vot
44 - using VOT 2014 methodology (http://www.votchallenge.net/)
45  - INPUT : expecting two files, images.txt (list of sequence images with absolute path) and
46            region.txt with initial bounding box in the first frame in format "top_left_x, top_left_y, width, height" or
47            four corner points listed clockwise starting from bottom left corner.
48  - OUTPUT : output.txt containing the bounding boxes in the format "top_left_x, top_left_y, width, height"
49
50  
51
52 ## Author
53 * **Karafiát Vít**
54
55 ## References
56
57 [1] João F. Henriques, Rui Caseiro, Pedro Martins, Jorge Batista, “High-Speed Tracking with Kernelized Correlation Filters“,
58 IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015
59 _____________________________________
60 Copyright (c) 2014, Tomáš Vojíř
61
62 Permission to use, copy, modify, and distribute this software for research
63 purposes is hereby granted, provided that the above copyright notice and
64 this permission notice appear in all copies.
65
66 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
67 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
68 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
69 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
70 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
71 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
72 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.