我正在尝试使用MTCNN python API来运行OpenVino人脸检测,然而,转换后的模型的性能比原始模型显著下降。我想知道怎样才能得到类似的结果。
我使用以下命令将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模型,而不是notebook中的pytorch模型。
要重新生成结果,请执行以下步骤。
克隆https://github.com/TropComplique/mtcnn-pytorch.git
正如您将看到的,在P-Net之后的第一阶段中检测到的盒子比原始模型step_by_step mtcnn jupyter notebook中检测到的盒子更多。
你对此有何评论。似乎在模型转换中没有问题,唯一的区别是pytorch有一个可变张量大小(FloatTensor),但是对于OpenVino,我必须重塑每个尺度的输入大小。这可能是得到不同结果的原因,但我一直无法解决这个问题。
发布于 2019-06-20 20:19:27
我检查了所有可能犯的错误,并检查参数以从list_topologies.yaml转换mtcnn模型。此文件随OpenVino安装一起提供,并列出了比例、平均值等参数。
最后,我使用MXNET预先训练好的MTCNN networks解决了这个问题。
我希望这能帮助其他可能遇到这个问题的用户。
https://stackoverflow.com/questions/56682575
复制