]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/log
hercules2020/kcf.git
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

5 years agoRemove patch_feats from ThreadCtx
Michal Sojka [Thu, 13 Sep 2018 22:56:40 +0000 (00:56 +0200)]
Remove patch_feats from ThreadCtx

It does not belong there. Also revert get_features to the original
implementation.

5 years agoRemove void statement
Michal Sojka [Thu, 13 Sep 2018 22:53:17 +0000 (00:53 +0200)]
Remove void statement

5 years agofft: Do not pass big_batch_mode as a parameter
Michal Sojka [Thu, 13 Sep 2018 22:44:03 +0000 (00:44 +0200)]
fft: Do not pass big_batch_mode as a parameter

One can determine the mode from the BIG_BATCH preprocessor symbol even
without the parameter.

5 years agoRemove unnecessary typecasting
Michal Sojka [Thu, 13 Sep 2018 22:44:36 +0000 (00:44 +0200)]
Remove unnecessary typecasting

5 years agoShorten code by using ctx instead of p_htreadctxs.front()
Michal Sojka [Thu, 13 Sep 2018 21:30:41 +0000 (23:30 +0200)]
Shorten code by using ctx instead of p_htreadctxs.front()

5 years agotravis: Build only for one GPU architecture
Michal Sojka [Thu, 13 Sep 2018 21:20:35 +0000 (23:20 +0200)]
travis: Build only for one GPU architecture

This makes travis builds faster.

5 years agoUse clamp function to clamp variables to a range
Michal Sojka [Thu, 13 Sep 2018 20:40:32 +0000 (22:40 +0200)]
Use clamp function to clamp variables to a range

5 years agoUnify init messages and add FFT size message
Michal Sojka [Thu, 13 Sep 2018 17:18:17 +0000 (19:18 +0200)]
Unify init messages and add FFT size message

5 years agoUse fixed format for output numbers
Michal Sojka [Thu, 13 Sep 2018 17:11:04 +0000 (19:11 +0200)]
Use fixed format for output numbers

5 years agotest: Show logs when not running on Travis CI
Michal Sojka [Thu, 13 Sep 2018 16:47:58 +0000 (18:47 +0200)]
test: Show logs when not running on Travis CI

5 years agoAdd book sequence to tests
Michal Sojka [Thu, 13 Sep 2018 16:27:28 +0000 (18:27 +0200)]
Add book sequence to tests

5 years agoAdd useful settings into Makefile (as comments)
Michal Sojka [Thu, 13 Sep 2018 16:24:05 +0000 (18:24 +0200)]
Add useful settings into Makefile (as comments)

5 years agoAllow CUDA autodetection with cmake < 3.7
Michal Sojka [Thu, 13 Sep 2018 15:36:52 +0000 (17:36 +0200)]
Allow CUDA autodetection with cmake < 3.7

5 years agoAutodetect CUDA architecture
Michal Sojka [Thu, 13 Sep 2018 15:01:23 +0000 (17:01 +0200)]
Autodetect CUDA architecture

5 years agoDo not require ifdefs when using sqr_norm()
Michal Sojka [Thu, 13 Sep 2018 04:40:35 +0000 (06:40 +0200)]
Do not require ifdefs when using sqr_norm()

5 years agoRevert FHoG::extract changes
Michal Sojka [Wed, 12 Sep 2018 21:57:06 +0000 (23:57 +0200)]
Revert FHoG::extract changes

It's not necessary for this function to know about our threads etc.

5 years agoSimpify init
Michal Sojka [Wed, 12 Sep 2018 21:15:37 +0000 (23:15 +0200)]
Simpify init

5 years agoSimplify sub_grid_scale
Michal Sojka [Wed, 12 Sep 2018 21:11:20 +0000 (23:11 +0200)]
Simplify sub_grid_scale

5 years agoRemove unnecessary typecasting
Michal Sojka [Wed, 12 Sep 2018 20:49:58 +0000 (22:49 +0200)]
Remove unnecessary typecasting

