把轻量化 YOLO 模型(以常用的 YOLOv8n 为例)部署到你的旧Android手机上,最稳妥、速度最快的方案是采用 Ultralytics 导出 NCNN 格式 + Android Studio 开源模板。
按以下四个阶段操作,即可跑通全流程:
第一阶段:准备手机端环境
- 开启开发者模式:
- 打开手机 设置 -> 我的设备 -> 全部参数与信息。
- 连续快速点击 OS 版本 (或 MIUI 版本)7~8 次,直到屏幕弹出提示 "您现在处于开发者模式"。
- 开启调试权限:
- 返回 设置 -> 更多设置 -> 开发者选项。
- 开启 USB 调试。
- 开启 USB 安装(小米澎湃 OS/MIUI 需插 SIM 卡或登录小米账号授权)。
- 开启 USB 调试(安全设置)(允许模拟点击和安装验证)。
- 连接电脑:
- 用数据线将手机连至电脑,手机上弹出"允许 USB 调试吗?",勾选 始终允许 并点击确定。
第二阶段:电脑端安装与配置 Android Studio
- 下载安装:
- 从官网下载并安装最新版 Android Studio,安装路径不要包含中文或空格。
- 安装核心编译组件(NDK 与 CMake):
-
打开 Android Studio,点击欢迎界面的 More Actions -> SDK Manager (如果已在主界面,点击右上角齿轮或
Tools->SDK Manager)。 -
切换到 SDK Tools 标签页,勾选以下三项:
-
NDK (Side by side)
-
CMake
-
Android SDK Command-line Tools
-
点击右下角 Apply,等待自动下载并安装完成。
第三阶段:导出目标检测模型为 NCNN 格式
在训练好特定物体权重的 PC 端终端执行导出:
bash
# 1. 确保安装了 ultralytics 和 ncnn 导出工具链
pip install ultralytics ncnn
# 2. 导出为 NCNN 格式(以自定义模型 best.pt 为例)
yolo export model=best.pt format=ncnn imgsz=640
导出成功后,同级目录下会生成一个 best_ncnn_model/ 文件夹,里面包含核心的两个文件:
model.param(网络结构与算子定义)model.bin(训练得到的权重参数)
第四阶段:导入开源工程、替换模型并编译安装
这里使用腾讯 NCNN 官方开源的成熟模版(内置了相机流采集、Vulkan GPU 加速和绘制画框逻辑):
- 获取工程代码:
- 下载或克隆 GitHub 上的开源项目:nihui/ncnn-android-yolov8(点击绿色的
Code->Download ZIP解压)。
- 下载预编译依赖库:
- 该模板需要 ncnn-android-vulkan 和 opencv-mobile 两个底层 C++ 库。
- 打开项目源码中的
app/src/main/jni/CMakeLists.txt,查看开头要求的版本路径,通常只需去 ncnn releases 和 opencv-mobile releases 下载对应的android-vulkan.zip,解压到工程对应目录(或参考项目README.md的指引路径放置)。
- 替换为你的模型与类别:
- 放置模型 :进入工程目录
app/src/main/assets/,将你导出的model.param和model.bin复制进去(替换掉默认的示例模型)。 - 修改检测类别 :打开
app/src/main/jni/yolo.cpp,找到分类标签数组class_names:
cpp
static const char* class_names[] = {
"your_object_1", "your_object_2" // 改成你训练集中的目标类别名称
};
- 编译并部署到手机:
- 用 Android Studio 打开解压后的工程文件夹。
- 首次打开会自动联网同步下载 Gradle,等待右下角的进度条(Sync)加载完成。
- 在顶部工具栏的设备选择下拉框中,确认已识别到你的手机。
- 点击顶部绿色的 Run(运行三角形按钮)。
- Android Studio 会自动编译 C++ 代码并打包生成 APK,随后手机上会弹出安装请求,确认后 App 便会自动启动。
打开手机上的 App 并授予相机权限,摄像头对准目标物体,画面上就会实时显示出识别框、置信度以及单帧推理耗时。得益于骁龙 8s Gen 3 的性能,帧率会稳定在 30~60 FPS。