yolov5模型部署:Triton服务器+TensorRT模型加速(基于Jetson平台)

系列文章目录

yolov5 win10 CPU与GPU环境搭建,亲测有效!
yolov5训练自己的数据集,详细教程!
yolov5转tensorrt模型
Jetson调用triton inference server详细笔记
yolov5模型部署:Triton服务器+TensorRT模型加速(基于Jetson平台)



前言

在完成yolov5环境搭建,训练自己的模型,以及将yolov5模型转换成Tensorrt模型后,下面就要对得到的tensorrt模型进行部署,本文采用的Triton服务器的部署方式。
本文是在完成yolov5转tensorrt模型Jetson安装完成triton inference server的前提下进行的,故所用的模型文件也是以上文章中产生的。对这些步骤不熟悉的同学可以参考系列文章。

一、建立triton模型库

yolov5转tensorrt模型生成了yolov5s.enginlibmyplugins.so文件。

1.1config文件编写

config.pbtxt按如下例子编写:

platform: "tensorrt_plan"
max_batch_size : 1
input [
  {
    name: "data"
    data_type: TYPE_FP32
    dims: [ 3, 640, 640 ]
  }
]
output [
  {
    name: "prob"
    data_type: TYPE_FP32
    dims: [ 6001, 1, 1]
  }
]

其中inputoutput名称与维度在生成engine文件过程中就已确定。

1.2文件配置

将之前生成的yolov5s.engin改名为model.plan。另外还有生成的libmyplugins.so文件,按照下面tree放置:
在这里插入图片描述

二、启动triton服务

cdtritonserver目录下,运行:

LD_PRELOAD=/media/nvidia/ubuntu_fs/plugins/yolov5s/libmyplugins.so ./tritonserver --model-repository=/media/nvidia/ubuntu_fs/model_path

这里需要把libmyplugins.somodel_path改为自己的路径
在这里插入图片描述
可以看到yolov5s模型已经启动成功了(这里我的model_path包含多个模型,如果同学们按照教程来只会出现一个yolov5s模型)
注意:这里必须要加载libmyplugins.so,否则模型无法正常启动。


三、启动客户端

这里需要自己编写前处理与后处理代码,下面给出样例代码:
https://github.com/JulyLi2019/tensorrt-yolov5(欢迎star!!!)
下面贴出client端关键部分代码:

    inputs = []
    outputs = []
    inputs.append(grpcclient.InferInput('data', [1, 3, 640, 640], "FP32"))
    outputs.append(grpcclient.InferRequestedOutput('prob'))

    input_image_buffer = preprocess(frame, FLAGS.mask_y)
    input_image_buffer = np.expand_dims(input_image_buffer, axis=0)
    inputs[0].set_data_from_numpy(input_image_buffer)

    results = triton_client.infer(model_name=FLAGS.model,
                                  inputs=inputs,
                                  outputs=outputs,
                                  client_timeout=None)

    result = results.as_numpy('prob')
    detected_objects = postprocess(result, frame.shape[1], frame.shape[0], FLAGS.confidence, FLAGS.nms)

测试图片

在这里插入图片描述
在这里插入图片描述

测试视频

在这里插入图片描述

总结

Triton环境搭建与模型成功部署,整个过程相当痛苦,前前后后搞了有两周,特别是加载自己的模型时,遇到了很多问题,也询问一些CSDN的博主,这里特别感谢小屋*大神,不仅给了回答了我的很多问题,还给我提供了测试代码,虽然你不一定会看到这篇博客,但是还要谢谢你!!!

参考文档:
https://blog.csdn.net/weixin_48994268/article/details/118859830
http://doge.ac.cn/?p=2856

如果阅读本文对你有用,欢迎一键三连呀!!!
2021年8月24日15:55:18
在这里插入图片描述

  • 14
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 45
    评论
您好!要在 Docker 中部署 DeepStream 6.1 和 YOLOv5,您可以按照以下步骤进行操作: 1. 首先,安装 Docker 并确保其正常运行。 2. 创建一个新的 Docker 容器,可以使用以下命令: ``` docker run --gpus all --name deepstream-yolov5 -it -v /path/to/your/app:/app nvcr.io/nvidia/deepstream:6.1-21.02-triton ``` 这将创建一个名为 "deepstream-yolov5" 的容器,并将宿主机的 "/path/to/your/app" 目录挂载到容器内的 "/app" 目录中。这个命令使用了 NVIDIA 的 DeepStream 6.1 镜像。 3. 进入容器内部: ``` docker exec -it deepstream-yolov5 bash ``` 4. 在容器内,安装 YOLOv5。可以按照 YOLOv5 的官方文档进行操作,一般是执行以下命令: ``` git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt ``` 这将克隆 YOLOv5 仓库,并安装所需的依赖项。 5. 下载 YOLOv5 的预训练权重文件。您可以从 YOLOv5 的发布页面上下载预训练权重文件,并将其放在 "/app" 目录下。 6. 在 DeepStream 中使用 YOLOv5。您可以根据 DeepStream 的文档进行配置和使用 YOLOv5。一般来说,您需要修改 DeepStream 的配置文件以使用 YOLOv5 模型,并指定预训练权重文件的路径。 7. 运行 DeepStream。根据您的具体需求,您可以运行 DeepStream 以开始使用 YOLOv5 进行目标检测。 这些是一般的步骤,具体的操作可能因您的环境和需求而有所不同。请确保您已经安装了必要的依赖项,并根据文档进行相应的配置。祝您成功部署 DeepStream 6.1 和 YOLOv5!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值