Merge pull request #21607 from fengyuentau:fix_FaceDetectorYN_dynamic_shape

Use YuNet of fixed input shape to fix not-supported-dynamic-zero-shape for FaceDetectorYN

* use yunet with input of fixed shape

* update yunet used in face recognition regression
pull/21651/head^2
Yuantao Feng 3 years ago committed by GitHub
parent 5a86592e93
commit f77c3574af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      modules/dnn/src/onnx/onnx_importer.cpp
  2. 4
      modules/objdetect/test/test_face.cpp

@ -2614,9 +2614,7 @@ void ONNXImporter::parseShape(LayerParams& layerParams, const opencv_onnx::NodeP
if (isDynamicShape)
{
CV_LOG_ERROR(NULL, "DNN/ONNX(Shape): dynamic 'zero' shapes are not supported, input " << toString(inpShape, node_proto.input(0)));
// FIXIT repair assertion
// Disabled to pass face detector tests from #20422
// CV_Assert(!isDynamicShape); // not supported
CV_Assert(!isDynamicShape); // not supported
}
addConstant(node_proto.output(0), shapeMat);
}

@ -78,7 +78,7 @@ TEST(Objdetect_face_detection, regression)
// }
// Initialize detector
std::string model = findDataFile("dnn/onnx/models/yunet-202109.onnx", false);
std::string model = findDataFile("dnn/onnx/models/yunet-202202.onnx", false);
Ptr<FaceDetectorYN> faceDetector = FaceDetectorYN::create(model, "", Size(300, 300));
faceDetector->setScoreThreshold(0.7f);
@ -178,7 +178,7 @@ TEST(Objdetect_face_recognition, regression)
}
// Initialize detector
std::string detect_model = findDataFile("dnn/onnx/models/yunet-202109.onnx", false);
std::string detect_model = findDataFile("dnn/onnx/models/yunet-202202.onnx", false);
Ptr<FaceDetectorYN> faceDetector = FaceDetectorYN::create(detect_model, "", Size(150, 150), score_thresh, nms_thresh);
std::string recog_model = findDataFile("dnn/onnx/models/face_recognizer_fast.onnx", false);

Loading…
Cancel
Save