未验证 提交 9e3ba487 编写于 作者: Z Zihao Mu 提交者: GitHub

Merge pull request #21518 from zihaomu:resize_onnx_opset13

Add resize layer compatible with ONNX opset13 version
上级 aee8425b
......@@ -108,7 +108,7 @@ bool Subgraph::match(const Ptr<ImportGraphWrapper>& net, int nodeId,
for (int j = 0; j < inputNodes.size(); ++j)
{
if (nodes[inputNodes[j]].empty()) // Unknown input node type.
if (nodes[inputNodes[j]].empty() || node->getInputName(j).empty()) // Unknown input node type.
continue;
nodeId = getInputNodeId(net, node, j);
const Ptr<ImportNodeWrapper> inpNode = net->getNode(nodeId);
......
......@@ -2781,16 +2781,20 @@ void ONNXImporter::parseResize(LayerParams& layerParams, const opencv_onnx::Node
// opset-10: input = [X, scales]
// opset-11: input = [X, roi, scales] or [x, roi, scales, sizes]
// opset-13: may have empty input, [X, "", "", sizes] or [x, "", scales]
int scalesInputId = node_proto.input_size() == 2 ? 1 : 2;
const std::string& scale_name = node_proto.input(scalesInputId);
Mat scales;
if(!scale_name.empty())
scales = getBlob(node_proto, scalesInputId);
Mat scales = getBlob(node_proto, scalesInputId);
if (!scales.empty())
{
CV_CheckEQ(scales.total(), (size_t)4, "HCHW layout is expected");
layerParams.set("zoom_factor_y", scales.at<float>(2));
layerParams.set("zoom_factor_x", scales.at<float>(3));
}
else if (node_proto.input_size() >= 4) // opset-11
else if (node_proto.input_size() >= 4) // opset-11 [x, roi, scales, sizes] or opset-13: input = [X, "", "", sizes]
{
const std::string& inputSizes = node_proto.input(3);
if (constBlobs.find(inputSizes) != constBlobs.end())
......
......@@ -885,9 +885,14 @@ TEST_P(Test_ONNX_layers, DynamicResize)
testONNXModels("dynamic_resize_9", npy, 0, 0, false, true, 2);
testONNXModels("dynamic_resize_10", npy, 0, 0, false, true, 2);
testONNXModels("dynamic_resize_11", npy, 0, 0, false, true, 2);
testONNXModels("dynamic_resize_13", npy, 0, 0, false, true, 2);
testONNXModels("dynamic_resize_scale_9", npy, 0, 0, false, true, 2);
testONNXModels("dynamic_resize_scale_10", npy, 0, 0, false, true, 2);
testONNXModels("dynamic_resize_scale_11", npy, 0, 0, false, true, 2);
testONNXModels("dynamic_resize_scale_13", npy, 0, 0, false, true, 2);
testONNXModels("resize_size_opset11");
testONNXModels("resize_size_opset13");
}
TEST_P(Test_ONNX_layers, Resize_HumanSeg)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册