Fix perf tests in features2d module
This commit is contained in:
parent
95b6a103b5
commit
5047f2d64d
@ -6,17 +6,15 @@ using namespace perf;
|
|||||||
using std::tr1::make_tuple;
|
using std::tr1::make_tuple;
|
||||||
using std::tr1::get;
|
using std::tr1::get;
|
||||||
|
|
||||||
CV_FLAGS(NormType, NORM_L1, NORM_L2, NORM_L2SQR, NORM_HAMMING, NORM_HAMMING2)
|
CV_ENUM(NormType, NORM_L1, NORM_L2, NORM_L2SQR, NORM_HAMMING, NORM_HAMMING2)
|
||||||
CV_ENUM(SourceType, CV_32F, CV_8U)
|
|
||||||
CV_ENUM(DestinationType, CV_32F, CV_32S)
|
|
||||||
|
|
||||||
typedef std::tr1::tuple<NormType, DestinationType, bool> Norm_Destination_CrossCheck_t;
|
typedef std::tr1::tuple<NormType, MatType, bool> Norm_Destination_CrossCheck_t;
|
||||||
typedef perf::TestBaseWithParam<Norm_Destination_CrossCheck_t> Norm_Destination_CrossCheck;
|
typedef perf::TestBaseWithParam<Norm_Destination_CrossCheck_t> Norm_Destination_CrossCheck;
|
||||||
|
|
||||||
typedef std::tr1::tuple<NormType, bool> Norm_CrossCheck_t;
|
typedef std::tr1::tuple<NormType, bool> Norm_CrossCheck_t;
|
||||||
typedef perf::TestBaseWithParam<Norm_CrossCheck_t> Norm_CrossCheck;
|
typedef perf::TestBaseWithParam<Norm_CrossCheck_t> Norm_CrossCheck;
|
||||||
|
|
||||||
typedef std::tr1::tuple<SourceType, bool> Source_CrossCheck_t;
|
typedef std::tr1::tuple<MatType, bool> Source_CrossCheck_t;
|
||||||
typedef perf::TestBaseWithParam<Source_CrossCheck_t> Source_CrossCheck;
|
typedef perf::TestBaseWithParam<Source_CrossCheck_t> Source_CrossCheck;
|
||||||
|
|
||||||
void generateData( Mat& query, Mat& train, const int sourceType );
|
void generateData( Mat& query, Mat& train, const int sourceType );
|
||||||
@ -29,27 +27,25 @@ PERF_TEST_P(Norm_Destination_CrossCheck, batchDistance_8U,
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
NormType normType = get<0>(GetParam());
|
NormType normType = get<0>(GetParam());
|
||||||
DestinationType destinationType = get<1>(GetParam());
|
int destinationType = get<1>(GetParam());
|
||||||
bool isCrossCheck = get<2>(GetParam());
|
bool isCrossCheck = get<2>(GetParam());
|
||||||
|
int knn = isCrossCheck ? 1 : 0;
|
||||||
|
|
||||||
Mat queryDescriptors;
|
Mat queryDescriptors;
|
||||||
Mat trainDescriptors;
|
Mat trainDescriptors;
|
||||||
Mat dist;
|
Mat dist;
|
||||||
Mat ndix;
|
Mat ndix;
|
||||||
int knn = 1;
|
|
||||||
|
|
||||||
generateData(queryDescriptors, trainDescriptors, CV_8U);
|
generateData(queryDescriptors, trainDescriptors, CV_8U);
|
||||||
if(!isCrossCheck)
|
|
||||||
{
|
|
||||||
knn = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare.time(30);
|
|
||||||
TEST_CYCLE()
|
TEST_CYCLE()
|
||||||
{
|
{
|
||||||
batchDistance(queryDescriptors, trainDescriptors, dist, destinationType, (isCrossCheck) ? ndix : noArray(),
|
batchDistance(queryDescriptors, trainDescriptors, dist, destinationType, (isCrossCheck) ? ndix : noArray(),
|
||||||
normType, knn, Mat(), 0, isCrossCheck);
|
normType, knn, Mat(), 0, isCrossCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SANITY_CHECK(dist);
|
||||||
|
if (isCrossCheck) SANITY_CHECK(ndix);
|
||||||
}
|
}
|
||||||
|
|
||||||
PERF_TEST_P(Norm_CrossCheck, batchDistance_Dest_32S,
|
PERF_TEST_P(Norm_CrossCheck, batchDistance_Dest_32S,
|
||||||
@ -60,25 +56,23 @@ PERF_TEST_P(Norm_CrossCheck, batchDistance_Dest_32S,
|
|||||||
{
|
{
|
||||||
NormType normType = get<0>(GetParam());
|
NormType normType = get<0>(GetParam());
|
||||||
bool isCrossCheck = get<1>(GetParam());
|
bool isCrossCheck = get<1>(GetParam());
|
||||||
|
int knn = isCrossCheck ? 1 : 0;
|
||||||
|
|
||||||
Mat queryDescriptors;
|
Mat queryDescriptors;
|
||||||
Mat trainDescriptors;
|
Mat trainDescriptors;
|
||||||
Mat dist;
|
Mat dist;
|
||||||
Mat ndix;
|
Mat ndix;
|
||||||
int knn = 1;
|
|
||||||
|
|
||||||
generateData(queryDescriptors, trainDescriptors, CV_8U);
|
generateData(queryDescriptors, trainDescriptors, CV_8U);
|
||||||
if(!isCrossCheck)
|
|
||||||
{
|
|
||||||
knn = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare.time(30);
|
|
||||||
TEST_CYCLE()
|
TEST_CYCLE()
|
||||||
{
|
{
|
||||||
batchDistance(queryDescriptors, trainDescriptors, dist, CV_32S, (isCrossCheck) ? ndix : noArray(),
|
batchDistance(queryDescriptors, trainDescriptors, dist, CV_32S, (isCrossCheck) ? ndix : noArray(),
|
||||||
normType, knn, Mat(), 0, isCrossCheck);
|
normType, knn, Mat(), 0, isCrossCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SANITY_CHECK(dist);
|
||||||
|
if (isCrossCheck) SANITY_CHECK(ndix);
|
||||||
}
|
}
|
||||||
|
|
||||||
PERF_TEST_P(Source_CrossCheck, batchDistance_L2,
|
PERF_TEST_P(Source_CrossCheck, batchDistance_L2,
|
||||||
@ -87,27 +81,25 @@ PERF_TEST_P(Source_CrossCheck, batchDistance_L2,
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
SourceType sourceType = get<0>(GetParam());
|
int sourceType = get<0>(GetParam());
|
||||||
bool isCrossCheck = get<1>(GetParam());
|
bool isCrossCheck = get<1>(GetParam());
|
||||||
|
int knn = isCrossCheck ? 1 : 0;
|
||||||
|
|
||||||
Mat queryDescriptors;
|
Mat queryDescriptors;
|
||||||
Mat trainDescriptors;
|
Mat trainDescriptors;
|
||||||
Mat dist;
|
Mat dist;
|
||||||
Mat ndix;
|
Mat ndix;
|
||||||
int knn = 1;
|
|
||||||
|
|
||||||
generateData(queryDescriptors, trainDescriptors, sourceType);
|
generateData(queryDescriptors, trainDescriptors, sourceType);
|
||||||
if(!isCrossCheck)
|
|
||||||
{
|
|
||||||
knn = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare.time(30);
|
|
||||||
TEST_CYCLE()
|
TEST_CYCLE()
|
||||||
{
|
{
|
||||||
batchDistance(queryDescriptors, trainDescriptors, dist, CV_32F, (isCrossCheck) ? ndix : noArray(),
|
batchDistance(queryDescriptors, trainDescriptors, dist, CV_32F, (isCrossCheck) ? ndix : noArray(),
|
||||||
NORM_L2, knn, Mat(), 0, isCrossCheck);
|
NORM_L2, knn, Mat(), 0, isCrossCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SANITY_CHECK(dist);
|
||||||
|
if (isCrossCheck) SANITY_CHECK(ndix);
|
||||||
}
|
}
|
||||||
|
|
||||||
PERF_TEST_P(Norm_CrossCheck, batchDistance_32F,
|
PERF_TEST_P(Norm_CrossCheck, batchDistance_32F,
|
||||||
@ -118,25 +110,23 @@ PERF_TEST_P(Norm_CrossCheck, batchDistance_32F,
|
|||||||
{
|
{
|
||||||
NormType normType = get<0>(GetParam());
|
NormType normType = get<0>(GetParam());
|
||||||
bool isCrossCheck = get<1>(GetParam());
|
bool isCrossCheck = get<1>(GetParam());
|
||||||
|
int knn = isCrossCheck ? 1 : 0;
|
||||||
|
|
||||||
Mat queryDescriptors;
|
Mat queryDescriptors;
|
||||||
Mat trainDescriptors;
|
Mat trainDescriptors;
|
||||||
Mat dist;
|
Mat dist;
|
||||||
Mat ndix;
|
Mat ndix;
|
||||||
int knn = 1;
|
|
||||||
|
|
||||||
generateData(queryDescriptors, trainDescriptors, CV_32F);
|
generateData(queryDescriptors, trainDescriptors, CV_32F);
|
||||||
if(!isCrossCheck)
|
|
||||||
{
|
|
||||||
knn = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare.time(30);
|
|
||||||
TEST_CYCLE()
|
TEST_CYCLE()
|
||||||
{
|
{
|
||||||
batchDistance(queryDescriptors, trainDescriptors, dist, CV_32F, (isCrossCheck) ? ndix : noArray(),
|
batchDistance(queryDescriptors, trainDescriptors, dist, CV_32F, (isCrossCheck) ? ndix : noArray(),
|
||||||
normType, knn, Mat(), 0, isCrossCheck);
|
normType, knn, Mat(), 0, isCrossCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SANITY_CHECK(dist);
|
||||||
|
if (isCrossCheck) SANITY_CHECK(ndix);
|
||||||
}
|
}
|
||||||
|
|
||||||
void generateData( Mat& query, Mat& train, const int sourceType )
|
void generateData( Mat& query, Mat& train, const int sourceType )
|
||||||
|
@ -35,6 +35,6 @@ PERF_TEST_P(fast, detect, testing::Combine(
|
|||||||
|
|
||||||
TEST_CYCLE() fd.detect(frame, points);
|
TEST_CYCLE() fd.detect(frame, points);
|
||||||
|
|
||||||
SANITY_CHECK(points);
|
SANITY_CHECK_KEYPOINTS(points);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,8 @@ PERF_TEST_P(orb, detect, testing::Values(ORB_IMAGES))
|
|||||||
vector<KeyPoint> points;
|
vector<KeyPoint> points;
|
||||||
|
|
||||||
TEST_CYCLE() detector(frame, mask, points);
|
TEST_CYCLE() detector(frame, mask, points);
|
||||||
|
|
||||||
|
SANITY_CHECK_KEYPOINTS(points);
|
||||||
}
|
}
|
||||||
|
|
||||||
PERF_TEST_P(orb, extract, testing::Values(ORB_IMAGES))
|
PERF_TEST_P(orb, extract, testing::Values(ORB_IMAGES))
|
||||||
@ -46,6 +48,8 @@ PERF_TEST_P(orb, extract, testing::Values(ORB_IMAGES))
|
|||||||
Mat descriptors;
|
Mat descriptors;
|
||||||
|
|
||||||
TEST_CYCLE() detector(frame, mask, points, descriptors, true);
|
TEST_CYCLE() detector(frame, mask, points, descriptors, true);
|
||||||
|
|
||||||
|
SANITY_CHECK(descriptors);
|
||||||
}
|
}
|
||||||
|
|
||||||
PERF_TEST_P(orb, full, testing::Values(ORB_IMAGES))
|
PERF_TEST_P(orb, full, testing::Values(ORB_IMAGES))
|
||||||
@ -64,4 +68,7 @@ PERF_TEST_P(orb, full, testing::Values(ORB_IMAGES))
|
|||||||
Mat descriptors;
|
Mat descriptors;
|
||||||
|
|
||||||
TEST_CYCLE() detector(frame, mask, points, descriptors, false);
|
TEST_CYCLE() detector(frame, mask, points, descriptors, false);
|
||||||
|
|
||||||
|
SANITY_CHECK_KEYPOINTS(points);
|
||||||
|
SANITY_CHECK(descriptors);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user