环境
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
检测没有问题
有了模型文件,接下来就可以来到 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构建失败的解决方法