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

我使用以下命令将mtcnn caffe models转换为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

并使用this jupyter notebbok

如您所见,在P-Net之后的第一阶段中,检测到的盒子比原始模型step_by_step mtcnn jupyter notebook中检测到的盒子更多。

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

最佳答案

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

最后,我通过使用MXNET预训练的MTCNN networks解决了该问题。

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

关于python - 使用OpenVino运行MTCNN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56682575/

10-12 17:10