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) 2018-2021 Intel Corporation 6 7 8 #include "../perf_precomp.hpp" 9 #include "../common/gapi_core_perf_tests.hpp" 10 #include <opencv2/gapi/cpu/core.hpp> 11 12 #define CORE_CPU cv::gapi::core::cpu::kernels() 13 14 namespace opencv_test 15 { 16 17 18 INSTANTIATE_TEST_CASE_P(AddPerfTestCPU, AddPerfTest, 19 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 20 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 21 Values(-1, CV_8U, CV_16U, CV_32F), 22 Values(cv::compile_args(CORE_CPU)))); 23 24 INSTANTIATE_TEST_CASE_P(AddCPerfTestCPU, AddCPerfTest, 25 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 26 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 27 Values(-1, CV_8U, CV_16U, CV_32F), 28 Values(cv::compile_args(CORE_CPU)))); 29 30 INSTANTIATE_TEST_CASE_P(SubPerfTestCPU, SubPerfTest, 31 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 32 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 33 Values(-1, CV_8U, CV_16U, CV_32F), 34 Values(cv::compile_args(CORE_CPU)))); 35 36 INSTANTIATE_TEST_CASE_P(SubCPerfTestCPU, SubCPerfTest, 37 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 38 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 39 Values(-1, CV_8U, CV_16U, CV_32F), 40 Values(cv::compile_args(CORE_CPU)))); 41 42 INSTANTIATE_TEST_CASE_P(SubRCPerfTestCPU, SubRCPerfTest, 43 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 44 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 45 Values(-1, CV_8U, CV_16U, CV_32F), 46 Values(cv::compile_args(CORE_CPU)))); 47 48 INSTANTIATE_TEST_CASE_P(MulPerfTestCPU, MulPerfTest, 49 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 50 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 51 Values(-1, CV_8U, CV_16U, CV_32F), 52 Values(cv::compile_args(CORE_CPU)))); 53 54 INSTANTIATE_TEST_CASE_P(MulDoublePerfTestCPU, MulDoublePerfTest, 55 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 56 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 57 Values(-1, CV_8U, CV_16U, CV_32F), 58 Values(cv::compile_args(CORE_CPU)))); 59 60 INSTANTIATE_TEST_CASE_P(MulCPerfTestCPU, MulCPerfTest, 61 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 62 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 63 Values(-1, CV_8U, CV_16U, CV_32F), 64 Values(cv::compile_args(CORE_CPU)))); 65 66 INSTANTIATE_TEST_CASE_P(DivPerfTestCPU, DivPerfTest, 67 Combine(Values(AbsExact().to_compare_f()), 68 Values(szSmall128, szVGA, sz720p, sz1080p), 69 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 70 Values(-1, CV_8U, CV_16U, CV_32F), 71 Values(cv::compile_args(CORE_CPU)))); 72 73 INSTANTIATE_TEST_CASE_P(DivCPerfTestCPU, DivCPerfTest, 74 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 75 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 76 Values(-1, CV_8U, CV_16U, CV_32F), 77 Values(cv::compile_args(CORE_CPU)))); 78 79 INSTANTIATE_TEST_CASE_P(DivRCPerfTestCPU, DivRCPerfTest, 80 Combine(Values(AbsExact().to_compare_f()), 81 Values(szSmall128, szVGA, sz720p, sz1080p), 82 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 83 Values(-1, CV_8U, CV_16U, CV_32F), 84 Values(cv::compile_args(CORE_CPU)))); 85 86 INSTANTIATE_TEST_CASE_P(MaskPerfTestCPU, MaskPerfTest, 87 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 88 Values(CV_8UC1, CV_16UC1, CV_16SC1), 89 Values(cv::compile_args(CORE_CPU)))); 90 91 INSTANTIATE_TEST_CASE_P(MeanPerfTestCPU, MeanPerfTest, 92 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 93 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 94 Values(cv::compile_args(CORE_CPU)))); 95 96 INSTANTIATE_TEST_CASE_P(Polar2CartPerfTestCPU, Polar2CartPerfTest, 97 Combine(Values(AbsExact().to_compare_f()), 98 Values(szSmall128, szVGA, sz720p, sz1080p), 99 Values(cv::compile_args(CORE_CPU)))); 100 101 INSTANTIATE_TEST_CASE_P(Cart2PolarPerfTestCPU, Cart2PolarPerfTest, 102 Combine(Values(AbsExact().to_compare_f()), 103 Values(szSmall128, szVGA, sz720p, sz1080p), 104 Values(cv::compile_args(CORE_CPU)))); 105 106 INSTANTIATE_TEST_CASE_P(CmpPerfTestCPU, CmpPerfTest, 107 Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE), 108 Values(szSmall128, szVGA, sz720p, sz1080p), 109 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 110 Values(cv::compile_args(CORE_CPU)))); 111 112 INSTANTIATE_TEST_CASE_P(CmpWithScalarPerfTestCPU, CmpWithScalarPerfTest, 113 Combine(Values(AbsExact().to_compare_f()), 114 Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE), 115 Values(szSmall128, szVGA, sz720p, sz1080p), 116 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 117 Values(cv::compile_args(CORE_CPU)))); 118 119 INSTANTIATE_TEST_CASE_P(BitwisePerfTestCPU, BitwisePerfTest, 120 Combine(Values(AND, OR, XOR), 121 testing::Bool(), 122 Values(szSmall128, szVGA, sz720p, sz1080p), 123 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1), 124 Values(cv::compile_args(CORE_CPU)))); 125 126 INSTANTIATE_TEST_CASE_P(BitwiseNotPerfTestCPU, BitwiseNotPerfTest, 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_CPU)))); 130 131 INSTANTIATE_TEST_CASE_P(SelectPerfTestCPU, SelectPerfTest, 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_CPU)))); 135 136 INSTANTIATE_TEST_CASE_P(MinPerfTestCPU, MinPerfTest, 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_CPU)))); 140 141 INSTANTIATE_TEST_CASE_P(MaxPerfTestCPU, MaxPerfTest, 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_CPU)))); 145 146 INSTANTIATE_TEST_CASE_P(AbsDiffPerfTestCPU, AbsDiffPerfTest, 147 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 148 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 149 Values(cv::compile_args(CORE_CPU)))); 150 151 INSTANTIATE_TEST_CASE_P(AbsDiffCPerfTestCPU, AbsDiffCPerfTest, 152 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 153 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 154 Values(cv::compile_args(CORE_CPU)))); 155 156 INSTANTIATE_TEST_CASE_P(SumPerfTestCPU, SumPerfTest, 157 Combine(Values(AbsToleranceScalar(0.0).to_compare_f()), 158 Values(szSmall128, szVGA, sz720p, sz1080p), 159 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 160 //Values(0.0), 161 Values(cv::compile_args(CORE_CPU)))); 162 163 INSTANTIATE_TEST_CASE_P(CountNonZeroPerfTestCPU, CountNonZeroPerfTest, 164 Combine(Values(AbsToleranceScalar(0.0).to_compare_f()), 165 Values(szSmall128, szVGA, sz720p, sz1080p), 166 Values(CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1), 167 Values(cv::compile_args(CORE_CPU)))); 168 169 INSTANTIATE_TEST_CASE_P(AddWeightedPerfTestCPU, AddWeightedPerfTest, 170 Combine(Values(Tolerance_FloatRel_IntAbs(1e-6, 1).to_compare_f()), 171 Values(szSmall128, szVGA, sz720p, sz1080p), 172 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 173 Values(-1, CV_8U, CV_16U, CV_32F), 174 Values(cv::compile_args(CORE_CPU)))); 175 176 INSTANTIATE_TEST_CASE_P(NormPerfTestCPU, NormPerfTest, 177 Combine(Values(AbsToleranceScalar(0.0).to_compare_f()), 178 Values(NORM_INF, NORM_L1, NORM_L2), 179 Values(szSmall128, szVGA, sz720p, sz1080p), 180 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 181 Values(cv::compile_args(CORE_CPU)))); 182 183 INSTANTIATE_TEST_CASE_P(IntegralPerfTestCPU, IntegralPerfTest, 184 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 185 Values(CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1), 186 Values(cv::compile_args(CORE_CPU)))); 187 188 INSTANTIATE_TEST_CASE_P(ThresholdPerfTestCPU, ThresholdPerfTest, 189 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 190 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 191 Values(cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV), 192 Values(cv::compile_args(CORE_CPU)))); 193 194 INSTANTIATE_TEST_CASE_P(ThresholdPerfTestCPU, ThresholdOTPerfTest, 195 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 196 Values(CV_8UC1), 197 Values(cv::THRESH_OTSU, cv::THRESH_TRIANGLE), 198 Values(cv::compile_args(CORE_CPU)))); 199 200 INSTANTIATE_TEST_CASE_P(InRangePerfTestCPU, InRangePerfTest, 201 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 202 Values(CV_8UC1), 203 Values(cv::compile_args(CORE_CPU)))); 204 205 INSTANTIATE_TEST_CASE_P(Split3PerfTestCPU, Split3PerfTest, 206 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 207 Values(cv::compile_args(CORE_CPU)))); 208 209 INSTANTIATE_TEST_CASE_P(Split4PerfTestCPU, Split4PerfTest, 210 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 211 Values(cv::compile_args(CORE_CPU)))); 212 213 INSTANTIATE_TEST_CASE_P(Merge3PerfTestCPU, Merge3PerfTest, 214 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 215 Values(cv::compile_args(CORE_CPU)))); 216 217 INSTANTIATE_TEST_CASE_P(Merge4PerfTestCPU, Merge4PerfTest, 218 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 219 Values(cv::compile_args(CORE_CPU)))); 220 221 INSTANTIATE_TEST_CASE_P(RemapPerfTestCPU, RemapPerfTest, 222 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 223 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 224 Values(cv::compile_args(CORE_CPU)))); 225 226 INSTANTIATE_TEST_CASE_P(FlipPerfTestCPU, FlipPerfTest, 227 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 228 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 229 Values(0, 1, -1), 230 Values(cv::compile_args(CORE_CPU)))); 231 232 INSTANTIATE_TEST_CASE_P(CropPerfTestCPU, CropPerfTest, 233 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 234 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 235 Values(cv::Rect(10, 8, 20, 35), cv::Rect(4, 10, 37, 50)), 236 Values(cv::compile_args(CORE_CPU)))); 237 238 INSTANTIATE_TEST_CASE_P(CopyPerfTestCPU, CopyPerfTest, 239 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 240 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 241 Values(cv::compile_args(CORE_CPU)))); 242 243 INSTANTIATE_TEST_CASE_P(ConcatHorPerfTestCPU, ConcatHorPerfTest, 244 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 245 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 246 Values(cv::compile_args(CORE_CPU)))); 247 248 INSTANTIATE_TEST_CASE_P(ConcatHorVecPerfTestCPU, ConcatHorVecPerfTest, 249 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 250 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 251 Values(cv::compile_args(CORE_CPU)))); 252 253 INSTANTIATE_TEST_CASE_P(ConcatVertPerfTestCPU, ConcatVertPerfTest, 254 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 255 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 256 Values(cv::compile_args(CORE_CPU)))); 257 258 INSTANTIATE_TEST_CASE_P(ConcatVertVecPerfTestCPU, ConcatVertVecPerfTest, 259 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 260 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1), 261 Values(cv::compile_args(CORE_CPU)))); 262 263 INSTANTIATE_TEST_CASE_P(LUTPerfTestCPU, LUTPerfTest, 264 Combine(Values(CV_8UC1, CV_8UC3), 265 Values(CV_8UC1), 266 Values(szSmall128, szVGA, sz720p, sz1080p), 267 Values(cv::compile_args(CORE_CPU)))); 268 269 INSTANTIATE_TEST_CASE_P(LUTPerfTestCustomCPU, LUTPerfTest, 270 Combine(Values(CV_8UC3), 271 Values(CV_8UC3), 272 Values(szSmall128, szVGA, sz720p, sz1080p), 273 Values(cv::compile_args(CORE_CPU)))); 274 275 276 INSTANTIATE_TEST_CASE_P(ConvertToPerfTestCPU, ConvertToPerfTest, 277 Combine(Values(AbsExact().to_compare_f()), 278 Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1), 279 Values(CV_8U, CV_16U, CV_16S, CV_32F), 280 Values(szSmall128, szVGA, sz720p, sz1080p), 281 Values(2.5, 1.0), 282 Values(0.0), 283 Values(cv::compile_args(CORE_CPU)))); 284 285 INSTANTIATE_TEST_CASE_P(KMeansNDPerfTestCPU, KMeansNDPerfTest, 286 Combine(Values(cv::Size(1, 20), 287 cv::Size(16, 4096)), 288 Values(AbsTolerance(0.01).to_compare_obj()), 289 Values(5, 15), 290 Values(cv::KMEANS_RANDOM_CENTERS, 291 cv::KMEANS_PP_CENTERS, 292 cv::KMEANS_RANDOM_CENTERS | cv::KMEANS_USE_INITIAL_LABELS, 293 cv::KMEANS_PP_CENTERS | cv::KMEANS_USE_INITIAL_LABELS), 294 Values(cv::compile_args(CORE_CPU)))); 295 296 INSTANTIATE_TEST_CASE_P(KMeans2DPerfTestCPU, KMeans2DPerfTest, 297 Combine(Values(20, 4096), 298 Values(5, 15), 299 Values(cv::KMEANS_RANDOM_CENTERS, 300 cv::KMEANS_PP_CENTERS, 301 cv::KMEANS_RANDOM_CENTERS | cv::KMEANS_USE_INITIAL_LABELS, 302 cv::KMEANS_PP_CENTERS | cv::KMEANS_USE_INITIAL_LABELS), 303 Values(cv::compile_args(CORE_CPU)))); 304 305 INSTANTIATE_TEST_CASE_P(KMeans3DPerfTestCPU, KMeans3DPerfTest, 306 Combine(Values(20, 4096), 307 Values(5, 15), 308 Values(cv::KMEANS_RANDOM_CENTERS, 309 cv::KMEANS_PP_CENTERS, 310 cv::KMEANS_RANDOM_CENTERS | cv::KMEANS_USE_INITIAL_LABELS, 311 cv::KMEANS_PP_CENTERS | cv::KMEANS_USE_INITIAL_LABELS), 312 Values(cv::compile_args(CORE_CPU)))); 313 314 INSTANTIATE_TEST_CASE_P(TransposePerfTestCPU, TransposePerfTest, 315 Combine(Values(AbsExact().to_compare_f()), 316 Values(szSmall128, szVGA, sz720p, sz1080p), 317 Values(CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1, 318 CV_8UC2, CV_16UC2, CV_16SC2, CV_32FC2, 319 CV_8UC3, CV_16UC3, CV_16SC3, CV_32FC3), 320 Values(cv::compile_args(CORE_CPU)))); 321 322 INSTANTIATE_TEST_CASE_P(ResizePerfTestCPU, ResizePerfTest, 323 Combine(Values(AbsExact().to_compare_f()), 324 Values(CV_8UC1, CV_16UC1, CV_16SC1), 325 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA), 326 Values(szSmall128, szVGA, sz720p, sz1080p), 327 Values(cv::Size(64, 64), 328 cv::Size(30, 30)), 329 Values(cv::compile_args(CORE_CPU)))); 330 331 INSTANTIATE_TEST_CASE_P(ResizeFxFyPerfTestCPU, ResizeFxFyPerfTest, 332 Combine(Values(AbsExact().to_compare_f()), 333 Values(CV_8UC1, CV_16UC1, CV_16SC1), 334 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA), 335 Values(szSmall128, szVGA, sz720p, sz1080p), 336 Values(0.5, 0.1), 337 Values(0.5, 0.1), 338 Values(cv::compile_args(CORE_CPU)))); 339 340 INSTANTIATE_TEST_CASE_P(ParseSSDBLPerfTestCPU, ParseSSDBLPerfTest, 341 Combine(Values(sz720p, sz1080p), 342 Values(0.3f, 0.7f), 343 Values(0, 1), 344 Values(cv::compile_args(CORE_CPU)))); 345 346 INSTANTIATE_TEST_CASE_P(ParseSSDPerfTestCPU, ParseSSDPerfTest, 347 Combine(Values(sz720p, sz1080p), 348 Values(0.3f, 0.7f), 349 testing::Bool(), 350 testing::Bool(), 351 Values(cv::compile_args(CORE_CPU)))); 352 353 INSTANTIATE_TEST_CASE_P(ParseYoloPerfTestCPU, ParseYoloPerfTest, 354 Combine(Values(sz720p, sz1080p), 355 Values(0.3f, 0.7f), 356 Values(0.5), 357 Values(7, 80), 358 Values(cv::compile_args(CORE_CPU)))); 359 360 INSTANTIATE_TEST_CASE_P(SizePerfTestCPU, SizePerfTest, 361 Combine(Values(CV_8UC1, CV_8UC3, CV_32FC1), 362 Values(szSmall128, szVGA, sz720p, sz1080p), 363 Values(cv::compile_args(CORE_CPU)))); 364 365 INSTANTIATE_TEST_CASE_P(SizeRPerfTestCPU, SizeRPerfTest, 366 Combine(Values(szSmall128, szVGA, sz720p, sz1080p), 367 Values(cv::compile_args(CORE_CPU)))); 368 } // opencv_test 369