5 years agoReplace (p_windows_size.* / p_cell_size) with p_roi and remove useless typecasting
Michal Sojka [Wed, 12 Sep 2018 20:20:10 +0000 (22:20 +0200)]
Replace (p_windows_size.* / p_cell_size) with p_roi and remove useless typecasting

5 years agoUse cv::Size for p_roi
Michal Sojka [Wed, 12 Sep 2018 20:09:56 +0000 (22:09 +0200)]
Use cv::Size for p_roi

5 years agoFix scaling condition
Michal Sojka [Wed, 12 Sep 2018 19:55:53 +0000 (21:55 +0200)]
Fix scaling condition

"Or" makes more sense than "and".

5 years agoSimplify fit scale computation, cleanup
Michal Sojka [Wed, 12 Sep 2018 19:54:58 +0000 (21:54 +0200)]
Simplify fit scale computation, cleanup

5 years agoFix scale initialization
Michal Sojka [Wed, 12 Sep 2018 18:56:09 +0000 (20:56 +0200)]
Fix scale initialization

Without this, estimation of tracked object scale doesn't work
correctly.

This should have been done in commit 495214a ("Move scale and
async_res variables to ThreadCtx", 2018-09-12).

5 years agoAllow compiling all variants with ninja
Michal Sojka [Wed, 12 Sep 2018 18:23:43 +0000 (20:23 +0200)]
Allow compiling all variants with ninja

It is faster - see the comment in the Makefile.

5 years agoTravis complains about long logs
Michal Sojka [Wed, 12 Sep 2018 12:48:45 +0000 (14:48 +0200)]
Travis complains about long logs

5 years agotravis: Run tests
Michal Sojka [Wed, 12 Sep 2018 10:26:52 +0000 (12:26 +0200)]
travis: Run tests

We run them only with clang. This has two reasons:

1) We cannot run CUDA and this job does not build cuda.
2) It is the fastest job, so tests will be run while other jobs will
   still compile.

5 years agoTest improvements
Michal Sojka [Wed, 12 Sep 2018 10:16:05 +0000 (12:16 +0200)]
Test improvements

- we test --fit flag
- we do not rerun tests if the log is up to date
- vot2016.zip is not downloaded in vot2016 directory already exists

5 years agoAllow getting filter response
Michal Sojka [Wed, 12 Sep 2018 10:00:44 +0000 (12:00 +0200)]
Allow getting filter response

It roughly corresponds to tracker's view of tracking accuracy. This value
is produced even when ground truth data is not available.

PITOM wanted to have this for their drone use case.

Fixes #19.

5 years agoAdd automated testing
Michal Sojka [Wed, 12 Sep 2018 07:59:32 +0000 (09:59 +0200)]
Add automated testing

5 years agoMerge README update
Michal Sojka [Wed, 12 Sep 2018 05:16:35 +0000 (07:16 +0200)]
Merge README update

5 years agoUpdate README
Michal Sojka [Wed, 12 Sep 2018 05:14:54 +0000 (07:14 +0200)]
Update README

5 years agoMove scale and async_res variables to ThreadCtx
Michal Sojka [Tue, 11 Sep 2018 23:01:58 +0000 (01:01 +0200)]
Move scale and async_res variables to ThreadCtx

5 years agoChange p_threadctxs from list to vector
Michal Sojka [Tue, 11 Sep 2018 22:31:25 +0000 (00:31 +0200)]
Change p_threadctxs from list to vector

5 years agoUse list of thread contexts rather than list of pointers to thread contexts
Michal Sojka [Tue, 11 Sep 2018 21:51:47 +0000 (23:51 +0200)]
Use list of thread contexts rather than list of pointers to thread contexts

This simplifies some constructs in the code.

5 years agoRemove useless typecasting
Michal Sojka [Tue, 11 Sep 2018 19:54:53 +0000 (21:54 +0200)]
Remove useless typecasting

