mirror of
https://github.com/opencv/opencv.git
synced 2025-08-06 14:36:36 +08:00
Merge pull request #21518 from zihaomu:resize_onnx_opset13
Add resize layer compatible with ONNX opset13 version
This commit is contained in:
parent
aee8425b68
commit
9e3ba487fa
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user