Skip to content

Commit eb6d48f

Browse files
committed
features2d: extend perf tests
* add BRISK, KAZE, MSER * run all extract tests on AKAZE keypoints, so that the test si more comparable for the speed of extraction
1 parent 2c49be8 commit eb6d48f

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

modules/features2d/perf/perf_feature2d.cpp

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,18 @@ using std::tr1::get;
1010
FAST_DEFAULT, FAST_20_TRUE_TYPE5_8, FAST_20_TRUE_TYPE7_12, FAST_20_TRUE_TYPE9_16, \
1111
FAST_20_FALSE_TYPE5_8, FAST_20_FALSE_TYPE7_12, FAST_20_FALSE_TYPE9_16, \
1212
\
13-
AGAST_DEFAULT, AGAST_5_8, AGAST_7_12d, AGAST_7_12s, AGAST_OAST_9_16
13+
AGAST_DEFAULT, AGAST_5_8, AGAST_7_12d, AGAST_7_12s, AGAST_OAST_9_16, \
14+
\
15+
MSER_DEFAULT
1416

15-
#define DETECTORS_DESCRIPTORS \
17+
#define DETECTORS_EXTRACTORS \
1618
ORB_DEFAULT, ORB_1500_13_1, \
17-
\
18-
AKAZE_DEFAULT, AKAZE_DESCRIPTOR_KAZE
19+
AKAZE_DEFAULT, AKAZE_DESCRIPTOR_KAZE, \
20+
BRISK_DEFAULT, \
21+
KAZE_DEFAULT
1922

20-
enum { DETECTORS_DESCRIPTORS, DETECTORS_ONLY };
21-
CV_ENUM(Feature2DType, DETECTORS_DESCRIPTORS, DETECTORS_ONLY)
23+
enum { DETECTORS_ONLY, DETECTORS_EXTRACTORS };
24+
CV_ENUM(Feature2DType, DETECTORS_ONLY, DETECTORS_EXTRACTORS)
2225

2326
typedef std::tr1::tuple<Feature2DType, string> Feature2DType_String_t;
2427
typedef perf::TestBaseWithParam<Feature2DType_String_t> feature2d;
@@ -62,6 +65,12 @@ static inline Ptr<Feature2D> getFeature2D(Feature2DType type)
6265
return AKAZE::create();
6366
case AKAZE_DESCRIPTOR_KAZE:
6467
return AKAZE::create(AKAZE::DESCRIPTOR_KAZE);
68+
case BRISK_DEFAULT:
69+
return BRISK::create();
70+
case KAZE_DEFAULT:
71+
return KAZE::create();
72+
case MSER_DEFAULT:
73+
return MSER::create();
6574
default:
6675
return Ptr<Feature2D>();
6776
}
@@ -86,14 +95,15 @@ PERF_TEST_P(feature2d, detect, testing::Combine(Feature2DType::all(), TEST_IMAGE
8695
SANITY_CHECK_NOTHING();
8796
}
8897

89-
PERF_TEST_P(feature2d, extract, testing::Combine(testing::Values(DETECTORS_DESCRIPTORS), TEST_IMAGES))
98+
PERF_TEST_P(feature2d, extract, testing::Combine(testing::Values(DETECTORS_EXTRACTORS), TEST_IMAGES))
9099
{
91-
Ptr<Feature2D> detector = getFeature2D(get<0>(GetParam()));
100+
Ptr<Feature2D> detector = AKAZE::create();
101+
Ptr<Feature2D> extractor = getFeature2D(get<0>(GetParam()));
92102
std::string filename = getDataPath(get<1>(GetParam()));
93103
Mat img = imread(filename, IMREAD_GRAYSCALE);
94104

95105
ASSERT_FALSE(img.empty());
96-
ASSERT_TRUE(detector);
106+
ASSERT_TRUE(extractor);
97107

98108
declare.in(img);
99109
Mat mask;
@@ -104,13 +114,13 @@ PERF_TEST_P(feature2d, extract, testing::Combine(testing::Values(DETECTORS_DESCR
104114

105115
Mat descriptors;
106116

107-
TEST_CYCLE() detector->compute(img, points, descriptors);
117+
TEST_CYCLE() extractor->compute(img, points, descriptors);
108118

109119
EXPECT_EQ((size_t)descriptors.rows, points.size());
110120
SANITY_CHECK_NOTHING();
111121
}
112122

113-
PERF_TEST_P(feature2d, detectAndExtract, testing::Combine(testing::Values(DETECTORS_DESCRIPTORS), TEST_IMAGES))
123+
PERF_TEST_P(feature2d, detectAndExtract, testing::Combine(testing::Values(DETECTORS_EXTRACTORS), TEST_IMAGES))
114124
{
115125
Ptr<Feature2D> detector = getFeature2D(get<0>(GetParam()));
116126
std::string filename = getDataPath(get<1>(GetParam()));

0 commit comments

Comments
 (0)