]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/log
hercules2020/kcf.git
5 years agoRevert "Travis: Temporarily ignore test failures"
Michal Sojka [Mon, 24 Sep 2018 17:21:31 +0000 (19:21 +0200)]
Revert "Travis: Temporarily ignore test failures"

This reverts commit b612171e79b15d022903f0a5eaa55f644f287652.

5 years agoFix CUFFT compilation
Michal Sojka [Mon, 24 Sep 2018 17:06:24 +0000 (19:06 +0200)]
Fix CUFFT compilation

5 years agoRepaired the big batch mode for FFTW.
Shanigen [Mon, 24 Sep 2018 14:55:20 +0000 (16:55 +0200)]
Repaired the big batch mode for FFTW.

5 years agoAttempt to fix big_batch mode
Michal Sojka [Sun, 23 Sep 2018 22:56:16 +0000 (00:56 +0200)]
Attempt to fix big_batch mode

5 years agoIgnore clang warning about __VA_ARGS__ in all kcf library
Michal Sojka [Mon, 24 Sep 2018 07:25:53 +0000 (09:25 +0200)]
Ignore clang warning about __VA_ARGS__ in all kcf library

The warning is "token pasting of ',' and __VA_ARGS__ is a GNU extension".
Since we use TRACE macros in other files, we need to ignore the warning
there as well.

5 years agoAllow using debug functions in other files than kcf.cpp
Michal Sojka [Sun, 23 Sep 2018 17:02:49 +0000 (19:02 +0200)]
Allow using debug functions in other files than kcf.cpp

I'm using it for debugging of big batch problems in fft*.cpp files.

5 years agoChange order of gaussian_correlation arguments
Michal Sojka [Sun, 23 Sep 2018 13:40:19 +0000 (15:40 +0200)]
Change order of gaussian_correlation arguments

Now, output is first, all the rest are inputs. This makes it easier to
remember which variable receives the output when ones looks at a call site.

5 years agoFFT interface fixes for BIG_BATCH mode
Michal Sojka [Sun, 23 Sep 2018 13:34:54 +0000 (15:34 +0200)]
FFT interface fixes for BIG_BATCH mode

More fixes will follow.

5 years agoUpdate KCF_Tracker::max_response
Michal Sojka [Sun, 23 Sep 2018 12:41:46 +0000 (14:41 +0200)]
Update KCF_Tracker::max_response

This will be needed by Hercules partner PITOM.

5 years agoUpdate debugging messages
Michal Sojka [Sun, 23 Sep 2018 12:40:46 +0000 (14:40 +0200)]
Update debugging messages

5 years agoFix fftw bug
Michal Sojka [Sun, 23 Sep 2018 12:30:52 +0000 (14:30 +0200)]
Fix fftw bug

We need floating point division, not integer division.

5 years agoFix incorrect order of train() arguments
Michal Sojka [Sun, 23 Sep 2018 09:27:22 +0000 (11:27 +0200)]
Fix incorrect order of train() arguments

train() is called two time. Before this change, it was once called as
train(input_gray, input_rgb, ...) and once as
train(input_rgb, input_gray, ...)

This unifies the call sites and changes the order of arguments to match
get_features().

Fixes #28.

5 years agoSpeedup gaussian correlation
Michal Sojka [Sun, 23 Sep 2018 07:17:29 +0000 (09:17 +0200)]
Speedup gaussian correlation

This changes sum_over_channels(ifft(xyf)) for ifft(sum_over_channels(xyf)).
Since FFT is linear operation, the result is the same, but ifft is
calculated only once instead of 44 times.

5 years agoFix bugs in some FFT classes
Michal Sojka [Sun, 23 Sep 2018 07:13:43 +0000 (09:13 +0200)]
Fix bugs in some FFT classes

5 years agoMove debug support to separate file
Michal Sojka [Sun, 23 Sep 2018 07:09:07 +0000 (09:09 +0200)]
Move debug support to separate file

