yolov5部署到android studio

环境

Ubuntu22.10
Pytorch2.0.1+cu117
Android Studio Flamingo | 2022.2.1 Patch 1

获取demo

git clone https://github.com/pytorch/android-demo-app.git

打开android-demo-app/ObjectDectection项目。
打开app/build.gradle文件,修改pytorch版本
这里遇到最大的坑,就是训练的pytorch版本和android的包版本相差过大,网上大多数安卓这里都是1.10.0在这里插入图片描述

implementation 'org.pytorch:pytorch_android_lite:1.13.1'
implementation 'org.pytorch:pytorch_android_torchvision_lite:1.13.1'

将pt文件导出为ptl文件

修改yolov5中的export.py,其中export_torchscript函数不能导出ptl文件,修改为以下:

def export_torchscript(model, im, file, optimize, prefix=colorstr('TorchScript:')):
    # YOLOv5 TorchScript model export
    try:
        print(f'\n{prefix} starting export with torch {torch.__version__}...')
        f = file.with_suffix('.torchscript.pt')
        f = str(f)
        fl = file.with_suffix('.torchscript.ptl')

        ts = torch.jit.trace(model, im, strict=False)
        (optimize_for_mobile(ts) if optimize else ts).save(f)
        (optimize_for_mobile(ts) if optimize else ts)._save_for_lite_interpreter(str(fl))
        print(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)')
        print(f'{prefix} export success, saved as {fl} ({file_size(fl):.1f} MB)')
    except Exception as e:
        print(f'{prefix} export failure: {e}')
    return fl, None

运行导出ptl文件

python export.py --weights <your pt file path> --include torchscript

在pt文件的目录下会发现这样的文件,第二个最后后缀为ptl的是我们所需要的文件
在这里插入图片描述

修改demo

修改PrePostProcessor

在PrePostProcessor文件中将mOutputColumn修改为网络模型类别数+5,我这里网络模型类别数是2,所以写7
在这里插入图片描述

增加ptl文件并增加类别文件

在assets文件夹中放入之前导出的ptl文件并且添加一个类别文件,类别文件中填写网络模型类别的name,以回车间隔,如下图
在这里插入图片描述

修改MainActivity

这里修改为ptl文件名和classes文件名
在这里插入图片描述

大功告成

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值