Perf testing: added ERROR_RELATIVE mode to SANITY_CHECK

This commit is contained in:
Andrey Kamaev
2011-12-28 14:59:09 +00:00
parent fb051f78de
commit 58b980ea88
4 changed files with 146 additions and 34 deletions

View File

@@ -52,14 +52,12 @@ PERF_TEST_P__CORE_ARITHM(add, TYPICAL_MATS_CORE_ARITHM)
PERF_TEST_P__CORE_ARITHM(subtract, TYPICAL_MATS_CORE_ARITHM)
PERF_TEST_P__CORE_ARITHM(min, TYPICAL_MATS_CORE_ARITHM)
PERF_TEST_P__CORE_ARITHM(max, TYPICAL_MATS_CORE_ARITHM)
PERF_TEST_P__CORE_ARITHM(absdiff, TYPICAL_MATS_CORE_ARITHM)
PERF_TEST_P__CORE_ARITHM_SCALAR(bitwise_and, TYPICAL_MATS_BITW_ARITHM)
PERF_TEST_P__CORE_ARITHM_SCALAR(bitwise_or, TYPICAL_MATS_BITW_ARITHM)
PERF_TEST_P__CORE_ARITHM_SCALAR(bitwise_xor, TYPICAL_MATS_BITW_ARITHM)
PERF_TEST_P__CORE_ARITHM_SCALAR(add, TYPICAL_MATS_CORE_ARITHM)
PERF_TEST_P__CORE_ARITHM_SCALAR(subtract, TYPICAL_MATS_CORE_ARITHM)
PERF_TEST_P__CORE_ARITHM_SCALAR(absdiff, TYPICAL_MATS_CORE_ARITHM)
#ifdef ANDROID
PERF_TEST(convert, cvRound)
@@ -75,3 +73,41 @@ PERF_TEST(convert, cvRound)
}
}
#endif
PERF_TEST_P(Size_MatType, core_arithm__absdiff, TYPICAL_MATS_CORE_ARITHM)
{
Size sz = std::tr1::get<0>(GetParam());
int type = std::tr1::get<1>(GetParam());
cv::Mat a = Mat(sz, type);
cv::Mat b = Mat(sz, type);
cv::Mat c = Mat(sz, type);
declare.in(a, b, WARMUP_RNG)
.out(c);
TEST_CYCLE(100) absdiff(a,b, c);
#if CV_SSE2 //see ticket 1529: absdiff can be without saturation if SSE is enabled
if (CV_MAT_DEPTH(type) != CV_32S)
#endif
SANITY_CHECK(c, 1e-8);
}
PERF_TEST_P(Size_MatType, core_arithm__absdiff__Scalar, TYPICAL_MATS_CORE_ARITHM)
{
Size sz = std::tr1::get<0>(GetParam());
int type = std::tr1::get<1>(GetParam());
cv::Mat a = Mat(sz, type);
cv::Scalar b;
cv::Mat c = Mat(sz, type);
declare.in(a, b, WARMUP_RNG)
.out(c);
TEST_CYCLE(100) absdiff(a,b, c);
#if CV_SSE2 //see ticket 1529: absdiff can be without saturation if SSE is enabled
if (CV_MAT_DEPTH(type) != CV_32S)
#endif
SANITY_CHECK(c, 1e-8);
}

View File

@@ -21,7 +21,7 @@ PERF_TEST_P( Size_MatType, sum, TYPICAL_MATS )
TEST_CYCLE(100) { s = sum(arr); }
SANITY_CHECK(s, 1e-6);
SANITY_CHECK(s, 1e-6, ERROR_RELATIVE);
}
@@ -89,7 +89,7 @@ PERF_TEST_P( Size_MatType_NormType, norm,
TEST_CYCLE(100) { n = norm(src1, normType); }
SANITY_CHECK(n, 1e-5);
SANITY_CHECK(n, 1e-6, ERROR_RELATIVE);
}
@@ -116,7 +116,7 @@ PERF_TEST_P( Size_MatType_NormType, norm_mask,
TEST_CYCLE(100) { n = norm(src1, normType, mask); }
SANITY_CHECK(n, 1e-5);
SANITY_CHECK(n, 1e-6, ERROR_RELATIVE);
}
@@ -143,7 +143,7 @@ PERF_TEST_P( Size_MatType_NormType, norm2,
TEST_CYCLE(100) { n = norm(src1, src2, normType); }
SANITY_CHECK(n, 1e-5);
SANITY_CHECK(n, 1e-5, ERROR_RELATIVE);
}
@@ -171,7 +171,7 @@ PERF_TEST_P( Size_MatType_NormType, norm2_mask,
TEST_CYCLE(100) { n = norm(src1, src2, normType, mask); }
SANITY_CHECK(n, 1e-5);
SANITY_CHECK(n, 1e-5, ERROR_RELATIVE);
}
@@ -258,8 +258,8 @@ PERF_TEST_P( Size_MatType_NormType, normalize_32f,
declare.in(src, WARMUP_RNG).out(dst);
TEST_CYCLE(100) { normalize(src, dst, alpha, 0., normType, CV_32F); }
SANITY_CHECK(dst, 1e-6);
SANITY_CHECK(dst, 1e-6, ERROR_RELATIVE);
}
@@ -404,7 +404,7 @@ PERF_TEST_P( Size_MatType_ROp, reduceR,
TEST_CYCLE(100) { reduce(src, vec, 0, reduceOp, ddepth); }
SANITY_CHECK(vec);
SANITY_CHECK(vec, 1);
}
/*
@@ -431,6 +431,6 @@ PERF_TEST_P( Size_MatType_ROp, reduceC,
declare.in(src, WARMUP_RNG);
TEST_CYCLE(100) { reduce(src, vec, 1, reduceOp, ddepth); }
SANITY_CHECK(vec);
SANITY_CHECK(vec, 1);
}