Also update printed debug messages.

5 years agoRename MatScaleFeatures.features() to .scale()
Michal Sojka [Sun, 23 Sep 2018 07:06:47 +0000 (09:06 +0200)]
Rename MatScaleFeatures.features() to .scale()

The new name represents the meaning of the data correctly.

5 years agoUpdate clang-format config
Michal Sojka [Sat, 22 Sep 2018 21:14:32 +0000 (23:14 +0200)]
Update clang-format config

5 years agoPrint Mat data with smaller precision (3 digits)
Michal Sojka [Sat, 22 Sep 2018 17:22:36 +0000 (19:22 +0200)]
Print Mat data with smaller precision (3 digits)

5 years agoMake debug messages contain first 10 elements of matrix data
Michal Sojka [Sat, 22 Sep 2018 15:28:12 +0000 (17:28 +0200)]
Make debug messages contain first 10 elements of matrix data

5 years agoAvoid Mat allocation in track()
Michal Sojka [Sat, 22 Sep 2018 15:03:18 +0000 (17:03 +0200)]
Avoid Mat allocation in track()

In addition to that, this also shortens num_of_scales to num_scales.

5 years agoImprove debug prints
Michal Sojka [Sat, 22 Sep 2018 14:45:46 +0000 (16:45 +0200)]
Improve debug prints

- Prints can produce different things based on type.
- Print data pointer for matrices
- Omit matrix data for now (we may add them later)

5 years agoFix out of bound error
Michal Sojka [Sat, 22 Sep 2018 09:44:55 +0000 (11:44 +0200)]
Fix out of bound error

5 years agoMat3d: Add const plane() method
Michal Sojka [Sat, 22 Sep 2018 09:43:20 +0000 (11:43 +0200)]
Mat3d: Add const plane() method

We need this at least for FFT.

5 years agoAdd simple tracing facility
Michal Sojka [Sat, 22 Sep 2018 07:22:26 +0000 (09:22 +0200)]
Add simple tracing facility

5 years agoTravis: Temporarily ignore test failures
Michal Sojka [Fri, 21 Sep 2018 18:50:45 +0000 (20:50 +0200)]
Travis: Temporarily ignore test failures

5 years agoGet rid of warnings from the last commit
Michal Sojka [Fri, 21 Sep 2018 18:45:07 +0000 (20:45 +0200)]
Get rid of warnings from the last commit

5 years agoFix FFT functions to use the correct new Mat* types
Michal Sojka [Fri, 21 Sep 2018 18:38:39 +0000 (20:38 +0200)]
Fix FFT functions to use the correct new Mat* types

More changes still to come...

5 years agoCorrected plans in FFTW and CUFFT for big batch mode.
Shanigen [Fri, 21 Sep 2018 12:05:28 +0000 (14:05 +0200)]
Corrected plans in FFTW and CUFFT for big batch mode.

5 years agoIntroduce new Mat types and use them in the code
Michal Sojka [Fri, 21 Sep 2018 11:48:24 +0000 (13:48 +0200)]
Introduce new Mat types and use them in the code

This unifies matrix layout in memory and makes it easier to think about
code correctness.

5 years agoSimplify code
Michal Sojka [Fri, 21 Sep 2018 08:29:44 +0000 (10:29 +0200)]
Simplify code

5 years agoEnsure that MatDynMem.plane() returns standard 2D matrix
Michal Sojka [Fri, 21 Sep 2018 08:28:53 +0000 (10:28 +0200)]
Ensure that MatDynMem.plane() returns standard 2D matrix

I.e. with rows and cols >= 0. higher dimensional matrices have rows and
cols = -1, which causes problems at other places in the code.

5 years agoUpdate ninja generator
Michal Sojka [Fri, 21 Sep 2018 07:32:03 +0000 (09:32 +0200)]
Update ninja generator

