]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/log
hercules2020/kcf.git
5 years agoStreamlined ThreadCtx
Shanigen [Fri, 7 Sep 2018 10:06:51 +0000 (12:06 +0200)]
Streamlined ThreadCtx

Removed obsolete variables and variables that were
only used in zero index and moved them to kcf.

5 years agoMinor CMake correction for CUDA versions
Shanigen [Thu, 6 Sep 2018 10:57:19 +0000 (12:57 +0200)]
Minor CMake correction for CUDA versions

5 years agoRemoved obsolete include in CUFFT
Shanigen [Thu, 6 Sep 2018 10:52:12 +0000 (12:52 +0200)]
Removed obsolete include in CUFFT

CUDA version of the tracker no longer uses OpenCV's CUDA
API.

5 years agoAdded DynMem class
Shanigen [Thu, 6 Sep 2018 10:42:16 +0000 (12:42 +0200)]
Added DynMem class

DynMem class streamlines dynamic memory allocation for both CUDA
and CPU version of the tracker. Also some minor changes in fft_cufft.hpp
were made, because there was a problem with order of header includes.

5 years agoCorrects bug in 7a7ae99a73cc8456950d73e83586efbff6c28379
Shanigen [Thu, 6 Sep 2018 08:56:03 +0000 (10:56 +0200)]
Corrects bug in 7a7ae99a73cc8456950d73e83586efbff6c28379

5 years agoMade dynamic memory allocation more readable
Shanigen [Wed, 5 Sep 2018 12:52:09 +0000 (14:52 +0200)]
Made dynamic memory allocation more readable

5 years agoChanged variables in ThreadCtx to uint
Shanigen [Wed, 5 Sep 2018 12:26:17 +0000 (14:26 +0200)]
Changed variables in ThreadCtx to uint

Variables which are always positive were changed to uint.
This meant that some changes had to be made to ComplexMat
to reduce the number of typecasts.

5 years agoChanged p_windows_size and windows_size type to cv::Size
Shanigen [Wed, 5 Sep 2018 11:42:32 +0000 (13:42 +0200)]
Changed p_windows_size and windows_size type to cv::Size

5 years agoCUFFT now uses ThreadCtx and also pragmas from pragmas.h
Shanigen [Wed, 5 Sep 2018 11:25:49 +0000 (13:25 +0200)]
CUFFT now uses ThreadCtx and also pragmas from pragmas.h

5 years agoRenamed Scale_Vars to ThreadCtx
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.

5 years agoMoved omp pragmas declaration to seperate file
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.

5 years agoRevert "Removed obsolete method set_stream"
Shanigen [Wed, 5 Sep 2018 10:54:07 +0000 (12:54 +0200)]
Revert "Removed obsolete method set_stream"

This reverts commit a22c75434c0db289b63de882fc1677108882b445.

5 years agoRemoved obsolete method set_stream
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.

5 years agoCMake cleanup
Shanigen [Wed, 5 Sep 2018 10:24:13 +0000 (12:24 +0200)]
CMake cleanup

5 years agoRemoved redundant forward declaration.
Shanigen [Wed, 5 Sep 2018 07:57:47 +0000 (09:57 +0200)]
Removed redundant forward declaration.

This commit fixes #13.

5 years agoFormatted files with Clang Format.
Shanigen [Wed, 5 Sep 2018 07:54:21 +0000 (09:54 +0200)]
Formatted files with Clang Format.

5 years agoReformat some parts with clang-format
Michal Sojka [Wed, 5 Sep 2018 06:44:39 +0000 (08:44 +0200)]
Reformat some parts with clang-format

5 years agoBig Batch mode now support OpenMP
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.

5 years agoCUDA streams works
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.

5 years agoWork done so far on CUDA streams
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.

5 years agoBig batch mode now works for all versions
Shanigen [Tue, 7 Aug 2018 14:54:08 +0000 (16:54 +0200)]
Big batch mode now works for all versions

5 years agoRemoved OpenCV_CuFFT version
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.

5 years agoFFT does not take whole Scale_vars struct
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.

5 years agoRemoved obsolete variable
Shanigen [Fri, 3 Aug 2018 13:44:53 +0000 (15:44 +0200)]
Removed obsolete variable

5 years agoCleaned OpenCV version
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.

5 years agoCleaned FFTW version
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.

5 years agoRemove memory copying from host to device
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.

5 years agoSmaller FFT API
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.

5 years agoKCF_Tracker::init now uses Scale_vars FFT API
Shanigen [Fri, 3 Aug 2018 10:32:23 +0000 (12:32 +0200)]
KCF_Tracker::init now uses Scale_vars FFT API

5 years agoCuFFT uses only inverse(Scale_vars & vars)
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.

5 years agoAll versions now use same FFT API
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.

5 years agoAdded CUFFT support
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.

5 years agoAdded KCF_Tracker::init_scale_vars method
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.

5 years agoScale_vars version now supports FFTW
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.

5 years agoAdded support for std::async and OpenMP
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.

5 years agoRemoved memory allocation in tracker update
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.

5 years agoAdded linear kernel support
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.

