2

我正在尝试使用 OpenVino python API 来运行 MTCNN 人脸检测,但是,转换后的模型的性能与原始模型相比明显下降。我想知道如何获得类似的结果。

我使用以下命令将mtcnn caffe 模型转换为 OpenVino *.xml 和 *.bin 文件。

python3 mo.py --input_model path/to/PNet/det1.caffemodel --model_name det1 --output_dir path/to/output_dir
python3 mo.py --input_model path/to/RNet/det2.caffemodel --model_name det2 --output_dir path/to/output_dir
python3 mo.py --input_model path/to/ONet/det3.caffemodel --model_name det3 --output_dir path/to/output_dir

并使用step_by_step mtcnn jupyter notebook来检查转换模型的性能。

但是使用 OpenVino 模型的检测结果显着下降。要重新生成结果,您只需在笔记本中加载 OpenVino 模型而不是 pytorch 模型。

要重新生成我的结果,请执行以下步骤。

克隆https://github.com/TropComplique/mtcnn-pytorch.git

并使用这个 jupyter 笔记本

正如您将看到的,在 P-Net 之后的第一阶段检测到的框比在原始模型step_by_step mtcnn jupyter notebook中检测到的框要多。

你对此有何评论。模型转换似乎没有问题,唯一的区别是 pytorch 具有可变张量大小(FloatTensor),但对于 OpenVino,我必须为每个比例重塑输入大小。这可能是得到不同结果的原因,但是我无法解决这个问题。

4

1 回答 1

1

我经历了所有可能犯的错误并检查参数以从 list_topologies.yaml 转换 mtcnn 模型。该文件随附 OpenVino 安装并列出了标度平均值等参数。

最后,我通过使用 MXNET 预训练的 MTCNN网络解决了这个问题。

我希望这对可能遇到此问题的其他用户有所帮助。

于 2019-06-20T20:19:27.417 回答