From b32fbe72f6f619c074f504e70e52e8bc5efdc984 Mon Sep 17 00:00:00 2001 From: vbystricky Date: Thu, 19 Jun 2014 17:07:09 +0400 Subject: [PATCH 1/4] Add peromance tests for OCL integral sum of square --- modules/imgproc/perf/opencl/perf_imgproc.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/imgproc/perf/opencl/perf_imgproc.cpp b/modules/imgproc/perf/opencl/perf_imgproc.cpp index 71449872f7..2d9e20b24b 100644 --- a/modules/imgproc/perf/opencl/perf_imgproc.cpp +++ b/modules/imgproc/perf/opencl/perf_imgproc.cpp @@ -234,6 +234,23 @@ OCL_PERF_TEST_P(IntegralFixture, Integral1, ::testing::Combine(OCL_TEST_SIZES, O SANITY_CHECK(dst, 1e-6, ERROR_RELATIVE); } +OCL_PERF_TEST_P(IntegralFixture, Integral2, ::testing::Combine(OCL_TEST_SIZES, OCL_PERF_ENUM(CV_32S, CV_32F))) +{ + const IntegralParams params = GetParam(); + const Size srcSize = get<0>(params); + const int ddepth = get<1>(params); + + checkDeviceMaxMemoryAllocSize(srcSize, ddepth); + + UMat src(srcSize, CV_8UC1), sum(srcSize + Size(1, 1), ddepth), sqsum(srcSize + Size(1, 1), ddepth); + declare.in(src, WARMUP_RNG).out(sum).out(sqsum); + + OCL_TEST_CYCLE() cv::integral(src, sum, sqsum, ddepth, ddepth); + + SANITY_CHECK(sum, 2e-6, ERROR_RELATIVE); + SANITY_CHECK(sqsum, 2e-6, ERROR_RELATIVE); +} + ///////////// Threshold //////////////////////// CV_ENUM(ThreshType, THRESH_BINARY, THRESH_BINARY_INV, THRESH_TRUNC, THRESH_TOZERO_INV) From 6d6ad1b1d9d71751160eadc8c10609c084fa6783 Mon Sep 17 00:00:00 2001 From: vbystricky Date: Thu, 19 Jun 2014 17:45:04 +0400 Subject: [PATCH 2/4] Change threshold --- modules/imgproc/perf/opencl/perf_imgproc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/imgproc/perf/opencl/perf_imgproc.cpp b/modules/imgproc/perf/opencl/perf_imgproc.cpp index 2d9e20b24b..5fc3a70376 100644 --- a/modules/imgproc/perf/opencl/perf_imgproc.cpp +++ b/modules/imgproc/perf/opencl/perf_imgproc.cpp @@ -248,7 +248,7 @@ OCL_PERF_TEST_P(IntegralFixture, Integral2, ::testing::Combine(OCL_TEST_SIZES, O OCL_TEST_CYCLE() cv::integral(src, sum, sqsum, ddepth, ddepth); SANITY_CHECK(sum, 2e-6, ERROR_RELATIVE); - SANITY_CHECK(sqsum, 2e-6, ERROR_RELATIVE); + SANITY_CHECK(sqsum, 2e-5, ERROR_RELATIVE); } ///////////// Threshold //////////////////////// From eb54c8398561f804fabcb30c99b6da9a8225fa97 Mon Sep 17 00:00:00 2001 From: vbystricky Date: Thu, 19 Jun 2014 18:09:23 +0400 Subject: [PATCH 3/4] Fix error --- modules/imgproc/perf/opencl/perf_imgproc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/imgproc/perf/opencl/perf_imgproc.cpp b/modules/imgproc/perf/opencl/perf_imgproc.cpp index 5fc3a70376..8a16280227 100644 --- a/modules/imgproc/perf/opencl/perf_imgproc.cpp +++ b/modules/imgproc/perf/opencl/perf_imgproc.cpp @@ -242,10 +242,10 @@ OCL_PERF_TEST_P(IntegralFixture, Integral2, ::testing::Combine(OCL_TEST_SIZES, O checkDeviceMaxMemoryAllocSize(srcSize, ddepth); - UMat src(srcSize, CV_8UC1), sum(srcSize + Size(1, 1), ddepth), sqsum(srcSize + Size(1, 1), ddepth); + UMat src(srcSize, CV_8UC1), sum(srcSize + Size(1, 1), ddepth), sqsum(srcSize + Size(1, 1), CV_32F); declare.in(src, WARMUP_RNG).out(sum).out(sqsum); - OCL_TEST_CYCLE() cv::integral(src, sum, sqsum, ddepth, ddepth); + OCL_TEST_CYCLE() cv::integral(src, sum, sqsum, ddepth, CV_32F); SANITY_CHECK(sum, 2e-6, ERROR_RELATIVE); SANITY_CHECK(sqsum, 2e-5, ERROR_RELATIVE); From 655465d9f86bf1d9faffc3c8cf3149b7beeddca5 Mon Sep 17 00:00:00 2001 From: vbystricky Date: Thu, 19 Jun 2014 18:52:25 +0400 Subject: [PATCH 4/4] Increase epsilon for pass sanity check --- modules/imgproc/perf/opencl/perf_imgproc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/imgproc/perf/opencl/perf_imgproc.cpp b/modules/imgproc/perf/opencl/perf_imgproc.cpp index 8a16280227..1b3ba7f19e 100644 --- a/modules/imgproc/perf/opencl/perf_imgproc.cpp +++ b/modules/imgproc/perf/opencl/perf_imgproc.cpp @@ -247,8 +247,8 @@ OCL_PERF_TEST_P(IntegralFixture, Integral2, ::testing::Combine(OCL_TEST_SIZES, O OCL_TEST_CYCLE() cv::integral(src, sum, sqsum, ddepth, CV_32F); - SANITY_CHECK(sum, 2e-6, ERROR_RELATIVE); - SANITY_CHECK(sqsum, 2e-5, ERROR_RELATIVE); + SANITY_CHECK(sum, 1e-6, ERROR_RELATIVE); + SANITY_CHECK(sqsum, 5e-5, ERROR_RELATIVE); } ///////////// Threshold ////////////////////////