跨平台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 模型部署的强大工具。



目录
打赏
0
1
1
0
41
分享
相关文章
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
阿里云百炼是一站式大模型开发及应用构建平台,支持开发者和业务人员轻松设计、构建大模型应用。通过简单操作,用户可在5分钟内开发出大模型应用或在几小时内训练专属模型,专注于创新。
174 87
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
exo:22.1K Star!一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型
exo 是一款由 exo labs 维护的开源项目,能够让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群,支持多种大模型和分布式推理。
257 100
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
ENEL是由上海AI Lab推出的无编码器3D大型多模态模型,能够在多个3D任务中实现高效语义编码和几何结构理解,如3D对象分类、字幕生成和视觉问答。
43 9
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
Lumina-Image 2.0 是上海 AI Lab 开源的高效统一图像生成模型,参数量为26亿,基于扩散模型和Transformer架构,支持多种推理求解器,能生成高质量、多风格的图像。
121 17
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
TIGER:清华突破性模型让AI「听觉」进化:参数量暴降94%,菜市场都能分离清晰人声
TIGER 是清华大学推出的轻量级语音分离模型,通过时频交叉建模和多尺度注意力机制,显著提升语音分离效果,同时降低参数量和计算量。
58 6
TIGER:清华突破性模型让AI「听觉」进化:参数量暴降94%,菜市场都能分离清晰人声
Kiln AI:零代码实现微调模型!自动生成合成数据与微调模型的开源平台
Kiln AI 是一款开源的 AI 开发工具,支持零代码微调多种语言模型,生成合成数据,团队协作开发,自动部署。帮助用户快速构建高质量的 AI 模型。
428 7
Kiln AI:零代码实现微调模型!自动生成合成数据与微调模型的开源平台
AI性能极致体验:通过阿里云平台高效调用满血版DeepSeek-R1模型
DeepSeek是近期热门的开源大语言模型(LLM),以其强大的训练和推理能力备受关注。然而,随着用户需求的增长,其官网在高并发和大数据处理场景下常面临服务不稳定的问题。本文将深度测评通过阿里云平台调用满血版DeepSeek模型(671B),以充分发挥其性能和稳定性。阿里云提供高效、低延迟、大规模并发支持及稳定的云服务保障,并为用户提供100万免费token,简化操作流程,确保企业在AI应用上的高效性和成本效益。尽管如此,DeepSeek API目前不支持联网搜索和图片、文档分析功能,需结合其他工具实现。
72 13
【最佳实践系列】零基础上手百炼语音AI模型
阿里云百炼语音AI服务提供了丰富的功能,包括语音识别、语音合成、实时翻译等。通过`alibabacloud-bailian-speech-demo`项目,可以一键调用这些服务,体验语音及大模型的魅力,降低接入门槛。该项目支持Python和Java,涵盖从简单的一句话合成到复杂的同声传译等多个示例,助力开发者快速上手并进行二次开发。
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
98 24
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
939 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等