跨平台AI模型部署神器:FastDeploy实战Yolov5

简介: 跨平台AI模型部署神器:FastDeploy实战Yolov5

简介

FastDeploy 是一款易用、高效的 AI 模型部署工具。

它旨在简化 AI 模型从训练到部署的整个流程,支持在多种硬件和操作系统上进行模型推理。

特点如下:

多平台支持FastDeploy 支持在云、边、端等多种环境中部署模型,包括但不限于 WindowsLinuxAndroidiOS 等操作系统。

多硬件兼容 : 支持多种硬件平台,如 Intel CPUNVIDIA GPUJetsonARM CPU 等。

多算法支持 : 支持多种主流算法模型,包括图像分类、目标检测、图像分割、人脸检测、人体关键点检测、文本识别等。

低门槛使用FastDeploy 提供了简单易用的 API,开发者可以通过少量代码实现模型的加载、推理和输出处理。

模型推理

FastDeploy 模型推理指的是使用 FastDeploy 工具对已经训练好的 AI 模型进行加载和执行,以完成对新的输入数据的预测任务。

在机器学习和深度学习中,"推理"(Inference)通常指的是模型对新数据进行预测���过程,与模型的训练阶段(Training)相对。

推理过程包含以下步骤:

加载模型:将训练好的模型从磁盘加载到内存中,以便进行推理

预处理输入数据:对新的输入数据进行必要的预处理,比如调整图像大小、归一化等,以匹配模型训练时的数据格式。

执行推理:将预处理后的数据输入模型,模型根据其学习到的参数进行计算,输出预测结果。

后处理输出数据:对模型的输出结果进行必要的处理,比如解码、阈值筛选、非极大值抑制(NMS)等,以获得最终的预测结果。

输出结果:将处理后的预测结果输出,这可能是分类标签、边界框坐标、分割图等,具体取决于模型的类型和任务。

安装

github:github.com/PaddlePaddl…

新建一个目录 fastDeploy-yolo5,本文所用环境是,wind10 conda 虚拟环境 python3.9

本电脑没有 gpu ,就只能安装 cpu 版本。

切换到 fastDeploy-yolo5 目录,激活环境,输入以下安装命令:


pip install numpy opencv-python fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

image.png

yolov5模型导出

yolov5 模型训练已经在前面的文章中讲解了,此处不在重复说明。本文以上篇训练的模型为测试模型。

由于 fastDeploy 需要的模型是 ONNX 格式的,所以 yolov5 需要转换模型。

yolov5 默认是注释掉了模型导出的依赖的,需要开启依赖

安装依赖

如图所示打开依赖注释,再安装依赖


pip install -r requirements.txt

image.png

export.py 脚本

export.py,这个是专门用来将 pytorch 训练出来的 .pt格式 的模型文件转化为其他格式.

这个脚本有3种导出格式,分别是 TorchScriptONNXCoreML

打开 pycharm ,点击运行调试配置。新建一个运行环境:

image.png

输入以下运行参数:


--weights ./runs/train/exp3/weights/best.pt --data ./data/head.yaml --include onnx

--weights :是你训练好的模型文件

--data :是你训练模型时的配置文件

--include :是你想要转换成的模型格式,fastDeploy 需要的模型是ONNX

导出转换模型

运行刚配置的运行配置:

image.png

查看导出目录:

image.png

模型推理

yolov5 转换的模型移到推理目录,准备好测试图片。此时项目目录如下:

image.png

新建一个推理文件 infer.py,写入以下内容


import fastdeploy as fd
import cv2
import os
from pathlib import Path
import sys
import platform
def parse_arguments():
    import argparse
    import ast
    parser = argparse.ArgumentParser()
    parser.add_argument("--model", default=None, help="Path of yolov5 model.")
    parser.add_argument(
        "--image", default=None, help="Path of test image file.")
    parser.add_argument(
        "--device",
        type=str,
        default='cpu',
        help="Type of inference device, support 'cpu' or 'gpu' or 'kunlunxin'.")
    parser.add_argument(
        "--use_trt",
        type=ast.literal_eval,
        default=False,
        help="Wether to use tensorrt.")
    return parser.parse_args()
