@@ -189,30 +189,6 @@ static inline void normAssertDetections(cv::Mat ref, cv::Mat out, const char *co
189
189
testBoxes, comment, confThreshold, scores_diff, boxes_iou_diff);
190
190
}
191
191
192
- static inline bool checkIETarget (int target)
193
- {
194
- #ifndef HAVE_INF_ENGINE
195
- return false ;
196
- #else
197
- cv::dnn::Net net;
198
- cv::dnn::LayerParams lp;
199
- net.addLayerToPrev (" testLayer" , " Identity" , lp);
200
- net.setPreferableBackend (cv::dnn::DNN_BACKEND_INFERENCE_ENGINE);
201
- net.setPreferableTarget (target);
202
- static int inpDims[] = {1 , 2 , 3 , 4 };
203
- net.setInput (cv::Mat (4 , &inpDims[0 ], CV_32FC1, cv::Scalar (0 )));
204
- try
205
- {
206
- net.forward ();
207
- }
208
- catch (...)
209
- {
210
- return false ;
211
- }
212
- return true ;
213
- #endif
214
- }
215
-
216
192
static inline bool readFileInMemory (const std::string& filename, std::string& content)
217
193
{
218
194
std::ios::openmode mode = std::ios::in | std::ios::binary;
@@ -237,49 +213,31 @@ namespace opencv_test {
237
213
using namespace cv ::dnn;
238
214
239
215
static inline
240
- testing::internal::ParamGenerator<tuple<Backend, Target> > dnnBackendsAndTargets (
216
+ testing::internal::ParamGenerator< tuple<Backend, Target> > dnnBackendsAndTargets (
241
217
bool withInferenceEngine = true ,
242
218
bool withHalide = false ,
243
219
bool withCpuOCV = true
244
220
)
245
221
{
246
- std::vector<tuple<Backend, Target> > targets;
247
- # ifdef HAVE_HALIDE
222
+ std::vector< tuple<Backend, Target> > targets;
223
+ std::vector< Target > available;
248
224
if (withHalide)
249
225
{
250
- targets.push_back (make_tuple (DNN_BACKEND_HALIDE, DNN_TARGET_CPU));
251
- #ifdef HAVE_OPENCL
252
- if (cv::ocl::useOpenCL ())
253
- targets.push_back (make_tuple (DNN_BACKEND_HALIDE, DNN_TARGET_OPENCL));
254
- #endif
226
+ available = getAvailableTargets (DNN_BACKEND_HALIDE);
227
+ for (std::vector< Target >::const_iterator i = available.begin (); i != available.end (); ++i)
228
+ targets.push_back (make_tuple (DNN_BACKEND_HALIDE, *i));
255
229
}
256
- #endif
257
- #ifdef HAVE_INF_ENGINE
258
230
if (withInferenceEngine)
259
231
{
260
- targets.push_back (make_tuple (DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_CPU));
261
- #ifdef HAVE_OPENCL
262
- if (cv::ocl::useOpenCL () && ocl::Device::getDefault ().isIntel ())
263
- {
264
- targets.push_back (make_tuple (DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL));
265
- targets.push_back (make_tuple (DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_OPENCL_FP16));
266
- }
267
- #endif
268
- if (checkIETarget (DNN_TARGET_MYRIAD))
269
- targets.push_back (make_tuple (DNN_BACKEND_INFERENCE_ENGINE, DNN_TARGET_MYRIAD));
232
+ available = getAvailableTargets (DNN_BACKEND_INFERENCE_ENGINE);
233
+ for (std::vector< Target >::const_iterator i = available.begin (); i != available.end (); ++i)
234
+ targets.push_back (make_tuple (DNN_BACKEND_INFERENCE_ENGINE, *i));
270
235
}
271
- #endif
272
- if (withCpuOCV)
273
- targets.push_back (make_tuple (DNN_BACKEND_OPENCV, DNN_TARGET_CPU));
274
- #ifdef HAVE_OPENCL
275
- if (cv::ocl::useOpenCL ())
276
236
{
277
- targets.push_back (make_tuple (DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL));
278
- targets.push_back (make_tuple (DNN_BACKEND_OPENCV, DNN_TARGET_OPENCL_FP16));
237
+ available = getAvailableTargets (DNN_BACKEND_OPENCV);
238
+ for (std::vector< Target >::const_iterator i = available.begin (); i != available.end (); ++i)
239
+ targets.push_back (make_tuple (DNN_BACKEND_OPENCV, *i));
279
240
}
280
- #endif
281
- if (targets.empty ()) // validate at least CPU mode
282
- targets.push_back (make_tuple (DNN_BACKEND_OPENCV, DNN_TARGET_CPU));
283
241
return testing::ValuesIn (targets);
284
242
}
285
243
@@ -289,21 +247,6 @@ testing::internal::ParamGenerator<tuple<Backend, Target> > dnnBackendsAndTargets
289
247
namespace opencv_test {
290
248
using namespace cv ::dnn;
291
249
292
- static inline
293
- testing::internal::ParamGenerator<Target> availableDnnTargets ()
294
- {
295
- static std::vector<Target> targets;
296
- if (targets.empty ())
297
- {
298
- targets.push_back (DNN_TARGET_CPU);
299
- #ifdef HAVE_OPENCL
300
- if (cv::ocl::useOpenCL ())
301
- targets.push_back (DNN_TARGET_OPENCL);
302
- #endif
303
- }
304
- return testing::ValuesIn (targets);
305
- }
306
-
307
250
class DNNTestLayer : public TestWithParam <tuple<Backend, Target> >
308
251
{
309
252
public:
@@ -332,23 +275,10 @@ class DNNTestLayer : public TestWithParam<tuple<Backend, Target> >
332
275
}
333
276
}
334
277
335
- static void checkBackend (int backend, int target, Mat* inp = 0 , Mat* ref = 0 )
336
- {
337
- if (backend == DNN_BACKEND_OPENCV && (target == DNN_TARGET_OPENCL || target == DNN_TARGET_OPENCL_FP16))
338
- {
339
- #ifdef HAVE_OPENCL
340
- if (!cv::ocl::useOpenCL ())
341
- #endif
342
- {
343
- throw SkipTestException (" OpenCL is not available/disabled in OpenCV" );
344
- }
345
- }
278
+ static void checkBackend (int backend, int target, Mat* inp = 0 , Mat* ref = 0 )
279
+ {
346
280
if (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)
347
281
{
348
- if (!checkIETarget (DNN_TARGET_MYRIAD))
349
- {
350
- throw SkipTestException (" Myriad is not available/disabled in OpenCV" );
351
- }
352
282
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_RELEASE < 2018030000
353
283
if (inp && ref && inp->size [0 ] != 1 )
354
284
{
0 commit comments