mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
Merge pull request #18261 from OrestChura:oc/fluid_convert_mask
[G-API]: Fluid: add mask, extend convertTo for CV_16S * Add Fluid `mask` kernel + Acc. and Perf. tests - simple cycle implementation with restrictions on mask type and input/output type like in OCV/GPU kernels (mask - CV_8UC1 only, input/output - CV_8UC1, CV_16UC1, CV_16SC1) * Added convertions from/to 16S * `convertTo()` perf tests refactoring - add testing of `alpha` and `beta` parameters - fixed unreliable comparison - added instances to OCV, Fluid and GPU tests according to the changes * Addressing comments - fixed multiple-channel mistake - prohibited multiple-channeling * Reduced perf tests
This commit is contained in:
@@ -71,7 +71,7 @@ namespace opencv_test
|
||||
class ConcatVertPerfTest : public TestPerfParams<tuple<cv::Size, MatType, cv::GCompileArgs>> {};
|
||||
class ConcatVertVecPerfTest : public TestPerfParams<tuple<cv::Size, MatType, cv::GCompileArgs>> {};
|
||||
class LUTPerfTest : public TestPerfParams<tuple<MatType, MatType, cv::Size, cv::GCompileArgs>> {};
|
||||
class ConvertToPerfTest : public TestPerfParams<tuple<MatType, int, cv::Size, cv::GCompileArgs>> {};
|
||||
class ConvertToPerfTest : public TestPerfParams<tuple<compare_f, MatType, int, cv::Size, double, double, cv::GCompileArgs>> {};
|
||||
class ResizePerfTest : public TestPerfParams<tuple<compare_f, MatType, int, cv::Size, cv::Size, cv::GCompileArgs>> {};
|
||||
class ResizeFxFyPerfTest : public TestPerfParams<tuple<compare_f, MatType, int, cv::Size, double, double, cv::GCompileArgs>> {};
|
||||
class ParseSSDBLPerfTest : public TestPerfParams<tuple<cv::Size, float, int, cv::GCompileArgs>>, public ParserSSDTest {};
|
||||
|
||||
@@ -1829,20 +1829,23 @@ PERF_TEST_P_(LUTPerfTest, TestPerformance)
|
||||
|
||||
PERF_TEST_P_(ConvertToPerfTest, TestPerformance)
|
||||
{
|
||||
MatType type_mat = get<0>(GetParam());
|
||||
int depth_to = get<1>(GetParam());
|
||||
cv::Size sz_in = get<2>(GetParam());
|
||||
cv::GCompileArgs compile_args = get<3>(GetParam());
|
||||
int depth_to = -1;
|
||||
MatType type_mat = -1;
|
||||
double alpha = 0., beta = 0.;
|
||||
cv::Size sz_in;
|
||||
compare_f cmpF;
|
||||
cv::GCompileArgs compile_args;
|
||||
std::tie(cmpF, type_mat, depth_to, sz_in, alpha, beta, compile_args) = GetParam();
|
||||
MatType type_out = CV_MAKETYPE(depth_to, CV_MAT_CN(type_mat));
|
||||
|
||||
initMatrixRandU(type_mat, sz_in, type_out);
|
||||
|
||||
// OpenCV code ///////////////////////////////////////////////////////////
|
||||
in_mat1.convertTo(out_mat_ocv, depth_to);
|
||||
in_mat1.convertTo(out_mat_ocv, depth_to, alpha, beta);
|
||||
|
||||
// G-API code //////////////////////////////////////////////////////////////
|
||||
cv::GMat in;
|
||||
auto out = cv::gapi::convertTo(in, depth_to);
|
||||
auto out = cv::gapi::convertTo(in, depth_to, alpha, beta);
|
||||
cv::GComputation c(in, out);
|
||||
|
||||
// Warm-up graph engine:
|
||||
@@ -1856,7 +1859,7 @@ PERF_TEST_P_(ConvertToPerfTest, TestPerformance)
|
||||
}
|
||||
|
||||
// Comparison ////////////////////////////////////////////////////////////
|
||||
// FIXIT unrealiable check: EXPECT_EQ(0, cv::countNonZero(out_mat_ocv != out_mat_gapi));
|
||||
EXPECT_TRUE(cmpF(out_mat_gapi, out_mat_ocv));
|
||||
EXPECT_EQ(out_mat_gapi.size(), sz_in);
|
||||
|
||||
SANITY_CHECK_NOTHING();
|
||||
|
||||
@@ -268,10 +268,13 @@ INSTANTIATE_TEST_CASE_P(LUTPerfTestCustomCPU, LUTPerfTest,
|
||||
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ConvertToPerfTestCPU, ConvertToPerfTest,
|
||||
Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
|
||||
Values(CV_8U, CV_16U, CV_16S, CV_32F),
|
||||
Values(szSmall128, szVGA, sz720p, sz1080p),
|
||||
Values(cv::compile_args(CORE_CPU))));
|
||||
Combine(Values(AbsExact().to_compare_f()),
|
||||
Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1),
|
||||
Values(CV_8U, CV_16U, CV_16S, CV_32F),
|
||||
Values(szSmall128, szVGA, sz720p, sz1080p),
|
||||
Values(2.5, 1.0),
|
||||
Values(0.0),
|
||||
Values(cv::compile_args(CORE_CPU))));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ResizePerfTestCPU, ResizePerfTest,
|
||||
Combine(Values(AbsExact().to_compare_f()),
|
||||
|
||||
@@ -80,10 +80,10 @@ INSTANTIATE_TEST_CASE_P(SubPerfTestFluid, SubPerfTest,
|
||||
// Values(-1, CV_8U, CV_16U, CV_32F),
|
||||
// Values(cv::compile_args(CORE_FLUID))));
|
||||
|
||||
// INSTANTIATE_TEST_CASE_P(MaskPerfTestFluid, MaskPerfTest,
|
||||
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
|
||||
// Values(CV_8UC1, CV_16UC1, CV_16SC1),
|
||||
// Values(cv::compile_args(CORE_FLUID))));
|
||||
INSTANTIATE_TEST_CASE_P(MaskPerfTestFluid, MaskPerfTest,
|
||||
Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
|
||||
Values(CV_8UC1, CV_16UC1, CV_16SC1),
|
||||
Values(cv::compile_args(CORE_FLUID))));
|
||||
|
||||
// INSTANTIATE_TEST_CASE_P(MeanPerfTestFluid, MeanPerfTest,
|
||||
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
|
||||
@@ -271,9 +271,12 @@ INSTANTIATE_TEST_CASE_P(Split3PerfTestFluid, Split3PerfTest,
|
||||
// Values(cv::compile_args(CORE_FLUID))));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ConvertToPerfTestFluid, ConvertToPerfTest,
|
||||
Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
|
||||
Values(CV_8U, CV_16U, CV_32F),
|
||||
Combine(Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_f()),
|
||||
Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1),
|
||||
Values(CV_8U, CV_16U, CV_16S, CV_32F),
|
||||
Values(szSmall128, szVGA, sz720p, sz1080p),
|
||||
Values(2.5, 1.0),
|
||||
Values(0.0),
|
||||
Values(cv::compile_args(CORE_FLUID))));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ResizePerfTestFluid, ResizePerfTest,
|
||||
|
||||
@@ -267,9 +267,12 @@ INSTANTIATE_TEST_CASE_P(LUTPerfTestCustomGPU, LUTPerfTest,
|
||||
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ConvertToPerfTestGPU, ConvertToPerfTest,
|
||||
Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
|
||||
Combine(Values(AbsExact().to_compare_f()),
|
||||
Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
|
||||
Values(CV_8U, CV_16U, CV_16S, CV_32F),
|
||||
Values( szSmall128, szVGA, sz720p, sz1080p ),
|
||||
Values(2.5, 1.0),
|
||||
Values(0.0),
|
||||
Values(cv::compile_args(CORE_GPU))));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ResizePerfTestGPU, ResizePerfTest,
|
||||
|
||||
Reference in New Issue
Block a user