Repository: opencv/opencv_contrib

Issue #2587: CUDA: Hessian computation is not bit-exact
Created: 2020-07-04T14:52:13Z
System information (version)


OpenCV => recent 3.4 ( 49497d8 ) + contrib 3.4 branch ( d3ea23c )
Operating System / Platform => Jetson (Aarch64)
Compiler => GCC 5.4.0 (Jetson TX1, TX2), 7.5.0 (Jetson Nano, Xavier)

Detailed description

Some combinations of test CUDA_Features2D/CUDA_SURF.Detector_Masked fail on Jetson

[  FAILED  ] 32 tests, listed below:
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/0, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/1, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/2, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/3, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/4, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/5, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/6, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/7, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/8, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/9, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/10, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/11, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/12, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/13, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/14, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/15, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/16, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/17, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/18, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/19, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/20, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/21, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/22, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/23, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/24, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/25, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/26, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/27, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/28, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/29, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/30, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/31, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))


The detail of each single error is as following

[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/0, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
/home/nvidia/opencv_contrib/modules/xfeatures2d/test/test_surf.cuda.cpp:133: Failure
Expected equality of these values:
  keypoints_gold.size()
    Which is: 696
  keypoints.size()
    Which is: 697
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/0, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false)) (31 ms)


This error message indicates that the detected # of key points differs between CPU and GPU.
Computation of Hessian has floating point operation and it's not bit-exact


  
    
      opencv_contrib/modules/xfeatures2d/src/surf.cpp
    
    
        Lines 202 to 209
      in
      8c09249
    
  
  
    

        
          
           { 
        

        
          
               float dx  = calcHaarPattern( sum_ptr, Dx , 3 ); 
        

        
          
               float dy  = calcHaarPattern( sum_ptr, Dy , 3 ); 
        

        
          
               float dxy = calcHaarPattern( sum_ptr, Dxy, 4 ); 
        

        
          
               sum_ptr += sampleStep; 
        

        
          
               det_ptr[j] = dx*dy - 0.81f*dxy*dxy; 
        

        
          
               trace_ptr[j] = dx + dy; 
        

        
          
           } 
        
    
  


Steps to reproduce
cmake -DWITH_CUDA
make all
./bin/opencv_test_xfeatures2d --gtest_filter=CUDA_Features2D/CUDA_SURF.Detector_Masked*

How to fix

Technically, it's not realistic to make Hessian computation bit-exact
The other way round is to make the test to tolerate with rounding error
This corresponds to increase the HessianThreshold here


  
    
      opencv_contrib/modules/xfeatures2d/test/test_surf.cuda.cpp
    
    
         Line 175
      in
      8c09249
    
  
  
    

        
          
           testing::Values(SURF_HessianThreshold(100.0), SURF_HessianThreshold(500.0), SURF_HessianThreshold(1000.0)), 
        
    
  



The test has already hard-coded threshold 100, 500 and 1000
Above error message indicates that threshold 100 and 500 requires bit-exactness of Hessian computation.
I'd like to add an ifdef for this hard coded value, so it will keep bit-exact computation for Intel, but not for the other platforms (i.e. Jetson)
I'll send a PR shortly

Issue submission checklist

 I report the issue, it's not a question


 I checked the problem with documentation, FAQ, open issues,
answers.opencv.org, Stack Overflow, etc and have not found solution


 I updated to latest OpenCV version and the issue is still there


 There is reproducer code and related data files: videos, images, onnx, etc

Duplicate issue #3377: CUDA_Features2D/CUDA_SURF.Detector_Masked tests failing
Created: 2022-11-15T13:20:53Z
System information (version)

OpenCV => 4.6.0 (master latest commits as of 14/11/22)
Operating System / Platform => Windows 11 64 Bit and Ubuntu 20.04 LTS
Compiler => Visual Studio 2022 and gcc version 9.4.0
GPU => NVIDIA GeForce RTX 3070 Ti Laptop

Detailed description
The  CUDA_Features2D/CUDA_SURF.Detector_Masked tests are failing with HessianThreshold == 100 and 500.
Steps to reproduce

  opencv_test_xfeatures2d.exe --gtest_filter=CUDA_Features2D/CUDA_SURF.Detector_Masked*