5 years agoDo not leave KCF_Tracker::gaussian_correlation unset
Michal Sojka [Thu, 20 Sep 2018 22:58:54 +0000 (00:58 +0200)]
Do not leave KCF_Tracker::gaussian_correlation unset

This looks like a nicer solution than the one suggested in #23. Not tested.

5 years agoCorrected memory copying
Shanigen [Thu, 20 Sep 2018 16:24:15 +0000 (18:24 +0200)]
Corrected memory copying

operator = copies the data pointer of the source matrix to the destination
matrix. This resulted that no changes happened to the result_3d matrix in
KCF_Tracker::get_features.

5 years agoRemove mutable qualifier ComplexMat.p_data
Michal Sojka [Thu, 20 Sep 2018 18:24:24 +0000 (20:24 +0200)]
Remove mutable qualifier ComplexMat.p_data

Its use here is incorrect. Instead, get_p_data should be non-const method.

5 years agoFix feature matrix dimensions
Michal Sojka [Thu, 20 Sep 2018 15:21:00 +0000 (17:21 +0200)]
Fix feature matrix dimensions

5 years agoQuick fix to compile fftw even without m_num_of_scales
Michal Sojka [Thu, 20 Sep 2018 15:05:24 +0000 (17:05 +0200)]
Quick fix to compile fftw even without m_num_of_scales

5 years agoFftw: Do not hide member variables inherited from Fft
Michal Sojka [Thu, 20 Sep 2018 14:54:10 +0000 (16:54 +0200)]
Fftw: Do not hide member variables inherited from Fft

Fixes #22.

5 years agoUnify CUDA error handling
Michal Sojka [Thu, 20 Sep 2018 14:51:06 +0000 (16:51 +0200)]
Unify CUDA error handling

5 years agoSimplify access to 3D Mat planes
Michal Sojka [Thu, 20 Sep 2018 05:36:51 +0000 (07:36 +0200)]
Simplify access to 3D Mat planes

5 years agoRework maxresponse-related data structure
Michal Sojka [Thu, 20 Sep 2018 05:34:28 +0000 (07:34 +0200)]
Rework maxresponse-related data structure

5 years agoMove scale_track method from KCF to ThreadCtx
Michal Sojka [Thu, 20 Sep 2018 04:55:18 +0000 (06:55 +0200)]
Move scale_track method from KCF to ThreadCtx

5 years agoFixes
Michal Sojka [Thu, 20 Sep 2018 04:32:09 +0000 (06:32 +0200)]
Fixes

5 years agocufft: Remove unused/unneeded stuff
Michal Sojka [Wed, 19 Sep 2018 22:53:02 +0000 (00:53 +0200)]
cufft: Remove unused/unneeded stuff

5 years agoRemove unused bool switches that correspond to CMake switches
Michal Sojka [Wed, 19 Sep 2018 22:47:33 +0000 (00:47 +0200)]
Remove unused bool switches that correspond to CMake switches

5 years agoWork around clang < 6 bug
Michal Sojka [Wed, 19 Sep 2018 22:30:47 +0000 (00:30 +0200)]
Work around clang < 6 bug

https://bugs.llvm.org/show_bug.cgi?id=21629

5 years agoFix clang 3.8 errors/warnings
Michal Sojka [Wed, 19 Sep 2018 22:19:47 +0000 (00:19 +0200)]
Fix clang 3.8 errors/warnings

5 years agoTry to fix compilation error with OpenCV 2.4
Michal Sojka [Wed, 19 Sep 2018 22:14:13 +0000 (00:14 +0200)]
Try to fix compilation error with OpenCV 2.4

5 years agoFix compilation errors in gaussian correlation
Michal Sojka [Wed, 19 Sep 2018 21:56:20 +0000 (23:56 +0200)]
Fix compilation errors in gaussian correlation

Now all variants compile, but all seem to crash.

