pt模型部署在安卓端(TensorFlow)

该教程详细介绍了如何将训练好的Yolov5模型转换为.tflite格式,并在Android平台上进行部署。首先,在Python环境中克隆Yolov5仓库并安装依赖,然后使用export.py脚本转换模型。接着,下载并安装Android Studio,导入模型和标签文件到项目中。修改相应代码后,通过Android Studio生成APK文件,最后将APK安装到手机上实现模型的安卓端应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

yolov5检测模型部署在安卓端教程


step1. 将yolov5模型参数文件(.pt)转为(.tflite)文件

  • 在Python>=3.7.0 的环境中克隆版本仓并安装 requirements.txt,包括PyTorch>=1.7。
git clone https://github.com/ultralytics/yolov5  # 克隆
cd yolov5
pip install -r requirements.txt  # 安装
  • 将训练好的的模型参数文件(xxx.pt)复制到yolov5文件夹下,执行以下命令
python export.py --weights xxx.pt --include tflite --imgsz 320
  • 执行完成后,在文件夹下会生成xxx.tflite 文件,后面会用到。

  • 注:若执行产生缺少TensorFlow模型库的错误,请安装对应库。

pip install TensorFlow

step2. 准备android studio平台


step3. 下载android框架包并解压


step4. 使用android studio平台打开目录中android文件夹

  • 如图

  • android文件夹

  • 将yolov5模型参数和标签文件复制到assets文件夹。


step5. 修改必要程序

  • 打开如图文件,1号红框部分模型文件名称需与自己训练的(xxx.tflite)文件同名,2号红框(.txt)文件内容标签名称。

  • 程序修改

  • 标签内容需修改成模型检测的所含的类别

  • 在这里插入图片描述


step6. 生成apk文件

  • 如图所示
  • 1.点击Build APK(s)
  • 2.生成箭头所指的(.apk)文件
  • 生成apk

step7. 将(.apk)文件发送至手机,安装即可

  • 效果展示
  • 在这里插入图片描述

### YOLOv5模型部署Android设备上的方法 YOLOv5 是一种高效的实时目标检测算法,将其训练好的模型部署Android 设备上能够实现移动端的目标检测功能。以下是关于如何将 YOLOv5 模型部署Android 的详细介绍。 #### 1. 准备工作 为了成功完成部署,需要准备以下工具和环境: - **Python 环境**:用于训练模型并导出为适合移动平台使用的格式。 - **PyTorch**:YOLOv5 基于 PyTorch 开发,因此需要安装对应版本的 PyTorch 库。 - **ONNX Runtime 或 TFLite**:这些框架支持将 PyTorch 模型转换为轻量级格式以便在 Android 上运行。 - **Android Studio**:开发和调试 Android 应用程序所需的 IDE。 #### 2. 训练自定义数据集的 YOLOv5 模型 如果尚未训练好模型,则可以通过以下命令来创建一个新的火焰识别模型[^2]: ```bash python train.py --img 640 --batch 5 --epochs 5 --data ./data/coco1128.yaml --cfg ./models/yolov5s.yaml --weights ./yolov5s.pt ``` 此过程会生成一个 `.pt` 文件作为最终模型权重文件。 #### 3. 导出 ONNX/TensorFlow Lite 格式的模型 由于原生 PyTorch 模型无法直接被 Android 使用,需先将其转化为更通用的形式如 ONNX 或 TensorFlow Lite (TFLite)[^1]。具体操作如下: ##### 转化成 ONNX 格式 执行下面脚本可把 .pt 权重转存为 onnx 文件形式: ```python import torch from models.experimental import attempt_load device = 'cpu' model = attempt_load('best.pt', map_location=device) # 加载.pth/.ptl文件路径 dummy_input = torch.randn(1, 3, 640, 640).to(device) torch.onnx.export( model, dummy_input, "yolov5s.onnx", opset_version=11, input_names=['images'], output_names=['output'] ) print("Export to ONNX successful.") ``` ##### 转化成 TensorflowLite(TFLite) 格式 另一种方式是通过官方提供的 `export.py` 工具将模型进一步简化至 tflite 版本: ```bash python export.py --weights best.pt --include tflite int8 ``` 这一步骤完成后将会得到名为 `best-int8.tflite` 的量化后的tflite模型文件[^3]. #### 4. 整合进 Android App 中 一旦获得了适配移动端架构需求下的onnx/tflite模型之后,就可以着手集成它们进入android应用当中去了. ##### 添加依赖库 打开项目的 build.gradle 文件,在 dependencies 下加入必要的 ML Kit 和其他机器学习相关 SDK 支持包: ```gradle implementation 'org.tensorflow:tensorflow-lite:+' // 如果使用GPU加速则还需额外引入gpu delegate扩展插件 implementation 'org.tensorflow:tensorflow-lite-gpu-delegate:' ``` ##### 编写推理逻辑代码 接着编写 java/kotlin 类加载上述保存下来的模型,并调用其预测接口处理摄像头捕获的画面帧像素矩阵数据流。这里给出一段 kotlin 实现例子片段供参考: ```kotlin val interpreterOptions = Interpreter.Options() interpreterOptions.setNumThreads(4) if(isUseGpu){ val gpuDelegate = GpuDelegate() interpreterOptions.addDelegate(gpuDelegate) } val tfLiteInterpreter = Interpreter(FileInputStream(modelFile), interpreterOptions) fun runInference(inputImageBuffer: ByteBuffer): Array<FloatArray> { val outputs = arrayOf(FloatArray(outputSize)) tfLiteInterpreter.run(inputImageBuffer, outputs) return outputs } ``` 以上即完成了整个流程概述说明。当然实际项目实施过程中还涉及到诸多细节调整优化等问题待解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值