~paparazzi-uav/paparazzi/v5.0-manual

« back to all changes in this revision

Viewing changes to sw/ext/opencv_bebop/opencv/modules/features2d/perf/opencl/perf_orb.cpp

  • Committer: Paparazzi buildbot
  • Date: 2016-05-18 15:00:29 UTC
  • Revision ID: felix.ruess+docbot@gmail.com-20160518150029-e8lgzi5kvb4p7un9
Manual import commit 4b8bbb730080dac23cf816b98908dacfabe2a8ec from v5.0 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "../perf_precomp.hpp"
 
2
#include "opencv2/ts/ocl_perf.hpp"
 
3
 
 
4
#ifdef HAVE_OPENCL
 
5
 
 
6
namespace cvtest {
 
7
namespace ocl {
 
8
 
 
9
typedef ::perf::TestBaseWithParam<std::string> ORBFixture;
 
10
 
 
11
#define ORB_IMAGES OCL_PERF_ENUM("cv/detectors_descriptors_evaluation/images_datasets/leuven/img1.png", "stitching/a3.png")
 
12
 
 
13
OCL_PERF_TEST_P(ORBFixture, ORB_Detect, ORB_IMAGES)
 
14
{
 
15
    string filename = getDataPath(GetParam());
 
16
    Mat mframe = imread(filename, IMREAD_GRAYSCALE);
 
17
 
 
18
    if (mframe.empty())
 
19
        FAIL() << "Unable to load source image " << filename;
 
20
 
 
21
    UMat frame, mask;
 
22
    mframe.copyTo(frame);
 
23
 
 
24
    declare.in(frame);
 
25
    Ptr<ORB> detector = ORB::create(1500, 1.3f, 1);
 
26
    vector<KeyPoint> points;
 
27
 
 
28
    OCL_TEST_CYCLE() detector->detect(frame, points, mask);
 
29
 
 
30
    std::sort(points.begin(), points.end(), comparators::KeypointGreater());
 
31
    SANITY_CHECK_KEYPOINTS(points, 1e-5);
 
32
}
 
33
 
 
34
OCL_PERF_TEST_P(ORBFixture, ORB_Extract, ORB_IMAGES)
 
35
{
 
36
    string filename = getDataPath(GetParam());
 
37
    Mat mframe = imread(filename, IMREAD_GRAYSCALE);
 
38
 
 
39
    if (mframe.empty())
 
40
        FAIL() << "Unable to load source image " << filename;
 
41
 
 
42
    UMat mask, frame;
 
43
    mframe.copyTo(frame);
 
44
 
 
45
    declare.in(frame);
 
46
 
 
47
    Ptr<ORB> detector = ORB::create(1500, 1.3f, 1);
 
48
    vector<KeyPoint> points;
 
49
    detector->detect(frame, points, mask);
 
50
    std::sort(points.begin(), points.end(), comparators::KeypointGreater());
 
51
 
 
52
    UMat descriptors;
 
53
 
 
54
    OCL_TEST_CYCLE() detector->compute(frame, points, descriptors);
 
55
 
 
56
    SANITY_CHECK(descriptors);
 
57
}
 
58
 
 
59
OCL_PERF_TEST_P(ORBFixture, ORB_Full, ORB_IMAGES)
 
60
{
 
61
    string filename = getDataPath(GetParam());
 
62
    Mat mframe = imread(filename, IMREAD_GRAYSCALE);
 
63
 
 
64
    double desc_eps = 1e-6;
 
65
#ifdef ANDROID
 
66
    if (cv::ocl::Device::getDefault().isNVidia())
 
67
        desc_eps = 2;
 
68
#endif
 
69
 
 
70
    if (mframe.empty())
 
71
        FAIL() << "Unable to load source image " << filename;
 
72
 
 
73
    UMat mask, frame;
 
74
    mframe.copyTo(frame);
 
75
 
 
76
    declare.in(frame);
 
77
    Ptr<ORB> detector = ORB::create(1500, 1.3f, 1);
 
78
 
 
79
    vector<KeyPoint> points;
 
80
    UMat descriptors;
 
81
 
 
82
    OCL_TEST_CYCLE() detector->detectAndCompute(frame, mask, points, descriptors, false);
 
83
 
 
84
    ::perf::sort(points, descriptors);
 
85
    SANITY_CHECK_KEYPOINTS(points, 1e-5);
 
86
    SANITY_CHECK(descriptors, desc_eps);
 
87
}
 
88
 
 
89
} // ocl
 
90
} // cvtest
 
91
 
 
92
#endif // HAVE_OPENCL