YOLOv5 的 Android 部署,基于 tflite


环境


window 10 64bit

yolov5 v6.2

torch1.7.1+cuda101

tensorflow-gpu 2.9.1

前言


前文 借助NCNN,在Android上运行YOLOv5目标检测 和 在Android上进行yolov5目标检测,使用torchscript方式,我们分别使用了 ncnn 和 torchscript 这2种方式将 YOLOv5 部署到了 android 手机上。本篇我们将使用另一种方式 tflite 来进行部署,所以,喜欢哪个就用哪个吧。

具体步骤


这里使用最新的 v6.2 版本代码,使用官方的 yolov5s.pt 模型。要使用自己的数据集,需要自己先行训练,训练步骤可以参考文末的链接。

模型转换过程还需要 tensorflow 的环境,安装一下

pip instal tensorflow-gpu


然后就可以使用 export.py 脚本进行转换了,命令如下

python export.py --weights yolov5s.pt --include tflite --img 416


参数 weights 指定 .pt 模型,--include 参数指定要转换的目标模型,--img 参数指定图片大小

可以看到,转换后的模型是 yolov5s-fp16.tflite,同时,在同层目录下,还有个文件夹 yolov5s_saved_model,里面包含了 .pb 文件,就是 protobuf 文件,这里有个细节,就是 .pt 文件是先被转换成 .pb,然后再转换成 .tflite 的。

接着,使用脚本 detect.py 来验证一下,用上面生成的 .tflite 模型

python detect.py --weights yolov5s-fp16.tflite --source data/images/bus.jpg --img 416


检测没有问题

YOLOv5 的 Android 部署,基于 tflite_第1张图片

有了模型文件,接下来就可以来到 android 端了,我把示例代码上传到了 github 上,可以直接 clone

git clone https://github.com/xugaoxiang/yolov5_android_tflite.git


需要替换的是 yolov5_android_tflite/app/src/main/assets 文件夹下的2个文件,class.txt 和 yolov5s-fp16.tflite

编译后安装到手机,就可以开始进行基于摄像头的目标检测了

参考资料

  • 借助NCNN,在Android上运行YOLOv5目标检测
  • windows 10安装cuda和cudnn
  • YOLOv5模型训练
  • YOLOv5 5.0版本
  • Android studio gradle构建失败的解决方法

————————————————
版权声明:本文为CSDN博主「迷途小书童的Note」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/djstavaV/article/details/126737098

你可能感兴趣的:(深度学习,android)