]>
rtime.felk.cvut.cz Git - hercules2020/kcf.git/log
Michal Sojka [Wed, 19 Sep 2018 21:27:19 +0000 (23:27 +0200)]
Fix FFT classes compilation errors
Michal Sojka [Wed, 19 Sep 2018 21:09:22 +0000 (23:09 +0200)]
Make debug prints work outside of KCF_Tracker class
Michal Sojka [Wed, 19 Sep 2018 21:08:48 +0000 (23:08 +0200)]
Fix warnings
Michal Sojka [Wed, 19 Sep 2018 21:01:36 +0000 (23:01 +0200)]
Factor finding of maximum response to a function
Michal Sojka [Wed, 19 Sep 2018 21:00:41 +0000 (23:00 +0200)]
Unify GaussianCorrelation constructor
Michal Sojka [Wed, 19 Sep 2018 20:21:46 +0000 (22:21 +0200)]
cufft big batch compiles
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)
Shanigen [Wed, 19 Sep 2018 15:25:47 +0000 (17:25 +0200)]
Correcting CUFFT compilation errors.
Michal Sojka [Wed, 19 Sep 2018 14:30:42 +0000 (16:30 +0200)]
Add convenience ComplexMat constructors + code updates
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.
Michal Sojka [Wed, 19 Sep 2018 10:53:00 +0000 (12:53 +0200)]
fft: Implement assertions in the base class
Michal Sojka [Wed, 19 Sep 2018 10:49:25 +0000 (12:49 +0200)]
MatDynMem: Add move constructor
Michal Sojka [Wed, 19 Sep 2018 08:39:13 +0000 (10:39 +0200)]
Refactor image resizing out of ::track to make it shorter
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.
Michal Sojka [Wed, 19 Sep 2018 07:22:51 +0000 (09:22 +0200)]
DynMem: Replace hardcoded float in template class with template type
Michal Sojka [Wed, 19 Sep 2018 07:21:30 +0000 (09:21 +0200)]
Allow copying DynMem
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.