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



相关文章
|
1天前
|
人工智能
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
AniDoc 是一款基于视频扩散模型的 2D 动画上色 AI 模型,能够自动将草图序列转换为彩色动画。该模型通过对应匹配技术和背景增强策略,实现了色彩和风格的准确传递,适用于动画制作、游戏开发和数字艺术创作等多个领域。
30 16
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
|
11天前
|
人工智能 安全 测试技术
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
EXAONE 3.5 是 LG AI 研究院推出的开源 AI 模型,擅长长文本处理,能够有效降低模型幻觉问题。该模型提供 24 亿、78 亿和 320 亿参数的三个版本,支持多步推理和检索增强生成技术,适用于多种应用场景。
62 9
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
|
13天前
|
机器学习/深度学习 人工智能
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
SNOOPI是一个创新的AI文本到图像生成框架,通过增强单步扩散模型的指导,显著提升模型性能和控制力。该框架包括PG-SB和NASA两种技术,分别用于增强训练稳定性和整合负面提示。SNOOPI在多个评估指标上超越基线模型,尤其在HPSv2得分达到31.08,成为单步扩散模型的新标杆。
55 10
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
|
13天前
|
人工智能 搜索推荐 开发者
Aurora:xAI 为 Grok AI 推出新的图像生成模型,xAI Premium 用户可无限制访问
Aurora是xAI为Grok AI助手推出的新图像生成模型,专注于生成高逼真度的图像,特别是在人物和风景图像方面。该模型支持文本到图像的生成,并能处理包括公共人物和版权形象在内的多种图像生成请求。Aurora的可用性因用户等级而异,免费用户每天能生成三张图像,而Premium用户则可享受无限制访问。
54 11
Aurora:xAI 为 Grok AI 推出新的图像生成模型,xAI Premium 用户可无限制访问
|
11天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
11天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
12月05日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·电子科技大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
|
5天前
|
人工智能 API Windows
免费部署本地AI大语言模型聊天系统:Chatbox AI + 马斯克grok2.0大模型(简单5步实现,免费且比GPT4.0更好用)
本文介绍了如何部署本地AI大语言模型聊天系统,使用Chatbox AI客户端应用和Grok-beta大模型。通过获取API密钥、下载并安装Chatbox AI、配置模型,最终实现高效、智能的聊天体验。Grok 2大模型由马斯克X-AI发布,支持超长文本上下文理解,免费且易于使用。
33 0
|
6天前
|
人工智能 自然语言处理 物联网
AI Safeguard联合 CMU,斯坦福提出端侧多模态小模型
随着人工智能的快速发展,多模态大模型(MLLMs)在计算机视觉、自然语言处理和多模态任务中扮演着重要角色。
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
55 10
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
转载:【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,探讨了AI在计算机视觉、自然语言处理、语音识别等领域的应用,以及在金融、医疗、教育、互联网等行业中的实践案例。随着技术进步,AI模型正从单一走向多样化,从小规模到大规模分布式训练,企业级AI系统设计面临更多挑战,同时也带来了新的研究与工程实践机遇。文中强调了AI基础设施的重要性,并鼓励读者深入了解AI系统的设计原则与研究方法,共同推动AI技术的发展。
转载:【AI系统】AI的领域、场景与行业应用
下一篇
DataWorks