下载预训练ONNX模型已事先转换成ONNX;如果从RetinaFace官方repo下载的模型,需要按如下教程导出ONNX。
- 下载官方仓库并
git clone https://github.com/biubug6/Pytorch_Retinaface.git
- 下载预训练权重并放在weights文件夹
./weights/
mobilenet0.25_Final.pth
mobilenetV1X0.25_pretrain.tar
Resnet50_Final.pth
- 运行convert_to_onnx.py导出ONNX模型文件
PYTHONPATH=. python convert_to_onnx.py --trained_model ./weights/mobilenet0.25_Final.pth --network mobile0.25 --long_side 640 --cpu
PYTHONPATH=. python convert_to_onnx.py --trained_model ./weights/Resnet50_Final.pth --network resnet50 --long_side 640 --cpu
注意:需要先对convert_to_onnx.py脚本中的--long_side参数增加类型约束,type=int.
- 使用onnxsim对模型进行简化
onnxsim FaceDetector.onnx Pytorch_RetinaFace_mobile0.25-640-640.onnx # mobilenet
onnxsim FaceDetector.onnx Pytorch_RetinaFace_resnet50-640-640.onnx # resnet50
为了方便开发者的测试,下面提供了RetinaFace导出的各系列模型,开发者可直接下载使用。(下表中模型的精度来源于源官方库)
模型 | 大小 | 精度 |
---|---|---|
RetinaFace_mobile0.25-640 | 1.7MB | - |
RetinaFace_mobile0.25-720 | 1.7MB | - |
RetinaFace_resnet50-640 | 105MB | - |
RetinaFace_resnet50-720 | 105MB | - |
- 本版本文档和代码基于RetinaFace CommitID:b984b4b 编写