]>
rtime.felk.cvut.cz Git - hercules2020/kcf.git/log
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.
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.
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.
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.
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.
Michal Sojka [Sun, 16 Sep 2018 09:55:08 +0000 (11:55 +0200)]
Start fixing big batch mode
Michal Sojka [Sun, 16 Sep 2018 13:19:10 +0000 (15:19 +0200)]
Rename num_of_feats to num_channels
This is more accurate.
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.
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.
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.
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.
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.
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.
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.
Michal Sojka [Thu, 20 Sep 2018 07:52:07 +0000 (09:52 +0200)]
Make build log more readable
Shanigen [Wed, 19 Sep 2018 09:04:56 +0000 (11:04 +0200)]
Added addtional sorting option to the graph generating.
Shanigen [Tue, 18 Sep 2018 16:07:08 +0000 (18:07 +0200)]
Changed the script according to the comments in pull request.
Shanigen [Tue, 18 Sep 2018 10:04:14 +0000 (12:04 +0200)]
Added option to generate boxplots showing FPS.
Shanigen [Tue, 18 Sep 2018 01:15:38 +0000 (03:15 +0200)]
Added script to generate BoxPlots
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.
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.
Michal Sojka [Sat, 15 Sep 2018 23:39:50 +0000 (01:39 +0200)]
Cosmetic Makefile changes
Michal Sojka [Sat, 15 Sep 2018 07:10:34 +0000 (09:10 +0200)]
Report test failures with wvtool
Michal Sojka [Fri, 14 Sep 2018 15:49:45 +0000 (17:49 +0200)]
travis: Delete dumped cores
Michal Sojka [Fri, 14 Sep 2018 15:03:28 +0000 (17:03 +0200)]
Ninja test fixes
Michal Sojka [Fri, 14 Sep 2018 14:08:47 +0000 (16:08 +0200)]
Do not require realpath command
It is not available on Travis
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
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.
Michal Sojka [Fri, 14 Sep 2018 12:53:51 +0000 (14:53 +0200)]
Always run tests with ninja and fix few problems
Michal Sojka [Fri, 14 Sep 2018 10:32:57 +0000 (12:32 +0200)]
Do not run cmake during `ninja test` when not necessary
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.
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.
Michal Sojka [Fri, 14 Sep 2018 04:46:14 +0000 (06:46 +0200)]
Fix indentation
Michal Sojka [Thu, 13 Sep 2018 23:22:03 +0000 (01:22 +0200)]
Define big_batch variables only in BIG_BATCH mode
Michal Sojka [Thu, 13 Sep 2018 23:08:44 +0000 (01:08 +0200)]
Replace Kcf::m_use_big_batch with a preprocessor symbol
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.
Michal Sojka [Thu, 13 Sep 2018 22:53:17 +0000 (00:53 +0200)]
Remove void statement
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.
Michal Sojka [Thu, 13 Sep 2018 22:44:36 +0000 (00:44 +0200)]
Remove unnecessary typecasting
Michal Sojka [Thu, 13 Sep 2018 21:30:41 +0000 (23:30 +0200)]
Shorten code by using ctx instead of p_htreadctxs.front()
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.
Michal Sojka [Thu, 13 Sep 2018 20:40:32 +0000 (22:40 +0200)]
Use clamp function to clamp variables to a range
Michal Sojka [Thu, 13 Sep 2018 17:18:17 +0000 (19:18 +0200)]
Unify init messages and add FFT size message
Michal Sojka [Thu, 13 Sep 2018 17:11:04 +0000 (19:11 +0200)]
Use fixed format for output numbers
Michal Sojka [Thu, 13 Sep 2018 16:47:58 +0000 (18:47 +0200)]
test: Show logs when not running on Travis CI
Michal Sojka [Thu, 13 Sep 2018 16:27:28 +0000 (18:27 +0200)]
Add book sequence to tests
Michal Sojka [Thu, 13 Sep 2018 16:24:05 +0000 (18:24 +0200)]
Add useful settings into Makefile (as comments)
Michal Sojka [Thu, 13 Sep 2018 15:36:52 +0000 (17:36 +0200)]
Allow CUDA autodetection with cmake < 3.7
Michal Sojka [Thu, 13 Sep 2018 15:01:23 +0000 (17:01 +0200)]
Autodetect CUDA architecture
Michal Sojka [Thu, 13 Sep 2018 04:40:35 +0000 (06:40 +0200)]
Do not require ifdefs when using sqr_norm()
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.
Michal Sojka [Wed, 12 Sep 2018 21:15:37 +0000 (23:15 +0200)]
Simpify init
Michal Sojka [Wed, 12 Sep 2018 21:11:20 +0000 (23:11 +0200)]
Simplify sub_grid_scale
Michal Sojka [Wed, 12 Sep 2018 20:49:58 +0000 (22:49 +0200)]
Remove unnecessary 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
Michal Sojka [Wed, 12 Sep 2018 20:09:56 +0000 (22:09 +0200)]
Use cv::Size for p_roi
Michal Sojka [Wed, 12 Sep 2018 19:55:53 +0000 (21:55 +0200)]
Fix scaling condition
"Or" makes more sense than "and".
Michal Sojka [Wed, 12 Sep 2018 19:54:58 +0000 (21:54 +0200)]
Simplify fit scale computation, cleanup
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).
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.
Michal Sojka [Wed, 12 Sep 2018 12:48:45 +0000 (14:48 +0200)]
Travis complains about long logs
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.
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
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.
Michal Sojka [Wed, 12 Sep 2018 07:59:32 +0000 (09:59 +0200)]
Add automated testing
Michal Sojka [Wed, 12 Sep 2018 05:16:35 +0000 (07:16 +0200)]
Merge README update
Michal Sojka [Wed, 12 Sep 2018 05:14:54 +0000 (07:14 +0200)]
Update README
Michal Sojka [Tue, 11 Sep 2018 23:01:58 +0000 (01:01 +0200)]
Move scale and async_res variables to ThreadCtx
Michal Sojka [Tue, 11 Sep 2018 22:31:25 +0000 (00:31 +0200)]
Change p_threadctxs from list to vector
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.
Michal Sojka [Tue, 11 Sep 2018 19:54:53 +0000 (21:54 +0200)]
Remove useless typecasting
Michal Sojka [Tue, 11 Sep 2018 19:49:12 +0000 (21:49 +0200)]
Reformat
Michal Sojka [Tue, 11 Sep 2018 19:47:35 +0000 (21:47 +0200)]
Improve error message
Michal Sojka [Tue, 11 Sep 2018 19:44:29 +0000 (21:44 +0200)]
clang-format: Always move "if" body to a separate line
Michal Sojka [Tue, 11 Sep 2018 19:38:09 +0000 (21:38 +0200)]
Merge branch 'cuda-streams'
Shanigen [Sun, 9 Sep 2018 17:41:33 +0000 (19:41 +0200)]
Fix clang warnings
Mostly unused variable/function.
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.
Shanigen [Sun, 9 Sep 2018 04:22:34 +0000 (06:22 +0200)]
Correction for CUFFT Big batch OpenMP
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.
Shanigen [Sat, 8 Sep 2018 10:09:19 +0000 (12:09 +0200)]
Corrected warnings in CPU ComplexMat
This fixes #15.
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.
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.
Shanigen [Thu, 6 Sep 2018 10:57:19 +0000 (12:57 +0200)]
Minor CMake correction for CUDA versions
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.
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.
Shanigen [Wed, 5 Sep 2018 12:52:09 +0000 (14:52 +0200)]
Made dynamic memory allocation more readable
Michal Sojka [Sun, 9 Sep 2018 11:23:07 +0000 (13:23 +0200)]
travis: Also Build with clang-5
Michal Sojka [Sun, 9 Sep 2018 09:26:32 +0000 (11:26 +0200)]
travis: Also build with clang-3.8
Michal Sojka [Sun, 9 Sep 2018 07:28:22 +0000 (09:28 +0200)]
travis: Build with -Werror
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.
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.
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)
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.
Michal Sojka [Sat, 8 Sep 2018 07:12:12 +0000 (09:12 +0200)]
Enable Travis CI
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.
Shanigen [Wed, 5 Sep 2018 11:42:32 +0000 (13:42 +0200)]
Changed p_windows_size and windows_size type to cv::Size
Shanigen [Wed, 5 Sep 2018 11:25:49 +0000 (13:25 +0200)]
CUFFT now uses ThreadCtx and also pragmas from pragmas.h
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.
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.
Shanigen [Wed, 5 Sep 2018 10:54:07 +0000 (12:54 +0200)]
Revert "Removed obsolete method set_stream"
This reverts commit
a22c75434c0db289b63de882fc1677108882b445 .