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文件名
大功告成
来源地址:https://blog.csdn.net/weixin_44220583/article/details/131092587
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341