]>
rtime.felk.cvut.cz Git - hercules2020/kcf.git/log
Shanigen [Wed, 5 Sep 2018 11:25:49 +0000 (13:25 +0200)]
CUFFT now uses ThreadCtx and also pragmas from pragmas.h
Shanigen [Wed, 5 Sep 2018 11:22:50 +0000 (13:22 +0200)]
Renamed Scale_Vars to ThreadCtx
Also part of this commit is deletion of forward declaration of
Scale_Vars (now ThreadCtx) in fft_fftw.h, fft_opencv.h and fhog.hpp.
Shanigen [Wed, 5 Sep 2018 11:02:57 +0000 (13:02 +0200)]
Moved omp pragmas declaration to seperate file
Definition of omp pragmas have nothing to do with Scale_vars,
for that reason pragmas.h was created with all of the definitions.
Shanigen [Wed, 5 Sep 2018 10:54:07 +0000 (12:54 +0200)]
Revert "Removed obsolete method set_stream"
This reverts commit
a22c75434c0db289b63de882fc1677108882b445 .
Shanigen [Wed, 5 Sep 2018 10:32:15 +0000 (12:32 +0200)]
Removed obsolete method set_stream
In CUDA version of ComplexMat class was unused set_stream method.
Shanigen [Wed, 5 Sep 2018 10:24:13 +0000 (12:24 +0200)]
CMake cleanup
Shanigen [Wed, 5 Sep 2018 07:57:47 +0000 (09:57 +0200)]
Removed redundant forward declaration.
This commit fixes #13.
Shanigen [Wed, 5 Sep 2018 07:54:21 +0000 (09:54 +0200)]
Formatted files with Clang Format.
Michal Sojka [Wed, 5 Sep 2018 06:44:39 +0000 (08:44 +0200)]
Reformat some parts with clang-format
Shanigen [Wed, 15 Aug 2018 09:22:16 +0000 (11:22 +0200)]
Big Batch mode now support OpenMP
Big batch mode now can use OpenMP, while using
the Scale_vars structure.
Shanigen [Fri, 10 Aug 2018 11:20:02 +0000 (13:20 +0200)]
CUDA streams works
This commit adds support for CUDA streams and also corrects issue
with CUFFTW version of the tracker. All version now works without
any problem. CUDA streams version currently does not support C++
async directive and only OpenMP.
TODO: Implement correct use of OpenMP in big batch mode.
Shanigen [Thu, 9 Aug 2018 13:42:18 +0000 (15:42 +0200)]
Work done so far on CUDA streams
This commit contains not only workd done to implement CUDA streams,
but also some changes to correct warnings and make the naming little
bit more consistent.
Shanigen [Tue, 7 Aug 2018 14:54:08 +0000 (16:54 +0200)]
Big batch mode now works for all versions
Shanigen [Tue, 7 Aug 2018 08:45:21 +0000 (10:45 +0200)]
Removed OpenCV_CuFFT version
Removed obsolete version of the tracker, which does not exist, but
was still available in CMake.
Shanigen [Tue, 7 Aug 2018 08:26:35 +0000 (10:26 +0200)]
FFT does not take whole Scale_vars struct
FFT class now does not need to know anything about the tracker. It only gets as
input parameters objects and variables on which to perform FFT. Also Scale_vars
constructor was added, which allocates memory for variables.
Shanigen [Fri, 3 Aug 2018 13:44:53 +0000 (15:44 +0200)]
Removed obsolete variable
Shanigen [Fri, 3 Aug 2018 13:34:45 +0000 (15:34 +0200)]
Cleaned OpenCV version
All version now uses same minimal FFT API and workflow.
TODO Clean the scale_var and scale_vars_init, add support for big_batch
mode for FFTW and CUFFT, implement cuda streams.
Shanigen [Fri, 3 Aug 2018 12:49:21 +0000 (14:49 +0200)]
Cleaned FFTW version
FFTW version now same as CUFFT version uses minimized API of FFT and has minimal number
of memory copies.
Shanigen [Fri, 3 Aug 2018 12:21:47 +0000 (14:21 +0200)]
Remove memory copying from host to device
Cufft version no longer copies data from host to device in forward_window function.
TODO add support for big_batch mode to CUFFT.
Shanigen [Fri, 3 Aug 2018 11:00:12 +0000 (13:00 +0200)]
Smaller FFT API
FFT API now only consist these functions: forward, forward_window and inverse.
All of them take Scale_vars structure as the sole input parameter. This API
currently works only with CuFFT if I remember correctly. I will have to test it
with OpenCV and FFTW.
Shanigen [Fri, 3 Aug 2018 10:32:23 +0000 (12:32 +0200)]
KCF_Tracker::init now uses Scale_vars FFT API
Shanigen [Fri, 3 Aug 2018 08:55:15 +0000 (10:55 +0200)]
CuFFT uses only inverse(Scale_vars & vars)
CuFFT version of the tracker now only uses one inverse function.
The next goal is to do the same for forward FFT function.
Shanigen [Fri, 3 Aug 2018 08:09:42 +0000 (10:09 +0200)]
All versions now use same FFT API
Added CUFFT support for inverse(Scale_vars &vars) function. So the scale_track function
is now same for OpenCV, FFTW and CuFFT versions of the tracke.
Shanigen [Wed, 1 Aug 2018 14:02:35 +0000 (16:02 +0200)]
Added CUFFT support
CUFFT now works with Scale_vars struct but priority now will be for
all versions of the tracker to use same API in FFT class.
Shanigen [Wed, 1 Aug 2018 12:04:17 +0000 (14:04 +0200)]
Added KCF_Tracker::init_scale_vars method
Added KCF_Tracker::init scale_vars method so the KCF_Tracker::init
is not so bloated and easier to read.
Shanigen [Wed, 1 Aug 2018 11:42:13 +0000 (13:42 +0200)]
Scale_vars version now supports FFTW
Added support for FFTW in Scale_vars version of the tracker.
The nondeterminism problem with FFTW version seems to be corrected
for single threaded version of the tracker (In this version the FFTW
uses 2 threads for its plans). But for the std::async version and OpenMP
version of the tracker the problem persists. But when tested the nondeter-
minism is smaller than in the original implementation.
Shanigen [Wed, 1 Aug 2018 09:34:39 +0000 (11:34 +0200)]
Added support for std::async and OpenMP
Added support for std::async and OpenMP. All parallel and
single threaded options only works with OpenCV currently.
Shanigen [Wed, 1 Aug 2018 08:51:08 +0000 (10:51 +0200)]
Removed memory allocation in tracker update
Added xf to Scale_vars, which is used during tracker updating and was allocated every frame.
Now it is allocated only once in KCF_Tracker::init in scale_vars[0] and is reused every frame.
Shanigen [Tue, 31 Jul 2018 22:29:12 +0000 (00:29 +0200)]
Added linear kernel support
Added linear kernel option to the scale_track method.
Shanigen [Tue, 31 Jul 2018 09:03:44 +0000 (11:03 +0200)]
Modified CMAKE
Modified CMAKE to correctly show scale_vars.hpp as one of the source files.
Shanigen [Tue, 31 Jul 2018 08:32:18 +0000 (10:32 +0200)]
Corrected the tracking issue
Correction of commit
f5fe586e979629ba757f245e5ecdf9e6bbdf6c05 ,
in which I substantialy changed the whole tracker workflow.
This is a patch that corrects the issue with wrong tracking,
which happened because I used wrong value of scale to
compute weighted max response in response map.
Shanigen [Tue, 24 Jul 2018 12:23:38 +0000 (14:23 +0200)]
Initial commit to cuda-streams.
Shanigen [Mon, 30 Jul 2018 15:32:25 +0000 (17:32 +0200)]
Work done so far on making Scale_var struct
This is work done so far in making the tracker workflow easier to follow and also the step to add support for CUDA streams.
Shanigen [Tue, 24 Jul 2018 12:23:38 +0000 (14:23 +0200)]
Initial commit to cuda-streams.
Michal Sojka [Tue, 31 Jul 2018 11:13:53 +0000 (13:13 +0200)]
Fix paper references
Shanigen [Thu, 26 Jul 2018 14:13:32 +0000 (16:13 +0200)]
Fix out of bound load and stores
We simple allocates more memory so that unaligned SSE
loads and stores always operate on valid memory.
This closes #7.
Shanigen [Thu, 26 Jul 2018 13:51:34 +0000 (15:51 +0200)]
Addition of Scale_var structure.
I added Scale_var structure to begin work to fix issue #6. This should also fix #8. This is not the final version of the structure but it is
stable version, which works with all versions and there should currently be no problems with building of the KCF_tracker.
Shanigen [Thu, 26 Jul 2018 11:12:26 +0000 (13:12 +0200)]
Corrected mistake in CUFFT introduced with
8b28efcd5c939b1d41ce02ac0c2e267d204e4e72
In the commit
8b28efcd5c939b1d41ce02ac0c2e267d204e4e72 I introduced float ComplexMat::sqr_norm() method again but forgot to add also to Cufft
version of the ComplexMat.
Shanigen [Wed, 25 Jul 2018 12:10:16 +0000 (14:10 +0200)]
Changes that should correct some race conditions
Changes were made primary to the sqr_norm ComplexMat method, which was unsafe for parallel modes.
Michal Sojka [Wed, 25 Jul 2018 06:44:15 +0000 (08:44 +0200)]
Draw ground truth rectangle in visualisation window
Michal Sojka [Wed, 25 Jul 2018 06:31:16 +0000 (08:31 +0200)]
Refactor metric calculation and change its name
The new name (accuracy) is taken from [1] and in my view it is better
than intersection ratio.
[1] M. Kristan et al., A Novel Performance Evaluation Methodology for
Single-Target Trackers, 2015, https://arxiv.org/pdf/1503.01313
Michal Sojka [Wed, 25 Jul 2018 06:16:04 +0000 (08:16 +0200)]
Get rid of redundant variable use_iou
Michal Sojka [Tue, 24 Jul 2018 12:45:21 +0000 (14:45 +0200)]
Simplify README
Michal Sojka [Tue, 24 Jul 2018 07:46:51 +0000 (09:46 +0200)]
Add clang-format configuration
... and few annotations for it.
Shanigen [Tue, 24 Jul 2018 08:39:21 +0000 (10:39 +0200)]
Corrected small mistake with terminating character
Shanigen [Tue, 24 Jul 2018 07:48:20 +0000 (09:48 +0200)]
Made an error message easier to read.
Shanigen [Tue, 24 Jul 2018 07:43:29 +0000 (09:43 +0200)]
Corrected description of CUDA_DEBUG mode.
Shanigen [Mon, 23 Jul 2018 12:56:38 +0000 (14:56 +0200)]
Added calculation of intersection over union of groundtruth and calculated bounding box to show accuracy of the tracker.
Shanigen [Mon, 23 Jul 2018 09:14:57 +0000 (11:14 +0200)]
Restored CUDA_DEBUG mode, which now enables more thorough error checking using cudaDeviceSynchronize.
Shanigen [Mon, 23 Jul 2018 06:34:51 +0000 (08:34 +0200)]
Merge branch 'master' of https://github.com/Shanigen/kcf
Shanigen [Mon, 23 Jul 2018 06:33:47 +0000 (08:33 +0200)]
Added better error messages for checking window size and when
using -f.
Michal Sojka [Wed, 18 Jul 2018 20:42:47 +0000 (22:42 +0200)]
Remove CUDA_DEBUG option
This option is not about debugging but about error checking. And errors
should be ALWAYS done, because without that weird things (like segfaults)
can happen.
Shanigen [Wed, 18 Jul 2018 12:12:32 +0000 (14:12 +0200)]
Removed mistake that CUDA versions require OpenCV 3.0+
Shanigen [Wed, 18 Jul 2018 11:22:30 +0000 (13:22 +0200)]
Changed long string to multiline.
Shanigen [Wed, 18 Jul 2018 10:46:21 +0000 (12:46 +0200)]
Merge branch 'master' of https://github.com/Shanigen/kcf
Shanigen [Wed, 18 Jul 2018 10:45:35 +0000 (12:45 +0200)]
Added more verbose error message, when checking window size.
Michal Sojka [Wed, 18 Jul 2018 09:26:35 +0000 (11:26 +0200)]
README: Add command to install prerequisities
Michal Sojka [Wed, 18 Jul 2018 09:18:36 +0000 (11:18 +0200)]
cmake: Use pkg-config to find FFTW library
Michal Sojka [Wed, 18 Jul 2018 08:01:57 +0000 (08:01 +0000)]
Supress some CUDA-related warnings
Michal Sojka [Wed, 18 Jul 2018 05:14:36 +0000 (07:14 +0200)]
README: Clarify -DOPENMP description
Michal Sojka [Tue, 17 Jul 2018 20:59:57 +0000 (22:59 +0200)]
README: Clarifications, improvements...
Michal Sojka [Tue, 17 Jul 2018 20:37:59 +0000 (22:37 +0200)]
REAMDE: Fix
Michal Sojka [Tue, 17 Jul 2018 20:36:25 +0000 (22:36 +0200)]
README: Convert links to reference-style
... to make the README readable in plain text.
Michal Sojka [Mon, 16 Jul 2018 13:36:16 +0000 (15:36 +0200)]
README: Wrap long lines
This should make the README readable in plain text editors.
Michal Sojka [Fri, 13 Jul 2018 14:01:00 +0000 (16:01 +0200)]
Makefile: Do not run cmake if it has already been run
Michal Sojka [Fri, 13 Jul 2018 13:27:11 +0000 (15:27 +0200)]
README: Cleanup whitespace
Shanigen [Wed, 11 Jul 2018 11:39:40 +0000 (13:39 +0200)]
Modified description for OpenMP option and Fftw version.
Shanigen [Wed, 11 Jul 2018 11:38:56 +0000 (13:38 +0200)]
Modified Fftw version to correctly use OpenMP.
Michal Sojka [Wed, 11 Jul 2018 06:59:03 +0000 (08:59 +0200)]
README: Give example how to compile CUDA-based version
Michal Sojka [Tue, 10 Jul 2018 16:53:51 +0000 (18:53 +0200)]
Optional arguments must not be separated by space
Michal Sojka [Tue, 10 Jul 2018 15:39:56 +0000 (17:39 +0200)]
Update README
Michal Sojka [Tue, 10 Jul 2018 16:35:36 +0000 (18:35 +0200)]
Fix help message
Shanigen [Wed, 4 Jul 2018 07:03:30 +0000 (09:03 +0200)]
Corrected small mistake in Readme.
Shanigen [Wed, 4 Jul 2018 07:01:51 +0000 (09:01 +0200)]
Corrected small mistake with table in Readme.
Shanigen [Wed, 4 Jul 2018 06:55:41 +0000 (08:55 +0200)]
Added additional information to the Readme.
Shanigen [Tue, 3 Jul 2018 12:09:38 +0000 (14:09 +0200)]
Removed cudaDeviceSynchronize in Gaussian correlation.
Shanigen [Thu, 24 May 2018 19:55:05 +0000 (21:55 +0200)]
Deleleted obsolete folder with profiling results.
Shanigen [Thu, 24 May 2018 10:02:52 +0000 (12:02 +0200)]
Update README.md
Shanigen [Wed, 23 May 2018 12:18:53 +0000 (14:18 +0200)]
Added non-template version of the ComplexMat class to test out the HERCULES compiler.
Shanigen [Tue, 15 May 2018 17:22:37 +0000 (19:22 +0200)]
Corrected small mistake in scaling.
Shanigen [Tue, 15 May 2018 12:37:01 +0000 (14:37 +0200)]
Modified custom size window. You can now select both dimensions.
Shanigen [Mon, 14 May 2018 08:21:20 +0000 (10:21 +0200)]
Merge branch 'master' of https://github.com/Shanigen/kcf
Shanigen [Mon, 14 May 2018 08:20:26 +0000 (10:20 +0200)]
Corrected flags used during initialization of Fftw plans.
Shanigen [Sun, 13 May 2018 09:07:30 +0000 (11:07 +0200)]
Added source
Shanigen [Sat, 12 May 2018 13:05:32 +0000 (15:05 +0200)]
Modified parallel version of Fftw use POSIX threads only when the sequential version is used.
Shanigen [Wed, 9 May 2018 15:37:02 +0000 (17:37 +0200)]
Added sanity check to prevent combining OpenCV version with big batch mode, which it does not support.
Shanigen [Wed, 9 May 2018 15:16:35 +0000 (17:16 +0200)]
Addde warning, when using linear kernel with cufft version.
Shanigen [Wed, 9 May 2018 15:14:50 +0000 (17:14 +0200)]
Changed destructor of cuFFT to only destroy plans and delete data used in big batch mode, when big batch mode is on.
Shanigen [Wed, 9 May 2018 15:03:49 +0000 (17:03 +0200)]
Git corrected some issue, with destruction of fftw plans.
Shanigen [Wed, 9 May 2018 15:01:20 +0000 (17:01 +0200)]
Added support for big bach mode for linear kernal.
Shanigen [Wed, 9 May 2018 13:15:04 +0000 (15:15 +0200)]
Added sanity check for cuFFT version, which prevents unsupported combinations.
Shanigen [Wed, 9 May 2018 11:43:07 +0000 (13:43 +0200)]
Delete kcf.o
Shanigen [Wed, 9 May 2018 11:42:48 +0000 (13:42 +0200)]
Delete kcf.h.gch
Shanigen [Mon, 7 May 2018 03:44:14 +0000 (05:44 +0200)]
Merge branch 'master' of https://github.com/Shanigen/kcf
Shanigen [Mon, 7 May 2018 03:42:03 +0000 (05:42 +0200)]
Added custom scaling size option. The final window dimension size has to be divasible by cell size.
Shanigen [Fri, 4 May 2018 08:59:10 +0000 (10:59 +0200)]
Update README.md
Shanigen [Mon, 23 Apr 2018 14:07:41 +0000 (16:07 +0200)]
Changed scaling of window to be always 128x128 resulting in 32x32 matrice for feature descriptors.
Shanigen [Mon, 23 Apr 2018 12:59:36 +0000 (14:59 +0200)]
Gaussian correlation for CUFFT version is now on GPU. Also corrected << operator for CUDA ComplexMat
Shanigen [Thu, 19 Apr 2018 17:20:02 +0000 (19:20 +0200)]
Added forward_raw function to ffts in preparation to full cuda support.
Shanigen [Thu, 19 Apr 2018 16:30:03 +0000 (18:30 +0200)]
Corrected small mistake with inverse raw in cufft.