目录
1、FastDeploy
1.1 安装
1.2 yolo推理部署示例
1.3 推理部署思路
1、FastDeploy
FastDeploy 通过提供简洁的API接口,让AI推理部署变得更加高效和灵活。适用于多种主流算法模型,且支持跨平台、多硬件兼容等优势。
支持 GPU、CPU、Jetson、ARM CPU、瑞芯微NPU、晶晨NPU、恩智浦NPU 等多类硬件;
支持Windows、Linux、Android、IOS等操作系统,可本地、服务化、Web端、移动端部署等;
支持CV、NLP、Speech 三大领域, 如物体检测、分类、分割、OCR、文本分类、信息抽取、跟踪、语音合成等主流算法。
1.1 安装
python虚拟环境下,直接使用pip命令,建议带上FastDeploy轮子网址。
#cpu版本安装
pip install fastdeploy==1.0.1 -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html#gpu版本安装
pip install fastdeploy-gpu-python==1.0.1 -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
如需系统学习python虚拟环境,请转至如下文章链接。
python:windows下管理虚拟环境_windows python 虚拟环境-CSDN博客文章浏览阅读1.4k次,点赞25次,收藏23次。通过miniconda工具,该工具可创建多个虚拟环境,每个虚拟环境内,都可以根据项目对版本的需求,安装python 解释器和 依赖包,并且多个虚拟环境独立管理_windows python 虚拟环境https://blog.csdn.net/weixin_47285222/article/details/141351119
我部署的硬件平台,intel cpu下的win10操作系统;虚拟环境,python 3.9,fastdeploy1.0.1。
1.2 yolo推理部署示例
以最常见的yolov5检测为例,部署推理代码,仅需两步,示例代码如下。
#导包
import fastdeploy as fd#加载模型
det_model = fd.vision.detection.YOLOv5(model_file, params_file,runtime_option,model_format)
#推理
result = det_model.predict(image,conf_threshold=0.5,nms_iou_threshold=0.5)
1、加载模型时,参数说明如下
- model_file:字符串,表示模型路径
- params_file:字符串,表示参数文件路径。如果模型为ONNX格式,则可为空
- runtime_option:fastdeploy.RuntimeOption类型,以option = fd.RuntimeOption()方式创建,用于设置推理设备,数据大小,推理引擎等。如果为空,则默认使用CPU模式
- model_format:fastdeploy.ModelForamt类型,表示加载模型的格式,默认为ONNX
比较常用的模型格式ONNX,且yolo中有导出该格式模型的脚本export 。如果有NVIDIA GPU的,可在runtime_option参数中进行设置,代码示例如下
import fastdeploy as fdoption = fd.RuntimeOption()
if device == "GPU":option.use_gpu()#加载模型,onnx格式,参数params_file和model_format默认即可
det_model = fd.vision.detection.YOLOv5(model_file,runtime_option=option)
#推理
result = det_model.predict(image,conf_threshold=0.5,nms_iou_threshold=0.5)
进入 fd.RuntimeOption() 类中,里面支持很多设置API,不光有设备选择,还支持panddle和openvion等推理引擎。这里不一一截图了,大家可根据自己需要,自行探索。
2、模型推理predict,yolo检测后处理中的非极大值抑制,需要用到两个阈值参数
这里将yolo中的后端处理(非极大值抑制),一并包含在推理过程中,得到的结果 result 字典中包含以下几部分。其中,box,label,score 是我们经常需要用到的,可自行加载。
1.3 推理部署思路
1.2小节内容以yolov5检测为例,详细介绍,使用fastdeploy部署推理时,调用API时的一些规则。
如果大家有不同需求,譬如分类、分割等,亦或者使用其他检测模型,检查该类模型是否可用该工具部署,都可通过检查fastdeploy 中的API。
譬如先确定是检测、分类,或者是分割等大方向。使用代码提示,如下都会自动提示和填充
fd.vision.detection
fd.vision.classification
fd.vision.segmentation
确定好大方向后,可直接点进该类,查看其包含的模型都有那些。比如检测,如下图所示。
如果确定有你所需的模型后,在选择使用什么格式加载模型,这步就回归到1.2小节了,可根据API参数说明规范使用。
以上内容,足以让一个新手小白,快速查看和使用fastdeploy工具,部署自己的推理模型。