From: Zihao Mu Date: Sat, 8 Oct 2022 07:51:40 +0000 (+0800) Subject: add greater_or_equal and less_or_equal ONNX support X-Git-Tag: accepted/tizen/unified/20230127.161057~1^2~130^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9821fae59df5f25f0ee5a6c4d7fd102c5dea0906;p=platform%2Fupstream%2Fopencv.git add greater_or_equal and less_or_equal ONNX support --- diff --git a/modules/dnn/src/layers/nary_eltwise_layers.cpp b/modules/dnn/src/layers/nary_eltwise_layers.cpp index db37f16..9431ff2 100644 --- a/modules/dnn/src/layers/nary_eltwise_layers.cpp +++ b/modules/dnn/src/layers/nary_eltwise_layers.cpp @@ -51,11 +51,11 @@ public: op = OPERATION::EQUAL; else if (operation == "greater") op = OPERATION::GREATER; - else if (operation == "greater_equal") + else if (operation == "greaterorequal") op = OPERATION::GREATER_EQUAL; else if (operation == "less") op = OPERATION::LESS; - else if (operation == "less_equal") + else if (operation == "lessorequal") op = OPERATION::LESS_EQUAL; else if (operation == "pow") op = OPERATION::POW; diff --git a/modules/dnn/src/onnx/onnx_importer.cpp b/modules/dnn/src/onnx/onnx_importer.cpp index 025f69d..013520d 100644 --- a/modules/dnn/src/onnx/onnx_importer.cpp +++ b/modules/dnn/src/onnx/onnx_importer.cpp @@ -2912,7 +2912,7 @@ void ONNXImporter::parseCumSum(LayerParams& layerParams, const opencv_onnx::Node addLayer(layerParams, node_proto); } -// "Equal" "Greater" "Less" "Pow" "Add" "Sub" "Mul" "Div" "Sum" "Min" "Max" +// "Equal" "Greater" "Less" "Pow" "Add" "Sub" "Mul" "Div" "Sum" "Min" "Max" "GreaterOrEqual" "LessOrEqual" void ONNXImporter::parseElementWise(LayerParams& layerParams, const opencv_onnx::NodeProto& node_proto_) { opencv_onnx::NodeProto node_proto = node_proto_; @@ -3721,7 +3721,9 @@ void ONNXImporter::buildDispatchMap_ONNX_AI(int opset_version) dispatch["SpaceToDepth"] = dispatch["DepthToSpace"] = &ONNXImporter::parseDepthToSpace; dispatch["Equal"] = dispatch["Greater"] = dispatch["Less"] = dispatch["Pow"] = dispatch["Add"] = - dispatch["Sub"] = dispatch["Mul"] = dispatch["Div"] = &ONNXImporter::parseElementWise; + dispatch["Sub"] = dispatch["Mul"] = dispatch["Div"] = dispatch["GreaterOrEqual"] = + dispatch["LessOrEqual"] = &ONNXImporter::parseElementWise; + dispatch["Sum"] = dispatch["Min"] = dispatch["Max"] = &ONNXImporter::parseElementWise; dispatch["Range"] = &ONNXImporter::parseRange; diff --git a/modules/dnn/test/test_onnx_importer.cpp b/modules/dnn/test/test_onnx_importer.cpp index 4eb6b5a..6372bcc 100644 --- a/modules/dnn/test/test_onnx_importer.cpp +++ b/modules/dnn/test/test_onnx_importer.cpp @@ -682,6 +682,16 @@ TEST_P(Test_ONNX_layers, Compare_LT) testONNXModels("less"); } +TEST_P(Test_ONNX_layers, Compare_GTorEQ) +{ + testONNXModels("greater_or_equal"); +} + +TEST_P(Test_ONNX_layers, Compare_LEorEQ) +{ + testONNXModels("less_or_equal"); +} + TEST_P(Test_ONNX_layers, CompareSameDims_EQ) { #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2022010000)