@@ -245,13 +245,13 @@ class Test_Darknet_nets : public DNNTestLayer
245245 nms_boxes.push_back (box);
246246 nms_confidences.push_back (conf);
247247 nms_classIds.push_back (class_id);
248- # if 0 // use to update test reference data
249- std::cout << b << ", " << class_id << ", " << conf << "f, "
250- << box.x << "f , " << box.y << "f, "
251- << box.x + box.width << "f, " << box.y + box.height << "f,"
252- << std::endl;
253- # endif
254-
248+ if (cvtest::debugLevel > 0 )
249+ {
250+ std::cout << b << " , " << class_id << " , " << conf << " f, "
251+ << box.x << " f, " << box.y << " f, "
252+ << box. x + box. width << " f, " << box. y + box. height << " f, "
253+ << std::endl;
254+ }
255255 }
256256
257257 if (cvIsNaN (iouDiff))
@@ -347,10 +347,22 @@ TEST_P(Test_Darknet_nets, YoloVoc)
347347 1 , 6 , 0 .667770f , 0 .446555f , 0 .453578f , 0 .499986f , 0 .519167f , // a car
348348 1 , 6 , 0 .844947f , 0 .637058f , 0 .460398f , 0 .828508f , 0 .66427f ); // a car
349349
350- double scoreDiff = (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) ? 1e-2 : 8e-5 ;
351- double iouDiff = (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) ? 0.018 : 3e-4 ;
352350 double nmsThreshold = (target == DNN_TARGET_MYRIAD) ? 0.397 : 0.4 ;
353351
352+ double scoreDiff = 8e-5 , iouDiff = 3e-4 ;
353+ if (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD)
354+ {
355+ scoreDiff = 1e-2 ;
356+ iouDiff = 0.018 ;
357+ }
358+ #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
359+ // accuracy
360+ if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
361+ {
362+ iouDiff = std::numeric_limits<double >::quiet_NaN ();
363+ }
364+ #endif
365+
354366 std::string config_file = " yolo-voc.cfg" ;
355367 std::string weights_file = " yolo-voc.weights" ;
356368
@@ -363,6 +375,12 @@ TEST_P(Test_Darknet_nets, YoloVoc)
363375 SCOPED_TRACE (" batch size 2" );
364376 testDarknetModel (config_file, weights_file, ref, scoreDiff, iouDiff, 0.24 , nmsThreshold);
365377 }
378+
379+ #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
380+ // accuracy
381+ if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
382+ applyTestTag (CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
383+ #endif
366384}
367385
368386TEST_P (Test_Darknet_nets, TinyYoloVoc)
@@ -584,6 +602,14 @@ TEST_P(Test_Darknet_nets, YOLOv4)
584602 std::string config_file = " yolov4.cfg" ;
585603 std::string weights_file = " yolov4.weights" ;
586604
605+
606+ #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
607+ // accuracy (batch 1)
608+ if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
609+ {
610+ iouDiff = std::numeric_limits<double >::quiet_NaN ();
611+ }
612+ #endif
587613#if defined(INF_ENGINE_RELEASE)
588614 if ((backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 ||
589615 backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) && target == DNN_TARGET_MYRIAD &&
@@ -602,6 +628,13 @@ TEST_P(Test_Darknet_nets, YOLOv4)
602628 {
603629 SCOPED_TRACE (" batch size 2" );
604630
631+ #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
632+ // accuracy (batch 1)
633+ if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
634+ {
635+ iouDiff = 0 .45f ;
636+ }
637+ #endif
605638#if defined(INF_ENGINE_RELEASE)
606639 if (backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019)
607640 {
@@ -617,6 +650,12 @@ TEST_P(Test_Darknet_nets, YOLOv4)
617650
618651 testDarknetModel (config_file, weights_file, ref, scoreDiff, iouDiff);
619652 }
653+
654+ #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
655+ // accuracy
656+ if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
657+ applyTestTag (CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
658+ #endif
620659}
621660
622661TEST_P (Test_Darknet_nets, YOLOv4_tiny)
@@ -685,6 +724,13 @@ TEST_P(Test_Darknet_nets, YOLOv4x_mish)
685724{
686725 applyTestTag (CV_TEST_TAG_LONG, (target == DNN_TARGET_CPU ? CV_TEST_TAG_MEMORY_1GB : CV_TEST_TAG_MEMORY_2GB));
687726
727+ #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
728+ // IE exception: Ngraph operation Transpose with name permute_168 has dynamic output shape on 0 port, but CPU plug-in supports only static shape
729+ if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && (target == DNN_TARGET_OPENCL || target == DNN_TARGET_OPENCL_FP16))
730+ applyTestTag (target == DNN_TARGET_OPENCL ? CV_TEST_TAG_DNN_SKIP_IE_OPENCL : CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16,
731+ CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_VERSION
732+ );
733+ #endif
688734#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2020040000) // nGraph compilation failure
689735 if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
690736 applyTestTag (CV_TEST_TAG_DNN_SKIP_IE_OPENCL, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
0 commit comments