5 years agoFix FFT classes compilation errors
Michal Sojka [Wed, 19 Sep 2018 21:27:19 +0000 (23:27 +0200)]
Fix FFT classes compilation errors

5 years agoMake debug prints work outside of KCF_Tracker class
Michal Sojka [Wed, 19 Sep 2018 21:09:22 +0000 (23:09 +0200)]
Make debug prints work outside of KCF_Tracker class

5 years agoFix warnings
Michal Sojka [Wed, 19 Sep 2018 21:08:48 +0000 (23:08 +0200)]
Fix warnings

5 years agoFactor finding of maximum response to a function
Michal Sojka [Wed, 19 Sep 2018 21:01:36 +0000 (23:01 +0200)]
Factor finding of maximum response to a function

5 years agoUnify GaussianCorrelation constructor
Michal Sojka [Wed, 19 Sep 2018 21:00:41 +0000 (23:00 +0200)]
Unify GaussianCorrelation constructor

5 years agocufft big batch compiles
Michal Sojka [Wed, 19 Sep 2018 20:21:46 +0000 (22:21 +0200)]
cufft big batch compiles

5 years agoFix and simplify CUDA linking
Michal Sojka [Wed, 19 Sep 2018 19:40:45 +0000 (21:40 +0200)]
Fix and simplify CUDA linking

- Added cublas
- No need to add subdirectory with only a header file
- All .cu files linked to a single library (before, we used two libs)

5 years agoCorrecting CUFFT compilation errors.
Shanigen [Wed, 19 Sep 2018 15:25:47 +0000 (17:25 +0200)]
Correcting CUFFT compilation errors.

5 years agoAdd convenience ComplexMat constructors + code updates
Michal Sojka [Wed, 19 Sep 2018 14:30:42 +0000 (16:30 +0200)]
Add convenience ComplexMat constructors + code updates

5 years agocufft: Move scaling from gaussian_correlation to inverse fft
Michal Sojka [Wed, 19 Sep 2018 13:49:58 +0000 (15:49 +0200)]
cufft: Move scaling from gaussian_correlation to inverse fft

This unifies the computation, but will be slower. We should investigate
whether this scaling is really needed and if yes, whether we can use
cufft callbacks.

5 years agofft: Implement assertions in the base class
Michal Sojka [Wed, 19 Sep 2018 10:53:00 +0000 (12:53 +0200)]
fft: Implement assertions in the base class

5 years agoMatDynMem: Add move constructor
Michal Sojka [Wed, 19 Sep 2018 10:49:25 +0000 (12:49 +0200)]
MatDynMem: Add move constructor

5 years agoRefactor image resizing out of ::track to make it shorter
Michal Sojka [Wed, 19 Sep 2018 08:39:13 +0000 (10:39 +0200)]
Refactor image resizing out of ::track to make it shorter

5 years agoDynMem: Unify the meaning of size parameters
Michal Sojka [Wed, 19 Sep 2018 07:41:51 +0000 (09:41 +0200)]
DynMem: Unify the meaning of size parameters

For CPU, it meant the number of elements, for GPU the size of memory in
bytes.

5 years agoDynMem: Replace hardcoded float in template class with template type
Michal Sojka [Wed, 19 Sep 2018 07:22:51 +0000 (09:22 +0200)]
DynMem: Replace hardcoded float in template class with template type

5 years agoAllow copying DynMem
Michal Sojka [Wed, 19 Sep 2018 07:21:30 +0000 (09:21 +0200)]
Allow copying DynMem

5 years agoStart cleaning up cufft implementation
Michal Sojka [Tue, 18 Sep 2018 12:54:44 +0000 (14:54 +0200)]
Start cleaning up cufft implementation

- This simplifies the API by using MatDynMem, which unifies
  cv::Mat and GPU zero-copy memory.

5 years ago(Mat)DynMem updates and related changes
Michal Sojka [Mon, 17 Sep 2018 22:07:18 +0000 (00:07 +0200)]
(Mat)DynMem updates and related changes

