Commit Graph

32 Commits

Author SHA1 Message Date
Hamdi Sahloul
5d54def264 Add semicolons after CV_INSTRUMENT macros 2018-09-14 06:45:31 +09:00
luz.paz
d05714995c Misc. modules/ cont. pt2
Found via `codespell`
2018-02-13 11:28:11 -05:00
Vadim Pisarevsky
e70b75b51a Merge pull request #8820 from woodychow:multithread_sift_findScaleSpaceExtrema 2017-09-20 12:03:25 +00:00
Jiri Horner
bb6496d9e5 Merge pull request #8951 from hrnr:akaze_part2
[GSOC] Speeding-up AKAZE, part #2 (#8951)

* feature2d: instrument more functions used in AKAZE

* rework Compute_Determinant_Hessian_Response

* this takes 84% of time of Feature_Detection
* run everything in parallel
* compute Scharr kernels just once
* compute sigma more efficiently
* allocate all matrices in evolution without zeroing

* features2d: add one bigger image to tests

* now test have images: 600x768, 900x600 and 1385x700 to cover different resolutions

* explicitly zero Lx and Ly

* add Lflow and Lstep to evolution as in original AKAZE code

* reworked computing keypoints orientation

integrated faster function from https://github.com/h2suzuki/fast_akaze

* use standard fastAtan2 instead of getAngle

* compute keypoints orientation in parallel

* fix visual studio warnings

* replace some wrapped functions with direct calls to OpenCV functions

* improved readability for people familiar with opencv
* do not same image twice in base level

* rework diffusity stencil

* use one pass stencil for diffusity from https://github.com/h2suzuki/fast_akaze
* improve locality in Create_Scale_Space

* always compute determinat od hessian and spacial derivatives

* this needs to be computed always as we need derivatives while computing descriptors
* fixed tests of AKAZE with KAZE descriptors which have been affected by this

Currently it computes all first and second order derivatives together and the determiant of the hessian. For descriptors it would be enough to compute just first order derivates, but it is not probably worth it optimize for scenario where descriptors and keypoints are computed separately, since it is already very inefficient. When computing keypoint and descriptors together it is faster to do it the current way (preserves locality).

* parallelize non linear diffusion computation

* do multiplication right in the nlp diffusity kernel

* rework kfactor computation

* get rid of sharing buffers when creating scale space pyramid, the performace impact is neglegible

* features2d: initialize TBB scheduler in perf tests

* ensures more stable output
* more reasonable profiles, since the first call of parallel_for_ is not getting big performace hit

* compute_kfactor: interleave finding of maximum and computing distance

* no need to go twice through the data

* start to use UMats in AKAZE to leverage OpenCl in the future

* fixed bug that prevented computing determinant for scale pyramid of size 1 (just the base image)
* all descriptors now support writing to uninitialized memory
* use InputArray and OutputArray for input image and descriptors, allows to make use UMAt that user passes to us

* enable use of all existing ocl paths in AKAZE

* all parts that uses ocl-enabled functions should use ocl by now

* imgproc: fix dispatching of IPP version when OCL is disabled

* when OCL is disabled IPP version should be always prefered (even when the dst is UMat)

* get rid of copy in DeterminantHessian response

* this slows CPU version considerably
* do no run in parallel when running with OCL

* store derivations as UMat in pyramid

* enables OCL path computing of determint hessian
* will allow to compute descriptors on GPU in the future

* port diffusivity to OCL

* diffusivity itself is not a blocker, but this saves us downloading and uploading derivations

* implement kernel for nonlinear scalar diffusion step

* download the pyramid from GPU just once

we don't want to downlaod matrices ad hoc from gpu when the function in AKAZE needs it. There is a HUGE mapping overhead and without shared memory support a LOT of unnecessary transfers.

This maps/downloads matrices just once.

* fix bug with uninitialized values in non linear diffusion

* this was causing spurious segfaults in stitching tests due to propagation of NaNs
* added new test, which checks for NaNs (added new debug asserts for NaNs)
* valgrind now says everything is ok

* add nonlinear diffusion step OCL implementation

* Lt in pyramid changed to UMat, it will be downlaoded from GPU along with Lx, Ly
* fix bug in pm_g2 kernel. OpenCV mangles dimensions passed to OpenCL, so we need to check for boundaries in each OCL kernel.

* port computing of determinant to OCL

* computing of determinant is not a blocker, but with this change we don't need to download all spatial derivatives to CPU, we only download determinant
* make Ldet in the pyramid UMat, download it from CPU together with the other parts of the pyramid
* add profiling macros