5 years agoReformat
Michal Sojka [Tue, 11 Sep 2018 19:49:12 +0000 (21:49 +0200)]
Reformat

5 years agoImprove error message
Michal Sojka [Tue, 11 Sep 2018 19:47:35 +0000 (21:47 +0200)]
Improve error message

5 years agoclang-format: Always move "if" body to a separate line
Michal Sojka [Tue, 11 Sep 2018 19:44:29 +0000 (21:44 +0200)]
clang-format: Always move "if" body to a separate line

5 years agoMerge branch 'cuda-streams'
Michal Sojka [Tue, 11 Sep 2018 19:38:09 +0000 (21:38 +0200)]
Merge branch 'cuda-streams'

5 years agoFix clang warnings
Shanigen [Sun, 9 Sep 2018 17:41:33 +0000 (19:41 +0200)]
Fix clang warnings

Mostly unused variable/function.

5 years agoAdded comments to variables in ThreadCtx + renamed p_scale_vars in kcf
Shanigen [Sun, 9 Sep 2018 04:33:44 +0000 (06:33 +0200)]
Added comments to variables in ThreadCtx + renamed p_scale_vars in kcf

This commit adresses issue #11.

5 years agoCorrection for CUFFT Big batch OpenMP
Shanigen [Sun, 9 Sep 2018 04:22:34 +0000 (06:22 +0200)]
Correction for CUFFT Big batch OpenMP

5 years agoCorrected warnings and errors in CUFFT version
Shanigen [Sat, 8 Sep 2018 10:31:11 +0000 (12:31 +0200)]
Corrected warnings and errors in CUFFT version

These problems were found by Travis CL.

5 years agoCorrected warnings in CPU ComplexMat
Shanigen [Sat, 8 Sep 2018 10:09:19 +0000 (12:09 +0200)]
Corrected warnings in CPU ComplexMat

This fixes #15.

5 years agoDo not force CUDA_HOST_COMPILER to g++
Michal Sojka [Sat, 8 Sep 2018 09:12:03 +0000 (11:12 +0200)]
Do not force CUDA_HOST_COMPILER to g++

cmake sets CUDA_HOST_COMPILER automatically based on CC environment
variable. If one uses custom CC variable and CUDA_HOST_COMPILER is set
this way, build usually fails. This happens, for example, when one
needs to use an older compiler (e.g. gcc-5), because the newer default
compiler is not supported by CUDA.

This fixes #10.

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 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 agotravis: Also Build with clang-5
Michal Sojka [Sun, 9 Sep 2018 11:23:07 +0000 (13:23 +0200)]
travis: Also Build with clang-5

5 years agotravis: Also build with clang-3.8
Michal Sojka [Sun, 9 Sep 2018 09:26:32 +0000 (11:26 +0200)]
travis: Also build with clang-3.8

5 years agotravis: Build with -Werror
Michal Sojka [Sun, 9 Sep 2018 07:28:22 +0000 (09:28 +0200)]
travis: Build with -Werror

5 years agotravis: Compile with gcc-5
Michal Sojka [Sun, 9 Sep 2018 08:58:05 +0000 (10:58 +0200)]
travis: Compile with gcc-5

TX2 has also gcc-5. The advantage is that this gcc version does not
produce some (false?) warnings about uninitialized variables.

5 years agotravis: Use APT addon rather than a bunch of sudo commands
Michal Sojka [Sun, 9 Sep 2018 07:08:15 +0000 (09:08 +0200)]
travis: Use APT addon rather than a bunch of sudo commands

This looks like a cleaner approach.

5 years agotravis: Use less CUDA packages in dependencies
Michal Sojka [Sun, 9 Sep 2018 06:34:15 +0000 (08:34 +0200)]
travis: Use less CUDA packages in dependencies

This makes Travis checks faster (from 5:00 to 3:30)