From 2f6f52d644b97881cc288863d80892b926db5814 Mon Sep 17 00:00:00 2001 From: Dmitry Kurtaev Date: Fri, 23 Nov 2018 18:23:27 +0300 Subject: [PATCH] Fix ONNX's emotion_ferplus model. Reduce input size for OpenPose tests --- modules/dnn/src/onnx/onnx_importer.cpp | 23 +++++++++++++++++++++-- modules/dnn/test/test_backends.cpp | 6 +++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/modules/dnn/src/onnx/onnx_importer.cpp b/modules/dnn/src/onnx/onnx_importer.cpp index f1c6f43..22eda50 100644 --- a/modules/dnn/src/onnx/onnx_importer.cpp +++ b/modules/dnn/src/onnx/onnx_importer.cpp @@ -358,7 +358,8 @@ void ONNXImporter::populateNet(Net dstNet) layerParams.set("shift", blob.at(0)); } else { - layerParams.type = "Shift"; + layerParams.type = "Scale"; + layerParams.set("bias_term", true); layerParams.blobs.push_back(blob); } } @@ -375,8 +376,26 @@ void ONNXImporter::populateNet(Net dstNet) layerParams.set("shift", blob.at(0)); } else { - layerParams.type = "Shift"; + layerParams.type = "Scale"; + layerParams.set("has_bias", true); + layerParams.blobs.push_back(blob); + } + } + else if (layer_type == "Div") + { + Mat blob = getBlob(node_proto, constBlobs, 1); + CV_Assert_N(blob.type() == CV_32F, blob.total()); + divide(1.0, blob, blob); + if (blob.total() == 1) + { + layerParams.set("scale", blob.at(0)); + layerParams.type = "Power"; + } + else + { + layerParams.type = "Scale"; layerParams.blobs.push_back(blob); + layerParams.set("bias_term", false); } } else if (layer_type == "Constant") diff --git a/modules/dnn/test/test_backends.cpp b/modules/dnn/test/test_backends.cpp index 020703c..a18b25e 100644 --- a/modules/dnn/test/test_backends.cpp +++ b/modules/dnn/test/test_backends.cpp @@ -197,7 +197,7 @@ TEST_P(DNNTestNetwork, OpenPose_pose_coco) (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); processNet("dnn/openpose_pose_coco.caffemodel", "dnn/openpose_pose_coco.prototxt", - Size(368, 368)); + Size(46, 46)); } TEST_P(DNNTestNetwork, OpenPose_pose_mpi) @@ -206,7 +206,7 @@ TEST_P(DNNTestNetwork, OpenPose_pose_mpi) (backend == DNN_BACKEND_INFERENCE_ENGINE && target == DNN_TARGET_MYRIAD)) throw SkipTestException(""); processNet("dnn/openpose_pose_mpi.caffemodel", "dnn/openpose_pose_mpi.prototxt", - Size(368, 368)); + Size(46, 46)); } TEST_P(DNNTestNetwork, OpenPose_pose_mpi_faster_4_stages) @@ -217,7 +217,7 @@ TEST_P(DNNTestNetwork, OpenPose_pose_mpi_faster_4_stages) // The same .caffemodel but modified .prototxt // See https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/src/openpose/pose/poseParameters.cpp processNet("dnn/openpose_pose_mpi.caffemodel", "dnn/openpose_pose_mpi_faster_4_stages.prototxt", - Size(368, 368)); + Size(46, 46)); } TEST_P(DNNTestNetwork, OpenFace) -- 2.7.4