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

5 years agoAdd markers to compile output
Michal Sojka [Sat, 8 Sep 2018 09:10:50 +0000 (11:10 +0200)]
Add markers to compile output

With this, it will be easier to figure in which build variant an error
happens.

5 years agoEnable Travis CI
Michal Sojka [Sat, 8 Sep 2018 07:12:12 +0000 (09:12 +0200)]
Enable Travis CI

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.