Use YuNet of fixed input shape to avoid 'parseShape' error (#45)
Browse files* replace with yunet of fixed input shape
* update quantized yunet
* update yunet filename used in scripts
* add a note message for https://github.com/opencv/opencv_zoo/issues/44
benchmark/config/face_detection_yunet.yaml
CHANGED
|
@@ -16,7 +16,8 @@ Benchmark:
|
|
| 16 |
|
| 17 |
Model:
|
| 18 |
name: "YuNet"
|
| 19 |
-
modelPath: "models/face_detection_yunet/
|
| 20 |
confThreshold: 0.6
|
| 21 |
nmsThreshold: 0.3
|
| 22 |
-
topK: 5000
|
|
|
|
|
|
| 16 |
|
| 17 |
Model:
|
| 18 |
name: "YuNet"
|
| 19 |
+
modelPath: "models/face_detection_yunet/face_detection_yunet_2022mar.onnx"
|
| 20 |
confThreshold: 0.6
|
| 21 |
nmsThreshold: 0.3
|
| 22 |
+
topK: 5000
|
| 23 |
+
|
models/face_detection_yunet/README.md
CHANGED
|
@@ -5,6 +5,7 @@ YuNet is a light-weight, fast and accurate face detection model, which achieves
|
|
| 5 |
Notes:
|
| 6 |
- Model source: [here](https://github.com/ShiqiYu/libfacedetection.train/blob/a61a428929148171b488f024b5d6774f93cdbc13/tasks/task1/onnx/yunet.onnx).
|
| 7 |
- For details on training this model, please visit https://github.com/ShiqiYu/libfacedetection.train.
|
|
|
|
| 8 |
|
| 9 |
## Demo
|
| 10 |
|
|
|
|
| 5 |
Notes:
|
| 6 |
- Model source: [here](https://github.com/ShiqiYu/libfacedetection.train/blob/a61a428929148171b488f024b5d6774f93cdbc13/tasks/task1/onnx/yunet.onnx).
|
| 7 |
- For details on training this model, please visit https://github.com/ShiqiYu/libfacedetection.train.
|
| 8 |
+
- This ONNX model has fixed input shape, but OpenCV DNN infers on the exact shape of input image. See https://github.com/opencv/opencv_zoo/issues/44 for more information.
|
| 9 |
|
| 10 |
## Demo
|
| 11 |
|
models/face_detection_yunet/demo.py
CHANGED
|
@@ -33,7 +33,7 @@ except:
|
|
| 33 |
|
| 34 |
parser = argparse.ArgumentParser(description='YuNet: A Fast and Accurate CNN-based Face Detector (https://github.com/ShiqiYu/libfacedetection).')
|
| 35 |
parser.add_argument('--input', '-i', type=str, help='Path to the input image. Omit for using default camera.')
|
| 36 |
-
parser.add_argument('--model', '-m', type=str, default='
|
| 37 |
parser.add_argument('--backend', '-b', type=int, default=backends[0], help=help_msg_backends.format(*backends))
|
| 38 |
parser.add_argument('--target', '-t', type=int, default=targets[0], help=help_msg_targets.format(*targets))
|
| 39 |
parser.add_argument('--conf_threshold', type=float, default=0.9, help='Filter out faces of confidence < conf_threshold.')
|
|
|
|
| 33 |
|
| 34 |
parser = argparse.ArgumentParser(description='YuNet: A Fast and Accurate CNN-based Face Detector (https://github.com/ShiqiYu/libfacedetection).')
|
| 35 |
parser.add_argument('--input', '-i', type=str, help='Path to the input image. Omit for using default camera.')
|
| 36 |
+
parser.add_argument('--model', '-m', type=str, default='face_detection_yunet_2022mar.onnx', help='Path to the model.')
|
| 37 |
parser.add_argument('--backend', '-b', type=int, default=backends[0], help=help_msg_backends.format(*backends))
|
| 38 |
parser.add_argument('--target', '-t', type=int, default=targets[0], help=help_msg_targets.format(*targets))
|
| 39 |
parser.add_argument('--conf_threshold', type=float, default=0.9, help='Filter out faces of confidence < conf_threshold.')
|
tools/quantize/quantize.py
CHANGED
|
@@ -78,8 +78,9 @@ class Quantize:
|
|
| 78 |
|
| 79 |
|
| 80 |
models=dict(
|
| 81 |
-
yunet=Quantize(model_path='../../models/face_detection_yunet/
|
| 82 |
-
calibration_image_dir='../../benchmark/data/face_detection'
|
|
|
|
| 83 |
sface=Quantize(model_path='../../models/face_recognition_sface/face_recognition_sface_2021dec.onnx',
|
| 84 |
calibration_image_dir='../../benchmark/data/face_recognition',
|
| 85 |
transforms=Compose([Resize(size=(112, 112))])),
|
|
|
|
| 78 |
|
| 79 |
|
| 80 |
models=dict(
|
| 81 |
+
yunet=Quantize(model_path='../../models/face_detection_yunet/face_detection_yunet_2022mar.onnx',
|
| 82 |
+
calibration_image_dir='../../benchmark/data/face_detection',
|
| 83 |
+
transforms=Compose([Resize(size=(160, 120))])),
|
| 84 |
sface=Quantize(model_path='../../models/face_recognition_sface/face_recognition_sface_2021dec.onnx',
|
| 85 |
calibration_image_dir='../../benchmark/data/face_recognition',
|
| 86 |
transforms=Compose([Resize(size=(112, 112))])),
|