fix for unsqueeze opset version 13

pull/20713/head
SamFC10 3 years ago
parent 46fd26e366
commit 9c5d7716e2
  1. 12
      modules/dnn/src/onnx/onnx_importer.cpp
  2. 1
      modules/dnn/test/test_onnx_importer.cpp

@ -1693,8 +1693,16 @@ void ONNXImporter::parseFlatten(LayerParams& layerParams, const opencv_onnx::Nod
void ONNXImporter::parseUnsqueeze(LayerParams& layerParams, const opencv_onnx::NodeProto& node_proto) void ONNXImporter::parseUnsqueeze(LayerParams& layerParams, const opencv_onnx::NodeProto& node_proto)
{ {
CV_Assert(node_proto.input_size() == 1); CV_Assert(node_proto.input_size() == 1 || node_proto.input_size() == 2);
DictValue axes = layerParams.get("axes"); DictValue axes;
if (node_proto.input_size() == 2)
{
Mat blob = getBlob(node_proto, 1);
axes = DictValue::arrayInt(blob.ptr<int>(), blob.total());
}
else
axes = layerParams.get("axes");
if (constBlobs.find(node_proto.input(0)) != constBlobs.end()) if (constBlobs.find(node_proto.input(0)) != constBlobs.end())
{ {
// Constant input. // Constant input.

@ -605,6 +605,7 @@ TEST_P(Test_ONNX_layers, DynamicReshape)
TEST_P(Test_ONNX_layers, Reshape) TEST_P(Test_ONNX_layers, Reshape)
{ {
testONNXModels("unsqueeze"); testONNXModels("unsqueeze");
testONNXModels("unsqueeze_opset_13");
} }
TEST_P(Test_ONNX_layers, Squeeze) TEST_P(Test_ONNX_layers, Squeeze)

Loading…
Cancel
Save