5 years agoModified CMAKE
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.

5 years agoCorrected the tracking issue
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.

5 years agoInitial commit to cuda-streams.
Shanigen [Tue, 24 Jul 2018 12:23:38 +0000 (14:23 +0200)]
Initial commit to cuda-streams.

5 years agoWork done so far on making Scale_var struct
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.

5 years agoInitial commit to cuda-streams.
Shanigen [Tue, 24 Jul 2018 12:23:38 +0000 (14:23 +0200)]
Initial commit to cuda-streams.

5 years agoFix paper references
Michal Sojka [Tue, 31 Jul 2018 11:13:53 +0000 (13:13 +0200)]
Fix paper references

5 years agoFix out of bound load and stores
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.

5 years agoAddition of Scale_var structure.
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.

5 years agoCorrected mistake in CUFFT introduced with 8b28efcd5c939b1d41ce02ac0c2e267d204e4e72
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.

5 years agoChanges that should correct some race conditions
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.

5 years agoDraw ground truth rectangle in visualisation window
Michal Sojka [Wed, 25 Jul 2018 06:44:15 +0000 (08:44 +0200)]
Draw ground truth rectangle in visualisation window

5 years agoRefactor metric calculation and change its name
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

5 years agoGet rid of redundant variable use_iou
Michal Sojka [Wed, 25 Jul 2018 06:16:04 +0000 (08:16 +0200)]
Get rid of redundant variable use_iou

5 years agoSimplify README
Michal Sojka [Tue, 24 Jul 2018 12:45:21 +0000 (14:45 +0200)]
Simplify README

5 years agoAdd clang-format configuration
Michal Sojka [Tue, 24 Jul 2018 07:46:51 +0000 (09:46 +0200)]
Add clang-format configuration

... and few annotations for it.

5 years agoCorrected small mistake with terminating character
Shanigen [Tue, 24 Jul 2018 08:39:21 +0000 (10:39 +0200)]
Corrected small mistake with terminating character

5 years agoMade an error message easier to read.
Shanigen [Tue, 24 Jul 2018 07:48:20 +0000 (09:48 +0200)]
Made an error message easier to read.

5 years agoCorrected description of CUDA_DEBUG mode.
Shanigen [Tue, 24 Jul 2018 07:43:29 +0000 (09:43 +0200)]
Corrected description of CUDA_DEBUG mode.

5 years agoAdded calculation of intersection over union of groundtruth and calculated bounding...
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.

5 years agoRestored CUDA_DEBUG mode, which now enables more thorough error checking using cudaDe...
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.

5 years agoMerge branch 'master' of https://github.com/Shanigen/kcf
Shanigen [Mon, 23 Jul 2018 06:34:51 +0000 (08:34 +0200)]
Merge branch 'master' of https://github.com/Shanigen/kcf

5 years agoAdded better error messages for checking window size and when
Shanigen [Mon, 23 Jul 2018 06:33:47 +0000 (08:33 +0200)]
Added better error messages for checking window size and when
using -f.

5 years agoRemove CUDA_DEBUG option
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.

5 years agoRemoved mistake that CUDA versions require OpenCV 3.0+
Shanigen [Wed, 18 Jul 2018 12:12:32 +0000 (14:12 +0200)]
Removed mistake that CUDA versions require OpenCV 3.0+

5 years agoChanged long string to multiline.
Shanigen [Wed, 18 Jul 2018 11:22:30 +0000 (13:22 +0200)]
Changed long string to multiline.

5 years agoMerge branch 'master' of https://github.com/Shanigen/kcf
Shanigen [Wed, 18 Jul 2018 10:46:21 +0000 (12:46 +0200)]
Merge branch 'master' of https://github.com/Shanigen/kcf

5 years agoAdded more verbose error message, when checking window size.
Shanigen [Wed, 18 Jul 2018 10:45:35 +0000 (12:45 +0200)]
Added more verbose error message, when checking window size.

5 years agoREADME: Add command to install prerequisities
Michal Sojka [Wed, 18 Jul 2018 09:26:35 +0000 (11:26 +0200)]
README: Add command to install prerequisities

5 years agocmake: Use pkg-config to find FFTW library
Michal Sojka [Wed, 18 Jul 2018 09:18:36 +0000 (11:18 +0200)]
cmake: Use pkg-config to find FFTW library

5 years agoSupress some CUDA-related warnings
Michal Sojka [Wed, 18 Jul 2018 08:01:57 +0000 (08:01 +0000)]
Supress some CUDA-related warnings

5 years agoREADME: Clarify -DOPENMP description
Michal Sojka [Wed, 18 Jul 2018 05:14:36 +0000 (07:14 +0200)]
README: Clarify -DOPENMP description

5 years agoREADME: Clarifications, improvements...
Michal Sojka [Tue, 17 Jul 2018 20:59:57 +0000 (22:59 +0200)]
README: Clarifications, improvements...

5 years agoREAMDE: Fix
Michal Sojka [Tue, 17 Jul 2018 20:37:59 +0000 (22:37 +0200)]
REAMDE: Fix

5 years agoREADME: Convert links to reference-style
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.