args = parse_arguments()
FILE = Path(__file__).resolve()
ROOT = FILE.parents[0]
if str(ROOT) not in sys.path:
    sys.path.append(str(ROOT))  # add ROOT to PATH
if platform.system() != "Windows":
    ROOT = Path(os.path.relpath(ROOT, Path.cwd()))  # relative
model_file = args.model
# params_file = os.path.join(args.model, "model.pdiparams")
model = fd.vision.detection.YOLOv5(
    model_file,
    "",
    runtime_option=None)
# 预测图片检测结果
if args.image is None:
    image = fd.utils.get_detection_test_image()
else:
    image = args.image
im = cv2.imread(image)
result = model.predict(im)
print(result)
# 预测结果可视化
vis_im = fd.vision.vis_detection(im, result)
cv2.imwrite("visualized_result.jpg", vis_im)
print("Visualized result save in ./visualized_result.jpg")


YOLOv5 模型加载和初始化,其中 model_file 为导出的 ONNX 模型格式。

参数

  • model_file(str): 模型文件路径
  • params_file(str): 参数文件路径,当模型格式为ONNX时,此参数传入空字符串即可
  • runtime_option(RuntimeOption): 后端推理配置,默认为None,即采用默认配置
  • model_format(ModelFormat): 模型格式,默认为ONNX格式

运行以下命令测试


python infer.py --model ./model/best.onnx --image ./img/666.jpg --device cpu


image.png

查看结果:

image.png

总结

FastDeploy 的设计目标是降低 AI 模型部署的复杂性和门槛,使得开发者能够快速将训练好的模型部署到实际应用中,加速 AI 技术的落地和应用。

通过提供多平台支持、多硬件兼容以及对多种主流算法模型的兼容,FastDeploy 使得 AI 模型的部署变得更加灵活和高效。

简单易用的 API 设计进一步降低了开发者的使用难度,使得模型推理过程简洁明了。

FastDeploy 不仅提高了模型部署的速度,也提升了模型在各种设备上运行的稳定性和性能,是 AI 模型部署的强大工具。



相关文章
|
2月前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
1748 120
|
2月前
|
人工智能 测试技术 API
构建AI智能体:二、DeepSeek的Ollama部署FastAPI封装调用
本文介绍如何通过Ollama本地部署DeepSeek大模型,结合FastAPI实现API接口调用。涵盖Ollama安装、路径迁移、模型下载运行及REST API封装全过程,助力快速构建可扩展的AI应用服务。
689 6
|
2月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
304 120
|
2月前
|
人工智能 缓存 运维
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
本文介绍联调造数场景下的AI应用演进:从单Agent模式到多Agent协同的架构升级。针对复杂指令执行不准、响应慢等问题,通过意图识别、工具引擎、推理执行等多Agent分工协作,结合工程化手段提升准确性与效率,并分享了关键设计思路与实践心得。
487 20
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
|
2月前
|
存储 人工智能 搜索推荐
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
本文介绍基于LangGraph构建的双层记忆系统,通过短期与长期记忆协同,实现AI代理的持续学习。短期记忆管理会话内上下文,长期记忆跨会话存储用户偏好与决策,结合人机协作反馈循环,动态更新提示词,使代理具备个性化响应与行为进化能力。
435 10
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
|
2月前
|
人工智能 IDE 开发工具
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
|
2月前
|
数据采集 人工智能 JSON
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码
|
2月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
2月前
|
人工智能 自然语言处理 搜索推荐
营销智能体 AI 平台:技术人告别营销需求返工的实战手册
技术人常陷营销琐事:改文案、调接口、算数据。营销智能体AI平台并非“营销玩具”,而是为技术减负的利器。它将内容生成、投放优化、数据复盘自动化,无缝对接现有系统,提升效率2倍以上。落地需避三坑:勿贪全、勿求完美、紧扣业务需求。让技术专注核心,告别重复搬运。