Skip to content

Commit e5e08ec

Browse files
authored
Merge pull request opencv#18148 from OrestChura:oc/fluid_core_perf
[G-API]: Fluid Core kernels performance tests * Add performance tests for a list of Fluid Core kernels * Update gapi_core_perf_tests_fluid.cpp Addressing a comment
1 parent 3547ac4 commit e5e08ec

File tree

1 file changed

+294
-0
lines changed

1 file changed

+294
-0
lines changed
Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,294 @@
1+
// This file is part of OpenCV project.
2+
// It is subject to the license terms in the LICENSE file found in the top-level directory
3+
// of this distribution and at http://opencv.org/license.html.
4+
//
5+
// Copyright (C) 2020 Intel Corporation
6+
7+
8+
#include "../perf_precomp.hpp"
9+
#include "../common/gapi_core_perf_tests.hpp"
10+
11+
#define CORE_FLUID cv::gapi::core::fluid::kernels()
12+
13+
namespace opencv_test
14+
{
15+
INSTANTIATE_TEST_CASE_P(AddPerfTestFluid, AddPerfTest,
16+
Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
17+
Values(CV_8UC1, CV_8UC3, CV_16SC1, CV_32FC1),
18+
Values(-1, CV_8U, CV_32F),
19+
Values(cv::compile_args(CORE_FLUID))));
20+
21+
// INSTANTIATE_TEST_CASE_P(AddCPerfTestFluid, AddCPerfTest,
22+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
23+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
24+
// Values(-1, CV_8U, CV_16U, CV_32F),
25+
// Values(cv::compile_args(CORE_FLUID))));
26+
27+
INSTANTIATE_TEST_CASE_P(SubPerfTestFluid, SubPerfTest,
28+
Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
29+
Values(CV_8UC1, CV_8UC3, CV_16SC1, CV_32FC1),
30+
Values(-1, CV_8U, CV_32F),
31+
Values(cv::compile_args(CORE_FLUID))));
32+
33+
// INSTANTIATE_TEST_CASE_P(SubCPerfTestFluid, SubCPerfTest,
34+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
35+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
36+
// Values(-1, CV_8U, CV_16U, CV_32F),
37+
// Values(cv::compile_args(CORE_FLUID))));
38+
39+
// INSTANTIATE_TEST_CASE_P(SubRCPerfTestFluid, SubRCPerfTest,
40+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
41+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
42+
// Values(-1, CV_8U, CV_16U, CV_32F),
43+
// Values(cv::compile_args(CORE_FLUID))));
44+
45+
// INSTANTIATE_TEST_CASE_P(MulPerfTestFluid, MulPerfTest,
46+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
47+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
48+
// Values(-1, CV_8U, CV_16U, CV_32F),
49+
// Values(cv::compile_args(CORE_FLUID))));
50+
51+
// INSTANTIATE_TEST_CASE_P(MulDoublePerfTestFluid, MulDoublePerfTest,
52+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
53+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
54+
// Values(-1, CV_8U, CV_16U, CV_32F),
55+
// Values(cv::compile_args(CORE_FLUID))));
56+
57+
// INSTANTIATE_TEST_CASE_P(MulCPerfTestFluid, MulCPerfTest,
58+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
59+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
60+
// Values(-1, CV_8U, CV_16U, CV_32F),
61+
// Values(cv::compile_args(CORE_FLUID))));
62+
63+
// INSTANTIATE_TEST_CASE_P(DivPerfTestFluid, DivPerfTest,
64+
// Combine(Values(AbsExact().to_compare_f()),
65+
// Values(szSmall128, szVGA, sz720p, sz1080p),
66+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
67+
// Values(-1, CV_8U, CV_16U, CV_32F),
68+
// Values(cv::compile_args(CORE_FLUID))));
69+
70+
// INSTANTIATE_TEST_CASE_P(DivCPerfTestFluid, DivCPerfTest,
71+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
72+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
73+
// Values(-1, CV_8U, CV_16U, CV_32F),
74+
// Values(cv::compile_args(CORE_FLUID))));
75+
76+
// INSTANTIATE_TEST_CASE_P(DivRCPerfTestFluid, DivRCPerfTest,
77+
// Combine(Values(AbsExact().to_compare_f()),
78+
// Values(szSmall128, szVGA, sz720p, sz1080p),
79+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
80+
// Values(-1, CV_8U, CV_16U, CV_32F),
81+
// Values(cv::compile_args(CORE_FLUID))));
82+
83+
// INSTANTIATE_TEST_CASE_P(MaskPerfTestFluid, MaskPerfTest,
84+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
85+
// Values(CV_8UC1, CV_16UC1, CV_16SC1),
86+
// Values(cv::compile_args(CORE_FLUID))));
87+
88+
// INSTANTIATE_TEST_CASE_P(MeanPerfTestFluid, MeanPerfTest,
89+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
90+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
91+
// Values(cv::compile_args(CORE_FLUID))));
92+
93+
// INSTANTIATE_TEST_CASE_P(Polar2CartPerfTestFluid, Polar2CartPerfTest,
94+
// Combine(Values(AbsExact().to_compare_f()),
95+
// Values(szSmall128, szVGA, sz720p, sz1080p),
96+
// Values(cv::compile_args(CORE_FLUID))));
97+
98+
// INSTANTIATE_TEST_CASE_P(Cart2PolarPerfTestFluid, Cart2PolarPerfTest,
99+
// Combine(Values(AbsExact().to_compare_f()),
100+
// Values(szSmall128, szVGA, sz720p, sz1080p),
101+
// Values(cv::compile_args(CORE_FLUID))));
102+
103+
// INSTANTIATE_TEST_CASE_P(CmpPerfTestFluid, CmpPerfTest,
104+
// Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
105+
// Values(szSmall128, szVGA, sz720p, sz1080p),
106+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
107+
// Values(cv::compile_args(CORE_FLUID))));
108+
109+
INSTANTIATE_TEST_CASE_P(CmpWithScalarPerfTestFluid, CmpWithScalarPerfTest,
110+
Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
111+
Values(szSmall128, szVGA, sz720p, sz1080p),
112+
Values(CV_8UC1, CV_8UC3, CV_16SC1, CV_32FC1),
113+
Values(cv::compile_args(CORE_FLUID))));
114+
115+
INSTANTIATE_TEST_CASE_P(BitwisePerfTestFluid, BitwisePerfTest,
116+
Combine(Values(AND, OR, XOR),
117+
Values(szSmall128, szVGA, sz720p, sz1080p),
118+
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
119+
Values(cv::compile_args(CORE_FLUID))));
120+
121+
INSTANTIATE_TEST_CASE_P(BitwiseNotPerfTestFluid, BitwiseNotPerfTest,
122+
Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
123+
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
124+
Values(cv::compile_args(CORE_FLUID))));
125+
126+
// INSTANTIATE_TEST_CASE_P(SelectPerfTestFluid, SelectPerfTest,
127+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
128+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
129+
// Values(cv::compile_args(CORE_FLUID))));
130+
131+
// INSTANTIATE_TEST_CASE_P(MinPerfTestFluid, MinPerfTest,
132+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
133+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
134+
// Values(cv::compile_args(CORE_FLUID))));
135+
136+
// INSTANTIATE_TEST_CASE_P(MaxPerfTestFluid, MaxPerfTest,
137+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
138+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
139+
// Values(cv::compile_args(CORE_FLUID))));
140+
141+
INSTANTIATE_TEST_CASE_P(AbsDiffPerfTestFluid, AbsDiffPerfTest,
142+
Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
143+
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
144+
Values(cv::compile_args(CORE_FLUID))));
145+
146+
INSTANTIATE_TEST_CASE_P(AbsDiffCPerfTestFluid, AbsDiffCPerfTest,
147+
Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
148+
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
149+
Values(cv::compile_args(CORE_FLUID))));
150+
151+
// INSTANTIATE_TEST_CASE_P(SumPerfTestFluid, SumPerfTest,
152+
// Combine(Values(AbsToleranceScalar(0.0).to_compare_f()),
153+
// Values(szSmall128, szVGA, sz720p, sz1080p),
154+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
155+
// //Values(0.0),
156+
// Values(cv::compile_args(CORE_FLUID))));
157+
158+
INSTANTIATE_TEST_CASE_P(AddWeightedPerfTestFluid, AddWeightedPerfTest,
159+
Combine(Values(Tolerance_FloatRel_IntAbs(1e-6, 1).to_compare_f()),
160+
Values(szSmall128, szVGA, sz720p, sz1080p),
161+
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
162+
Values(-1, CV_8U, CV_32F),
163+
Values(cv::compile_args(CORE_FLUID))));
164+
165+
INSTANTIATE_TEST_CASE_P(AddWeightedPerfTestFluid_short, AddWeightedPerfTest,
166+
Combine(Values(Tolerance_FloatRel_IntAbs(1e-6, 1).to_compare_f()),
167+
Values(szSmall128, szVGA, sz720p, sz1080p),
168+
Values(CV_16UC1, CV_16SC1),
169+
Values(-1),
170+
Values(cv::compile_args(CORE_FLUID))));
171+
172+
// INSTANTIATE_TEST_CASE_P(NormPerfTestFluid, NormPerfTest,
173+
// Combine(Values(AbsToleranceScalar(0.0).to_compare_f()),
174+
// Values(NORM_INF, NORM_L1, NORM_L2),
175+
// Values(szSmall128, szVGA, sz720p, sz1080p),
176+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
177+
// Values(cv::compile_args(CORE_FLUID))));
178+
179+
// INSTANTIATE_TEST_CASE_P(IntegralPerfTestFluid, IntegralPerfTest,
180+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
181+
// Values(CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1),
182+
// Values(cv::compile_args(CORE_FLUID))));
183+
184+
// INSTANTIATE_TEST_CASE_P(ThresholdPerfTestFluid, ThresholdPerfTest,
185+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
186+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
187+
// Values(cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV),
188+
// Values(cv::compile_args(CORE_FLUID))));
189+
190+
// INSTANTIATE_TEST_CASE_P(ThresholdPerfTestFluid, ThresholdOTPerfTest,
191+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
192+
// Values(CV_8UC1),
193+
// Values(cv::THRESH_OTSU, cv::THRESH_TRIANGLE),
194+
// Values(cv::compile_args(CORE_FLUID))));
195+
196+
// INSTANTIATE_TEST_CASE_P(InRangePerfTestFluid, InRangePerfTest,
197+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
198+
// Values(CV_8UC1),
199+
// Values(cv::compile_args(CORE_FLUID))));
200+
201+
INSTANTIATE_TEST_CASE_P(Split3PerfTestFluid, Split3PerfTest,
202+
Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
203+
Values(cv::compile_args(CORE_FLUID))));
204+
205+
// INSTANTIATE_TEST_CASE_P(Split4PerfTestFluid, Split4PerfTest,
206+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
207+
// Values(cv::compile_args(CORE_FLUID))));
208+
209+
// INSTANTIATE_TEST_CASE_P(Merge3PerfTestFluid, Merge3PerfTest,
210+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
211+
// Values(cv::compile_args(CORE_FLUID))));
212+
213+
// INSTANTIATE_TEST_CASE_P(Merge4PerfTestFluid, Merge4PerfTest,
214+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
215+
// Values(cv::compile_args(CORE_FLUID))));
216+
217+
// INSTANTIATE_TEST_CASE_P(RemapPerfTestFluid, RemapPerfTest,
218+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
219+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
220+
// Values(cv::compile_args(CORE_FLUID))));
221+
222+
// INSTANTIATE_TEST_CASE_P(FlipPerfTestFluid, FlipPerfTest,
223+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
224+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
225+
// Values(0, 1, -1),
226+
// Values(cv::compile_args(CORE_FLUID))));
227+
228+
// INSTANTIATE_TEST_CASE_P(CropPerfTestFluid, CropPerfTest,
229+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
230+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
231+
// Values(cv::Rect(10, 8, 20, 35), cv::Rect(4, 10, 37, 50)),
232+
// Values(cv::compile_args(CORE_FLUID))));
233+
234+
// INSTANTIATE_TEST_CASE_P(CopyPerfTestFluid, CopyPerfTest,
235+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
236+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
237+
// Values(cv::compile_args(CORE_FLUID))));
238+
239+
// INSTANTIATE_TEST_CASE_P(ConcatHorPerfTestFluid, ConcatHorPerfTest,
240+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
241+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
242+
// Values(cv::compile_args(CORE_FLUID))));
243+
244+
// INSTANTIATE_TEST_CASE_P(ConcatHorVecPerfTestFluid, ConcatHorVecPerfTest,
245+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
246+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
247+
// Values(cv::compile_args(CORE_FLUID))));
248+
249+
// INSTANTIATE_TEST_CASE_P(ConcatVertPerfTestFluid, ConcatVertPerfTest,
250+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
251+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
252+
// Values(cv::compile_args(CORE_FLUID))));
253+
254+
// INSTANTIATE_TEST_CASE_P(ConcatVertVecPerfTestFluid, ConcatVertVecPerfTest,
255+
// Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
256+
// Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
257+
// Values(cv::compile_args(CORE_FLUID))));
258+
259+
// INSTANTIATE_TEST_CASE_P(LUTPerfTestFluid, LUTPerfTest,
260+
// Combine(Values(CV_8UC1, CV_8UC3),
261+
// Values(CV_8UC1),
262+
// Values(szSmall128, szVGA, sz720p, sz1080p),
263+
// Values(cv::compile_args(CORE_FLUID))));
264+
265+
// INSTANTIATE_TEST_CASE_P(LUTPerfTestCustomFluid, LUTPerfTest,
266+
// Combine(Values(CV_8UC3),
267+
// Values(CV_8UC3),
268+
// Values(szSmall128, szVGA, sz720p, sz1080p),
269+
// Values(cv::compile_args(CORE_FLUID))));
270+
271+
INSTANTIATE_TEST_CASE_P(ConvertToPerfTestFluid, ConvertToPerfTest,
272+
Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
273+
Values(CV_8U, CV_16U, CV_32F),
274+
Values(szSmall128, szVGA, sz720p, sz1080p),
275+
Values(cv::compile_args(CORE_FLUID))));
276+
277+
INSTANTIATE_TEST_CASE_P(ResizePerfTestFluid, ResizePerfTest,
278+
Combine(Values(AbsExact().to_compare_f()),
279+
Values(CV_8UC3/*CV_8UC1, CV_16UC1, CV_16SC1*/),
280+
Values(/*cv::INTER_NEAREST,*/ cv::INTER_LINEAR/*, cv::INTER_AREA*/),
281+
Values(szSmall128, szVGA, sz720p, sz1080p),
282+
Values(cv::Size(64, 64),
283+
cv::Size(30, 30)),
284+
Values(cv::compile_args(CORE_FLUID))));
285+
286+
INSTANTIATE_TEST_CASE_P(ResizeFxFyPerfTestFluid, ResizeFxFyPerfTest,
287+
Combine(Values(AbsExact().to_compare_f()),
288+
Values(CV_8UC3/*CV_8UC1, CV_16UC1, CV_16SC1*/),
289+
Values(/*cv::INTER_NEAREST,*/ cv::INTER_LINEAR/*, cv::INTER_AREA*/),
290+
Values(szSmall128, szVGA, sz720p, sz1080p),
291+
Values(0.5, 0.1),
292+
Values(0.5, 0.1),
293+
Values(cv::compile_args(CORE_FLUID))));
294+
} // opencv_test

0 commit comments

Comments
 (0)