DynMem has device pointer only when compiling for CUDA.

5 years agoIntroduce GaussianCorrelation class
Michal Sojka [Mon, 17 Sep 2018 07:44:58 +0000 (09:44 +0200)]
Introduce GaussianCorrelation class

This encapsulates all variables that should be kept allocated between
frames.

5 years agoUse new type MatDynMem combining cv::Mat and DynMem
Michal Sojka [Mon, 17 Sep 2018 00:15:26 +0000 (02:15 +0200)]
Use new type MatDynMem combining cv::Mat and DynMem

This simplifies ThreadCtx.

5 years agoAdd a method for calculation of FFT result size
Michal Sojka [Sun, 16 Sep 2018 21:31:07 +0000 (23:31 +0200)]
Add a method for calculation of FFT result size

Also remove CUFFT ifdef, because both branches are the same since removal
of explicit streams a few commits ago.

5 years agoStart fixing big batch mode
Michal Sojka [Sun, 16 Sep 2018 09:55:08 +0000 (11:55 +0200)]
Start fixing big batch mode

5 years agoRename num_of_feats to num_channels
Michal Sojka [Sun, 16 Sep 2018 13:19:10 +0000 (15:19 +0200)]
Rename num_of_feats to num_channels

This is more accurate.

5 years agoRestrict access to ThreadCtx variables
Michal Sojka [Sun, 16 Sep 2018 09:07:35 +0000 (11:07 +0200)]
Restrict access to ThreadCtx variables

Make variables that should be only accessed from gaussian_correlation
not accessible from anywhere else.

5 years agoUse delete[] operator
Michal Sojka [Sun, 16 Sep 2018 09:04:57 +0000 (11:04 +0200)]
Use delete[] operator

Address sanitizer complains that memory is allocated with new[] and deleted
with delete. Fix that.

5 years agoMove thread context to class-private data structure
Michal Sojka [Sun, 16 Sep 2018 08:25:01 +0000 (10:25 +0200)]
Move thread context to class-private data structure

This will allow accessing KCF_Tracker members from ThreadCtx. We will need
this in the next commit to restrict access to some ThreadCtx members to
only selected KCF_Tracker methods.

5 years agoCUDA: Use per-thread default streams rather than explicit streams
Michal Sojka [Sat, 15 Sep 2018 23:54:58 +0000 (01:54 +0200)]
CUDA: Use per-thread default streams rather than explicit streams

Previous implementation with explicit CUDA stream had race condition in
the cuFFT class. Additionally, the previous implementation was not so nice
because it required to use dummy streams in non-CUDA versions. This is now
all gone.

5 years agograph: Fix FPS display when some logs are not complete
Michal Sojka [Thu, 20 Sep 2018 12:22:20 +0000 (14:22 +0200)]
graph: Fix FPS display when some logs are not complete

Log files are taken into account only if an average values can be found in it.

5 years agoMake wget not print too much output
Michal Sojka [Thu, 20 Sep 2018 08:01:50 +0000 (10:01 +0200)]
Make wget not print too much output

Travis then doesn't show the full log.

5 years agoUse custom ninja status on travis
Michal Sojka [Thu, 20 Sep 2018 07:52:56 +0000 (09:52 +0200)]
Use custom ninja status on travis

Show the number of finished tasks rather than started tasks.
This value is the default in new versions and is more useful.

5 years agoMake build log more readable
Michal Sojka [Thu, 20 Sep 2018 07:52:07 +0000 (09:52 +0200)]
Make build log  more readable

5 years agoAdded addtional sorting option to the graph generating.
Shanigen [Wed, 19 Sep 2018 09:04:56 +0000 (11:04 +0200)]
Added addtional sorting option to the graph generating.

5 years agoChanged the script according to the comments in pull request.
Shanigen [Tue, 18 Sep 2018 16:07:08 +0000 (18:07 +0200)]
Changed the script according to the comments in pull request.

