yolov5的工业化部署

背景

老规矩首先背景介绍一下,目的就是为了把pytorch的模型部署在ros上,而ros主要使用的C++,所以我本次的目的就是使用C++调用模型。为什么使用C++呢?当然是因为c++的性能更高了。

我的电脑配置:

  • I5处理器
  • 英伟达的1050ti显卡,4g显存
  • 运行内存8G
  • cuda10.2,cudnn7.6.5

pytorch模型

将 PyTorch 模型转换为 Torch Script

对于这步,ptorch的官网提供了两种方法,

  • 利用Tracing将模型转换为Torch Script
  • 通过Annotation将Model转换为Torch Script

将Script Module序列化为一个文件

不论是从上面两种方法的哪一种方法获得了ScriptModule,都可以将得到的ScriptModule序列化为一个文件,然后C++就可以不依赖任何Python代码来执行该Script所对应的Pytorch模型。 假设我们想要序列化前面trace示例中显示的ResNet18模型。要执行此序列化,只需在模块上调用 save并给个文件名。

yolov5的export.py文件

对于这个python文件,它是可以转为三种类型的文件,以默认的yolov5s.pt文件为例子,

  • 将模型pt文件的转换成对应的onnx文件后,即可使用netron工具查看其网络结构;
  • 将模型文件转为CoreML 文件,这个目的是为了部署到APP上(苹果推出的一种架构);
  • 将模型转为TorchScript文件,也就是为了方便我们使用libtorch调用

对于这部分代码,我修改了部分,主要是为了使用cuda。如果不修改的话,你在libtorch里面使用的话也就只能使用cpu了。
这部分我将True改为了False
model.model[-1].export = False # set Detect() layer export=True
下面两部分主要修改了使用设备部分
img = torch.zeros((opt.batch_size, 3, *opt.img_size)).to(device='cuda')
model = attempt_load(opt.weights, map_location=torch.device('cuda'))

至此,我们在python的编程的语言环境下工作已经完成。

在C++中加载你的Script Module

下载libtorch

我这里下载的是libtorch的cuda10.2版本,其目录结构如下所示:

libtorch/
  bin/
  include/
  lib/
  share/
  • lib/ 包含含链接的共享库,
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Yolov8 是一个常用的目标检测算法,通常使用在计算机视觉领域。如果你想将 Yolov8 进行工业部署,以下是一些步骤可以参考: 1. 模型转换:首先,你需要将 Yolov8 模型转换成适用于工业部署的格式,比如 ONNX 或 TensorFlow Lite。 2. 硬件选择:根据你的需求和预算,选择合适的硬件设备来运行 Yolov8 模型。常见的选择包括 CPU、GPU 和专用的 AI 加速卡(如 NVIDIA 的 GPU)。 3. 部署框架:选择一个适合你的工业部署需求的框架,比如 TensorRT、OpenVINO 或 TensorFlow Serving。这些框架可以帮助你优化模型的推理性能,并提供方便的部署接口。 4. 数据预处理:在部署之前,你可能需要处理输入数据的预处理步骤,比如图像大小的调整、颜色空间转换等。确保预处理步骤与训练时的数据处理一致。 5. 推理优化:使用硬件加速和框架提供的优化技术,优化 Yolov8 模型的推理性能。这可能涉及到模型量化、深度压缩、并行计算等技术。 6. 部署系统:将优化后的模型和部署框架集成到你的工业系统中。这可能涉及到编写代码、设置网络服务、配置硬件等任务。 7. 性能测试和调优:在部署完成后,进行性能测试和调优。根据实际的应用场景,评估模型的准确率、推理速度和资源消耗等指标,并对必要的参数进行调整。 以上是一个大致的工业部署流程,具体的步骤可能会因为不同的需求和平台而有所不同。在实际操作中,你可能还需要考虑模型更新、故障处理、安全性等方面的问题。希望这些信息对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值