forked from PulseFocusPlatform/PulseFocusPlatform
e7ceeeb4c5 | ||
---|---|---|
.. | ||
__pycache__ | ||
213.py | ||
README.md | ||
benchmark_utils.py | ||
infer.py | ||
keypoint_det_unite_infer.py | ||
keypoint_infer.py | ||
keypoint_postprocess.py | ||
keypoint_preprocess.py | ||
keypoint_visualize.py | ||
preprocess.py | ||
topdown_unite_utils.py | ||
utils.py | ||
visualize.py |
README.md
Python端预测部署
在PaddlePaddle中预测引擎和训练引擎底层有着不同的优化方法, 预测引擎使用了AnalysisPredictor,专门针对推理进行了优化,是基于C++预测库的Python接口,该引擎可以对模型进行多项图优化,减少不必要的内存拷贝。如果用户在部署已训练模型的过程中对性能有较高的要求,我们提供了独立于PaddleDetection的预测脚本,方便用户直接集成部署。
主要包含两个步骤:
- 导出预测模型
- 基于Python进行预测
1. 导出预测模型
PaddleDetection在训练过程包括网络的前向和优化器相关参数,而在部署过程中,我们只需要前向参数,具体参考:导出模型
导出后目录下,包括infer_cfg.yml
, model.pdiparams
, model.pdiparams.info
, model.pdmodel
四个文件。
2. 基于Python的预测
在终端输入以下命令进行预测:
python deploy/python/infer.py --model_dir=./inference/yolov3_mobilenet_v1_roadsign --image_file=./demo/road554.png --use_gpu=True
参数说明如下:
参数 | 是否必须 | 含义 |
---|---|---|
--model_dir | Yes | 上述导出的模型路径 |
--image_file | Option | 需要预测的图片 |
--image_dir | Option | 要预测的图片文件夹路径 |
--video_file | Option | 需要预测的视频 |
--camera_id | Option | 用来预测的摄像头ID,默认为-1(表示不使用摄像头预测,可设置为:0 - (摄像头数目-1) ),预测过程中在可视化界面按q 退出输出预测结果到:output/output.mp4 |
--use_gpu | No | 是否GPU,默认为False |
--run_mode | No | 使用GPU时,默认为fluid, 可选(fluid/trt_fp32/trt_fp16/trt_int8) |
--batch_size | No | 预测时的batch size,在指定image_dir 时有效 |
--threshold | No | 预测得分的阈值,默认为0.5 |
--output_dir | No | 可视化结果保存的根目录,默认为output/ |
--run_benchmark | No | 是否运行benchmark,同时需指定--image_file 或--image_dir |
--enable_mkldnn | No | CPU预测中是否开启MKLDNN加速 |
--cpu_threads | No | 设置cpu线程数,默认为1 |
说明:
- 参数优先级顺序:
camera_id
>video_file
>image_dir
>image_file
。 - run_mode:fluid代表使用AnalysisPredictor,精度float32来推理,其他参数指用AnalysisPredictor,TensorRT不同精度来推理。
- 如果安装的PaddlePaddle不支持基于TensorRT进行预测,需要自行编译,详细可参考预测库编译教程。