5 years agoAdded option to generate boxplots showing FPS.
Shanigen [Tue, 18 Sep 2018 10:04:14 +0000 (12:04 +0200)]
Added option to generate boxplots showing FPS.

5 years agoAdded script to generate BoxPlots
Shanigen [Tue, 18 Sep 2018 01:15:38 +0000 (03:15 +0200)]
Added script to generate BoxPlots

5 years agoMake build.ninja generator more compatible with various systems
Michal Sojka [Mon, 17 Sep 2018 11:19:17 +0000 (13:19 +0200)]
Make build.ninja generator more compatible with various systems

i.e. Use $(file) function when available, fallback to echo shell command.

5 years agoAdd automated testing of tracking accuracy
Michal Sojka [Sun, 16 Sep 2018 12:55:48 +0000 (14:55 +0200)]
Add automated testing of tracking accuracy

Also improve printing of test results.

5 years agoCosmetic Makefile changes
Michal Sojka [Sat, 15 Sep 2018 23:39:50 +0000 (01:39 +0200)]
Cosmetic Makefile changes

5 years agoReport test failures with wvtool
Michal Sojka [Sat, 15 Sep 2018 07:10:34 +0000 (09:10 +0200)]
Report test failures with wvtool

5 years agotravis: Delete dumped cores
Michal Sojka [Fri, 14 Sep 2018 15:49:45 +0000 (17:49 +0200)]
travis: Delete dumped cores

5 years agoNinja test fixes
Michal Sojka [Fri, 14 Sep 2018 15:03:28 +0000 (17:03 +0200)]
Ninja test fixes

5 years agoDo not require realpath command
Michal Sojka [Fri, 14 Sep 2018 14:08:47 +0000 (16:08 +0200)]
Do not require realpath command

It is not available on Travis

5 years agoDo not duplicate Makefile and ninja - all is now done by ninja
Michal Sojka [Fri, 14 Sep 2018 13:54:31 +0000 (15:54 +0200)]
Do not duplicate Makefile and ninja - all is now done by ninja

5 years agoPass CUDA_ARCH_LIST to CMake only for CUDA build
Michal Sojka [Fri, 14 Sep 2018 13:01:54 +0000 (15:01 +0200)]
Pass CUDA_ARCH_LIST to CMake only for CUDA build

This avoids a cmake warning in other builds.

5 years agoAlways run tests with ninja and fix few problems
Michal Sojka [Fri, 14 Sep 2018 12:53:51 +0000 (14:53 +0200)]
Always run tests with ninja and fix few problems

5 years agoDo not run cmake during `ninja test` when not necessary
Michal Sojka [Fri, 14 Sep 2018 10:32:57 +0000 (12:32 +0200)]
Do not run cmake during `ninja test` when not necessary

5 years agoAllow generating build.ninja also with GNU make 3.81
Michal Sojka [Fri, 14 Sep 2018 09:59:47 +0000 (11:59 +0200)]
Allow generating build.ninja also with GNU make 3.81

This version is on Travis and does not support file function.

5 years agoRun tests with ninja
Michal Sojka [Fri, 14 Sep 2018 09:01:00 +0000 (11:01 +0200)]
Run tests with ninja

To run them faster and to have nice progress report.

5 years agoFix indentation
Michal Sojka [Fri, 14 Sep 2018 04:46:14 +0000 (06:46 +0200)]
Fix indentation

5 years agoDefine big_batch variables only in BIG_BATCH mode
Michal Sojka [Thu, 13 Sep 2018 23:22:03 +0000 (01:22 +0200)]
Define big_batch variables only in BIG_BATCH mode

5 years agoReplace Kcf::m_use_big_batch with a preprocessor symbol
Michal Sojka [Thu, 13 Sep 2018 23:08:44 +0000 (01:08 +0200)]
Replace Kcf::m_use_big_batch with a preprocessor symbol