5 years agoREADME: Wrap long lines
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.

5 years agoMakefile: Do not run cmake if it has already been run
Michal Sojka [Fri, 13 Jul 2018 14:01:00 +0000 (16:01 +0200)]
Makefile: Do not run cmake if it has already been run

5 years agoREADME: Cleanup whitespace
Michal Sojka [Fri, 13 Jul 2018 13:27:11 +0000 (15:27 +0200)]
README: Cleanup whitespace

5 years agoModified description for OpenMP option and Fftw version.
Shanigen [Wed, 11 Jul 2018 11:39:40 +0000 (13:39 +0200)]
Modified description for OpenMP option and Fftw version.

5 years agoModified Fftw version to correctly use OpenMP.
Shanigen [Wed, 11 Jul 2018 11:38:56 +0000 (13:38 +0200)]
Modified Fftw version to correctly use OpenMP.

5 years agoREADME: Give example how to compile CUDA-based version
Michal Sojka [Wed, 11 Jul 2018 06:59:03 +0000 (08:59 +0200)]
README: Give example how to compile CUDA-based version

5 years agoOptional arguments must not be separated by space
Michal Sojka [Tue, 10 Jul 2018 16:53:51 +0000 (18:53 +0200)]
Optional arguments must not be separated by space

5 years agoUpdate README
Michal Sojka [Tue, 10 Jul 2018 15:39:56 +0000 (17:39 +0200)]
Update README

5 years agoFix help message
Michal Sojka [Tue, 10 Jul 2018 16:35:36 +0000 (18:35 +0200)]
Fix help message

5 years agoCorrected small mistake in Readme.
Shanigen [Wed, 4 Jul 2018 07:03:30 +0000 (09:03 +0200)]
Corrected small mistake in Readme.

5 years agoCorrected small mistake with table in Readme.
Shanigen [Wed, 4 Jul 2018 07:01:51 +0000 (09:01 +0200)]
Corrected small mistake with table in Readme.

5 years agoAdded additional information to the Readme.
Shanigen [Wed, 4 Jul 2018 06:55:41 +0000 (08:55 +0200)]
Added additional information to the Readme.

5 years agoRemoved cudaDeviceSynchronize in Gaussian correlation.
Shanigen [Tue, 3 Jul 2018 12:09:38 +0000 (14:09 +0200)]
Removed cudaDeviceSynchronize in Gaussian correlation.

6 years agoDeleleted obsolete folder with profiling results.
Shanigen [Thu, 24 May 2018 19:55:05 +0000 (21:55 +0200)]
Deleleted obsolete folder with profiling results.

6 years agoUpdate README.md
Shanigen [Thu, 24 May 2018 10:02:52 +0000 (12:02 +0200)]
Update README.md

6 years agoAdded non-template version of the ComplexMat class to test out the HERCULES compiler.
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.

6 years agoCorrected small mistake in scaling.
Shanigen [Tue, 15 May 2018 17:22:37 +0000 (19:22 +0200)]
Corrected small mistake in scaling.

6 years agoModified custom size window. You can now select both dimensions.
Shanigen [Tue, 15 May 2018 12:37:01 +0000 (14:37 +0200)]
Modified custom size window. You can now select both dimensions.

6 years agoMerge branch 'master' of https://github.com/Shanigen/kcf
Shanigen [Mon, 14 May 2018 08:21:20 +0000 (10:21 +0200)]
Merge branch 'master' of https://github.com/Shanigen/kcf

6 years agoCorrected flags used during initialization of Fftw plans.
Shanigen [Mon, 14 May 2018 08:20:26 +0000 (10:20 +0200)]
Corrected flags used during initialization of Fftw plans.

6 years agoAdded source
Shanigen [Sun, 13 May 2018 09:07:30 +0000 (11:07 +0200)]
Added source

6 years agoModified parallel version of Fftw use POSIX threads only when the sequential version...
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.

6 years agoAdded sanity check to prevent combining OpenCV version with big batch mode, which...
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.

6 years agoAddde warning, when using linear kernel with cufft version.
Shanigen [Wed, 9 May 2018 15:16:35 +0000 (17:16 +0200)]
Addde warning, when using linear kernel with cufft version.

6 years agoChanged destructor of cuFFT to only destroy plans and delete data used in big batch...
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.

6 years agoGit corrected some issue, with destruction of fftw plans.
Shanigen [Wed, 9 May 2018 15:03:49 +0000 (17:03 +0200)]
Git corrected some issue, with destruction of fftw plans.

6 years agoAdded support for big bach mode for linear kernal.
Shanigen [Wed, 9 May 2018 15:01:20 +0000 (17:01 +0200)]
Added support for big bach mode for linear kernal.

6 years agoAdded sanity check for cuFFT version, which prevents unsupported combinations.
Shanigen [Wed, 9 May 2018 13:15:04 +0000 (15:15 +0200)]
Added sanity check for cuFFT version, which prevents unsupported combinations.

6 years agoDelete kcf.o
Shanigen [Wed, 9 May 2018 11:43:07 +0000 (13:43 +0200)]
Delete kcf.o