1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-29 07:13:02 +04:00

5 Commits

Author SHA1 Message Date
Anand Mahesh 4acd2ed6cc features2d: add OpenCL acceleration for BFMatcher cross-check
BFMatcher::match() with crossCheck=true previously skipped the OCL
dispatch in knnMatchImpl entirely, falling back to CPU even when UMat
inputs and an OpenCL device were available. This adds
ocl_matchWithCrossCheck() for CV_32FC1 descriptors (e.g. SIFT, SURF):
both the forward and reverse nearest-neighbour passes run on the GPU
via the existing ocl_matchSingle() kernel, then the cross-check filter
runs on the CPU. Only two small index arrays (1×N ints) are downloaded
— the O(N²×D) distance work stays on the device.

The OCL dispatch in knnMatchImpl is also refactored to unify the
Mat/UMat train collection selection before branching on crossCheck.

On a NVIDIA RTX 3060 with SIFT descriptors the OCL path is 6–9×
faster than CPU at 2k–10k features per image. Binary descriptors
(ORB, BRIEF — CV_8U) are unaffected; the existing type guard in
ocl_matchSingle keeps them on the CPU path as before.

Also adds a correctness test (Features2d_BFMatcher_CrossCheck) and an
OCL perf test (BruteForceMatcherFixture/MatchCrossCheck).
2026-03-29 21:45:08 +05:30
Alexander Alekhin 4a297a2443 ts: refactor OpenCV tests
- removed tr1 usage (dropped in C++17)
- moved includes of vector/map/iostream/limits into ts.hpp
- require opencv_test + anonymous namespace (added compile check)
- fixed norm() usage (must be from cvtest::norm for checks) and other conflict functions
- added missing license headers
2018-02-03 19:39:47 +00:00
Alexander Alekhin 55188fe991 world fix 2014-08-05 20:12:35 +04:00
Ilya Lavrenov b47bec2ed0 performance tests for ORB 2014-03-13 23:30:02 +04:00
Konstantin Matskevich 133f91f3f2 added perf test 2014-01-23 07:51:19 +04:00