* fix visual studio warning

* instrument non_linear_diffusion

* remove changes I have made to TEvolution

* TEvolution is used only in KAZE now

* Revert "features2d: initialize TBB scheduler in perf tests"

This reverts commit ba81e2a711.
2017-08-01 12:46:01 +00:00
Woody Chow
5a4f2b5d27 Add function to sort keypoints that are calculated in parallel to ensure stable output 2017-05-29 17:59:20 +09:00
Andrey Kamaev
67073daf19 Merge branch '2.4' 2013-04-05 21:11:59 +04:00
Vladislav Vinogradov
3d095ccc82 fixed condition in KeyPointsFilter::retainBest 2013-04-01 11:53:43 +04:00
Andrey Kamaev
49f6dad13f Move cv::KeyPoint and cv::DMatch to core 2013-03-26 16:08:43 +04:00
Andrey Kamaev
be7bbe3aa9 Drop cv:: prefix from cv::String used inside the cv namespace 2013-03-22 22:14:50 +04:00
Andrey Kamaev
762aefd71b Compile opencv_test_core with cv::String instead of std::string
All tests passed!
2013-03-22 22:14:22 +04:00
Andrey Kamaev
2a6fb2867e Remove all using directives for STL namespace and members
Made all STL usages explicit to be able automatically find all usages of
particular class or function.
2013-02-25 15:04:17 +04:00
Andrey Kamaev
9944282b09 Fix build with STLPort from NDK r8d 2012-12-22 00:59:56 +04:00
OpenCV Buildbot
04384a71e4 Normalize line endings and whitespace 2012-10-17 15:32:23 +04:00
Andrey Kamaev
bd0e0b5800 Merged the trunk r8589:8653 - all changes related to build warnings 2012-06-15 13:04:17 +00:00
Vadim Pisarevsky
957e80abbd lot's of changes; nonfree & photo modules added; SIFT & SURF -> nonfree module; Inpainting -> photo; refactored features2d (ORB is still failing tests), optimized brute-force matcher and made it non-template. 2012-03-15 14:36:01 +00:00
Andrey Kamaev
21a4a06d8a Fixed bug in KeyPointsFilter::runByImageBorder; added ROI adjustment to ORB 2011-10-21 08:38:47 +00:00
Vadim Pisarevsky
3f40a1d8c3 fixed KeyPoint::convert(keypoints,point2f) (ticket #1282; thanks to cooperz for the patch) 2011-08-06 19:42:29 +00:00
Maria Dimashova
cd2f3786f0 removed duplicated check 2011-06-06 12:07:15 +00:00
Maria Dimashova
035fd0019b replaced SIFT implementation (Some default parameters can be changed in the near future) 2011-05-31 18:18:02 +00:00
Vadim Pisarevsky
af2af3af9b added KeyPoint::hash() (ticket #1100) 2011-05-31 14:24:45 +00:00
Maria Dimashova
66c116ec6a fixed #1044 2011-05-05 10:10:46 +00:00
Maria Dimashova
b9662e099c added the filtering of keypoints having zero size (#877) 2011-05-01 17:38:52 +00:00
Maria Dimashova
97f2972fc0 uncommented fix of write/read keypoints 2010-09-17 12:32:57 +00:00
Maria Dimashova
912f8ff34c commented fix write/read keypoints temporarily 2010-09-15 13:57:13 +00:00
Maria Dimashova
b8753db512 merged fix of write/read keypoints from branch 2010-09-15 12:14:35 +00:00
Maria Dimashova
4395bad911 fixed linker errors on Win and some warnings 2010-08-05 13:29:43 +00:00
Maria Dimashova
f6c8e237f0 fixed compile error on VS2008 2010-07-30 14:36:04 +00:00
Maria Dimashova
5e84ab0222 replaced KeyPoint::overlap implementation by faster version (thanks to Suat Gedikli) 2010-07-30 14:21:55 +00:00
Maria Dimashova
cdbf1f9ef5 fixed compile errors on VS 2008 2010-07-28 12:14:21 +00:00
Maria Dimashova
fb2a4a8345 added method to compute overlap for KeyPoint pair 2010-07-28 10:47:48 +00:00
Maria Dimashova
400eb37189 added parameter keypointIndexes to KeyPoint::convert, updated sample 2010-06-15 15:19:11 +00:00
Vadim Pisarevsky
127d6649a1 "atomic bomb" commit. Reorganized OpenCV directory structure 2010-05-11 17:44:00 +00:00