[==========] Running 48 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 48 tests from CUDA_Features2D/CUDA_SURF
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/0, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 696
  keypoints.size()
    Which is: 697
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/0, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false)) (284 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/1, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 696
  keypoints.size()
    Which is: 697
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/1, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true)) (14 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/2, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 696
  keypoints.size()
    Which is: 697
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/2, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false)) (14 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/3, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 696
  keypoints.size()
    Which is: 697
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/3, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true)) (11 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/4, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 812
  keypoints.size()
    Which is: 813
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/4, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false)) (14 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/5, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 812
  keypoints.size()
    Which is: 813
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/5, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/6, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 812
  keypoints.size()
    Which is: 813
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/6, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false)) (16 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/7, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 812
  keypoints.size()
    Which is: 813
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/7, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/8, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 698
  keypoints.size()
    Which is: 699
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/8, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false)) (13 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/9, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 698
  keypoints.size()
    Which is: 699
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/9, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true)) (12 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/10, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 698
  keypoints.size()
    Which is: 699
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/10, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false)) (12 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/11, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 698
  keypoints.size()
    Which is: 699
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/11, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/12, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 814
  keypoints.size()
    Which is: 815
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/12, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false)) (14 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/13, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 814
  keypoints.size()
    Which is: 815
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/13, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true)) (14 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/14, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 814
  keypoints.size()
    Which is: 815
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/14, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false)) (19 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/15, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 814
  keypoints.size()
    Which is: 815
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/15, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/16, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 363
  keypoints.size()
    Which is: 364
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/16, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false)) (11 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/17, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 363
  keypoints.size()
    Which is: 364
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/17, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/18, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 363
  keypoints.size()
    Which is: 364
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/18, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false)) (9 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/19, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 363
  keypoints.size()
    Which is: 364
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/19, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true)) (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/20, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 419
  keypoints.size()
    Which is: 420
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/20, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false)) (11 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/21, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 419
  keypoints.size()
    Which is: 420
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/21, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true)) (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/22, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 419
  keypoints.size()
    Which is: 420
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/22, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/23, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 419
  keypoints.size()
    Which is: 420
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/23, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/24, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 364
  keypoints.size()
    Which is: 365
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/24, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/25, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 364
  keypoints.size()
    Which is: 365
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/25, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true)) (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/26, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 364
  keypoints.size()
    Which is: 365
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/26, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false)) (11 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/27, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 364
  keypoints.size()
    Which is: 365
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/27, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true)) (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/28, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 420
  keypoints.size()
    Which is: 421
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/28, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/29, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 420
  keypoints.size()
    Which is: 421
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/29, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true)) (9 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/30, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 420
  keypoints.size()
    Which is: 421
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/30, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false)) (11 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/31, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
D:\repos\opencv\contrib\modules\xfeatures2d\test\test_surf.cuda.cpp(133): error: Expected equality of these values:
  keypoints_gold.size()
    Which is: 420
  keypoints.size()
    Which is: 421
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/31, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true)) (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/32, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/32 (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/33, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/33 (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/34, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/34 (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/35, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/35 (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/36, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/36 (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/37, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/37 (9 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/38, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/38 (9 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/39, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/39 (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/40, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/40 (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/41, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/41 (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/42, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/42 (9 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/43, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/43 (8 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/44, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/44 (10 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/45, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/45 (9 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/46, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/46 (9 ms)
[ RUN      ] CUDA_Features2D/CUDA_SURF.Detector_Masked/47, where GetParam() = (SURF_HessianThreshold(1000), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[       OK ] CUDA_Features2D/CUDA_SURF.Detector_Masked/47 (10 ms)
[----------] 48 tests from CUDA_Features2D/CUDA_SURF (821 ms total)

[----------] Global test environment tear-down
[==========] 48 tests from 1 test case ran. (822 ms total)
[  PASSED  ] 16 tests.
[  FAILED  ] 32 tests, listed below:
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/0, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/1, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/2, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/3, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/4, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/5, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/6, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/7, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/8, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/9, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/10, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/11, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/12, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/13, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/14, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/15, where GetParam() = (SURF_HessianThreshold(100), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/16, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/17, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/18, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/19, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/20, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/21, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/22, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/23, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(3), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/24, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/25, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/26, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/27, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(2), SURF_Extended(true), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/28, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/29, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(false), SURF_Upright(true))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/30, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(false))
[  FAILED  ] CUDA_Features2D/CUDA_SURF.Detector_Masked/31, where GetParam() = (SURF_HessianThreshold(500), SURF_Octaves(4), SURF_OctaveLayers(3), SURF_Extended(true), SURF_Upright(true))

32 FAILED TESTS


Issue submission checklist

 I report the issue, it's not a question


 I checked the problem with documentation, FAQ, open issues,
forum.opencv.org, Stack Overflow, etc and have not found any solution


 I updated to the latest OpenCV version and the issue is still there


 There is reproducer code and related data files: videos, images, onnx, etc

Closing comment (2023-01-10T11:45:34Z): Kind of duplicate of #2587
The test/API is not bit-exact and that's where the test is crossing the line