]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/log
hercules2020/kcf.git
5 years agoKCF: Mark constants as const
Michal Sojka [Wed, 26 Sep 2018 07:01:39 +0000 (09:01 +0200)]
KCF: Mark constants as const

5 years agoFormatting changes
Michal Sojka [Wed, 26 Sep 2018 05:06:24 +0000 (07:06 +0200)]
Formatting changes

This is done to lower the number of differences with rotation pull
request.

5 years agotest: Ignore OpenCV FFT problems
Michal Sojka [Tue, 25 Sep 2018 22:10:50 +0000 (00:10 +0200)]
test: Ignore OpenCV FFT problems

The OpenCV-based version has sometimes half accuracy compared to other
implementations. Before this is fixed, we lower the bar for the test to
pass.

5 years agoCUDA: Set device flags before first cuda operation
Michal Sojka [Tue, 25 Sep 2018 22:09:36 +0000 (00:09 +0200)]
CUDA: Set device flags before first cuda operation

5 years agoMove and rename cuda_error_check
Michal Sojka [Tue, 25 Sep 2018 22:01:20 +0000 (00:01 +0200)]
Move and rename cuda_error_check

There is no need for this file to have .cu* extension. It's only host code.

5 years agoPrint better CUDA error messages
Michal Sojka [Tue, 25 Sep 2018 21:57:15 +0000 (23:57 +0200)]
Print better CUDA error messages

5 years agoSimplify OpenCV FFT
Michal Sojka [Tue, 25 Sep 2018 21:53:21 +0000 (23:53 +0200)]
Simplify OpenCV FFT

5 years agotest: Add expected results for new sequences
Michal Sojka [Tue, 25 Sep 2018 21:30:04 +0000 (23:30 +0200)]
test: Add expected results for new sequences

Also print expected accuracy in test results.

5 years agotest: Fix accuracy evaluation
Michal Sojka [Tue, 25 Sep 2018 21:21:43 +0000 (23:21 +0200)]
test: Fix accuracy evaluation

5 years agoSelect shorter default test sequences
Michal Sojka [Tue, 25 Sep 2018 21:21:22 +0000 (23:21 +0200)]
Select shorter default test sequences

5 years agofftw: More meaningul threading configuration
Michal Sojka [Tue, 25 Sep 2018 21:02:39 +0000 (23:02 +0200)]
fftw: More meaningul threading configuration

5 years agoMakefile: Do not put "-G Ninja" to CMAKE_OPTS
Michal Sojka [Tue, 25 Sep 2018 20:13:31 +0000 (22:13 +0200)]
Makefile: Do not put "-G Ninja" to CMAKE_OPTS

When one overrides this variable from command line, -G flags is removed
and build fails.

5 years agofftw: Make create_plan method const
Michal Sojka [Tue, 25 Sep 2018 19:53:56 +0000 (21:53 +0200)]
fftw: Make create_plan method const

5 years agoSimplify cuFFT class
Michal Sojka [Tue, 25 Sep 2018 19:53:21 +0000 (21:53 +0200)]
Simplify cuFFT class

5 years agoTravis: Hardcode libomp path
Michal Sojka [Tue, 25 Sep 2018 11:10:17 +0000 (13:10 +0200)]
Travis: Hardcode libomp path

When we run tests on Travis, libomp cannot be found automatically.

5 years agoReally ignore test failures
Michal Sojka [Tue, 25 Sep 2018 10:55:11 +0000 (12:55 +0200)]
Really ignore test failures

On Travis, we sometimes got strange failures without any error messages.

5 years agoFix OpenMP linking
Michal Sojka [Tue, 25 Sep 2018 06:01:34 +0000 (08:01 +0200)]
Fix OpenMP linking

- Move OpenMP compilation handling to kcf library
- After we added a call to omp_omp_set_num_threads(), we must properly
  link the kcf_vot with OpenMP libraries. CMake (especially older
  versions) seems to fail doing this properly automatically.

5 years agofftw: Make everything related to BIG_BATCH conditionally compilable
Michal Sojka [Mon, 24 Sep 2018 22:02:21 +0000 (00:02 +0200)]
fftw: Make everything related to BIG_BATCH conditionally compilable

5 years agoSimplify Fftw::init()
Michal Sojka [Mon, 24 Sep 2018 20:14:29 +0000 (22:14 +0200)]
Simplify Fftw::init()

And use multiple FFT threads where it makes sense.

5 years agoTravis: Install CUDA only in builds where we need them
Michal Sojka [Tue, 25 Sep 2018 05:35:28 +0000 (07:35 +0200)]
Travis: Install CUDA only in builds where we need them

5 years agoRemove unused header
Michal Sojka [Mon, 24 Sep 2018 22:14:19 +0000 (00:14 +0200)]
Remove unused header

5 years agocmake: Do not use deprecated feature
Michal Sojka [Mon, 24 Sep 2018 21:54:53 +0000 (23:54 +0200)]
cmake: Do not use deprecated feature

5 years agoImprove CMake option description
Michal Sojka [Tue, 25 Sep 2018 07:14:55 +0000 (09:14 +0200)]
Improve CMake option description

5 years agoAdd Makefile target to print make variable values
Michal Sojka [Mon, 24 Sep 2018 21:19:35 +0000 (23:19 +0200)]
Add Makefile target to print make variable values

Use this target to simplify travis config. It is also useful for manual
testing.

5 years agoAdd plot targets to ninja
Michal Sojka [Mon, 24 Sep 2018 21:14:05 +0000 (23:14 +0200)]
Add plot targets to ninja

5 years agoPlot graphs from zero and add grid
Michal Sojka [Mon, 24 Sep 2018 21:13:37 +0000 (23:13 +0200)]
Plot graphs from zero and add grid

5 years agotest: Report bad accuracy as ACCURACY rather than BAD
Michal Sojka [Mon, 24 Sep 2018 19:28:32 +0000 (21:28 +0200)]
test: Report bad accuracy as ACCURACY rather than BAD

5 years agoTravis: Suppress libdc1394 error
Michal Sojka [Mon, 24 Sep 2018 18:33:43 +0000 (20:33 +0200)]
Travis: Suppress libdc1394 error

These are produced by OpenCV and are not relevant for us.

5 years agoTravis: Fix (and simplify) cache cleanup command
Michal Sojka [Mon, 24 Sep 2018 18:21:48 +0000 (20:21 +0200)]
Travis: Fix (and simplify) cache cleanup command

Previously, only core files were deleted, because -o operator has low
priority.

5 years agoTravis: Move before_script before script :)
Michal Sojka [Mon, 24 Sep 2018 17:47:02 +0000 (19:47 +0200)]
Travis: Move before_script before script :)

5 years agoTravis: Cleanup cache before uploading
Michal Sojka [Mon, 24 Sep 2018 17:46:36 +0000 (19:46 +0200)]
Travis: Cleanup cache before uploading

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.